软件开发 - 大陆康腾 - 凉经

2024.3.14 Boss投递

2024.3.16 面试(Boss面试间)

面试官是软件开发部经理

自我介绍

学校的地点

实习和毕设以及学校安排冲突吗

打算参加秋招的具体时间

专业是软件工程是吧

数学学过那几科呢

概率统计中有平均值,标准差,中值,方差,具体讲讲定义以及计算方法

正太分布如何计算,一般如何使用

线性代数学的怎么样

0的整数次方有哪几种结果呢

那0的0次方呢

那0的-1次方的

那在程序中输入会出现什么呢

在写程序中有遇到过0除这样的异常吗

Python基础有多少

如何使用Pandas库进行一些数据加载工作呢

数据清洗的时候的量有多大,是如何加载的

自己有做过编程相关的实践么

如何使用python从Hadoop加载数据,具体描述一下过程

你感觉专业课程中学的最好的有哪些

数据库中的笛卡尔积有了解吗,具体讲讲

如果100*5和10000*3的两张表笛卡尔积是多大

在数据库中,笛卡尔积通常是指在关系数据库中,两个或多个表的每行数据组合在一起的结果,形成一个新的结果集。这个概念来源于数学中的笛卡尔积,是集合论的一个基本概念。

具体来说,如果有两个表A和B,A有m行数据,B有n行数据,那么A和B的笛卡尔积就是一个有m*n行数据的表。在这个结果表中,A表的每一行都会与B表的每一行组合一次,形成一行新的数据。

以一个简单的例子来说明:

假设有两个表:

表1(员工表):

  • 员工ID
  • 员工姓名

表2(部门表):

  • 部门ID
  • 部门名称

如果表1有3个员工,表2有4个部门,那么这两个表的笛卡尔积就是一个包含12行数据的表。每一行数据都包含一个员工和一个部门的组合。

笛卡尔积在数据库中通常不是我们想要的结果,因为它会生成大量的数据,这些数据往往是无关的。在实际应用中,我们通常需要通过连接操作(如内连接、外连接等)来从笛卡尔积中筛选出我们真正需要的数据

你了解的数据库原理中,二维表有几类计算呢

  1. 选择(Selection):从表中选取满足特定条件的行。这可以通过使用SQL中的WHERE子句来实现。
  2. 投影(Projection):从表中选取特定的列。这可以通过使用SQL中的SELECT子句来实现,选择你想要显示的列。
  3. 连接(Join):将两个或多个表中的行基于某些相关列合并起来。常见的连接类型包括内连接(INNER JOIN)、外连接(LEFT/RIGHT/FULL OUTER JOIN)、交叉连接(CROSS JOIN,即笛卡尔积)。
  4. 并(Union):将两个或多个表的行合并起来,形成一个新的表。要求这些表具有相同的列结构。如果有重复的行,默认情况下会去除重复行,但可以使用UNION ALL来保留重复行。
  5. 差(Except):也称为差集,从一个表中去掉与另一个表共有的行,只保留在第一个表中独有的行。
  6. 交(Intersect):取两个表共有的行,即两个表的交集。
  7. 笛卡尔积(Cartesian Product):前面提到的,两个表的每一行与另一个表的每一行组合,形成一个新的结果集。如果表A有m行,表B有n行,那么笛卡尔积就有m*n行。
  8. 聚合函数(Aggregate Functions):对表中的列进行计算,返回单个值。常见的聚合函数包括COUNT()、SUM()、AVG()、MAX()、MIN()等。
  9. 分组(Group By):将表中的行根据一个或多个列的值进行分组,通常与聚合函数结合使用,以对每个分组进行计算。
  10. 排序(Order By):根据一个或多个列的值对表中的行进行排序

[补充]窗口函数详解

MySQL从版本8.0开始支持窗口函数(Window Functions),这是一种非常有用的功能,它允许你进行复杂的数据分析,而无需使用传统的分组(GROUP BY)或聚合(如SUM、COUNT等)操作。窗口函数可以让你在分组的数据上进行计算,同时保留原始行的详细信息。

窗口函数可以分为以下几类:

  1. 聚合函数作为窗口函数:如SUM()、AVG()、COUNT()、MAX()、MIN()等。这些函数在窗口中计算聚合值,但不会减少行数。
  2. 排序函数:如ROW_NUMBER()、RANK()、DENSE_RANK()、NTILE()等。这些函数用于为窗口中的每一行分配一个唯一的序号或排名。
  3. 分析函数:如LEAD()、LAG()、FIRST_VALUE()、LAST_VALUE()、CUME_DIST()、PERCENT_RANK()等。这些函数用于访问窗口中当前行之前或之后的行数据。

基本格式:

SELECT

column1,

column2,

FUNCTION_NAME([arguments]) OVER (window_specification)

FROM

table_name;

其中window_specification定义了窗口的范围和排序方式,它可以包含以下部分:

  • PARTITION BY column1, column2, ...:将数据分区,每个分区单独进行窗口函数的计算。
  • ORDER BY column1, column2, ...:指定窗口内数据的排序方式。
  • FRAME clause:定义窗口的框架,即窗口函数应该考虑的行范围。框架可以是ROWS或RANGE,并且可以指定框架的起始和结束,如UNBOUNDED PRECEDING(从分区的第一行开始)到CURRENT ROW(当前行),或者UNBOUNDED FOLLOWING(到分区的最后一行)。

ROW_NUMBER()、RANK()、DENSE_RANK()三者区别具体结合实例讲解

ROW_NUMBER()总是为每一行分配一个唯一的序号,RANK()在遇到重复分数时会分配相同的排名但会跳过后续的排名,而DENSE_RANK()也会为重复分数分配相同的排名但不会跳过后续的排名

那你有接触过数据库的哪几类操作呢

  1. 数据定义语言(DDL)操作
    • 创建数据库(CREATE DATABASE)
    • 创建表(CREATE TABLE)
    • 修改表结构(ALTER TABLE)
    • 删除表(DROP TABLE)
    • 创建索引(CREATE INDEX)
    • 删除索引(DROP INDEX)
  1. 数据操纵语言(DML)操作
    • 插入数据(INSERT)
    • 更新数据(UPDATE)
    • 删除数据(DELETE)
    • 查询数据(SELECT)
  1. 数据控制语言(DCL)操作
    • 授予权限(GRANT)
    • 收回权限(REVOKE)
  1. 事务控制语言(TCL)操作
    • 提交事务(COMMIT)
    • 回滚事务(ROLLBACK)
    • 开始事务(BEGIN TRANSACTION)
  1. 数据库查询语言(DQL)操作
    • 查询数据(SELECT)
  1. 数据库管理操作
    • 备份数据库(BACKUP)
    • 恢复数据库(RESTORE)
    • 监控数据库性能
    • 优化数据库性能

表的新建有哪些语句有哪几种方式呢

你数据结构有了解过吗

是基于C还是Java

如何实现双层(双向)链表呢

有做过一些数据结构的联系么

后续二面是进入现场

感觉自己基础特别薄弱,基础问题都不清楚,专业课程没有具体学习,数学基础一般,唉😔!~

  • 14
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值