MySQL面试题-MySQL查询相关面试题

MySQL作为目前使用比较广泛的数据库之一,是要求对于后端开发人员、架构师、运维人员、DBA等都需要掌握的数据库。是在面试中几乎一定会被问到的内容。下面我们就来看一下在MySQL面试中会被经常问到的一些问题汇总

什么是数据库范式?

范式,是指创建数据库表的规则,用来指导在系统设计阶段如何去设计自己的数据库表。使用数据库范式可以有效的减少数据的冗余,并且在后期开发编码的过程中可以减少编码的工作量。数据库主要的设计范式有三大范式

MySQL查询语句的执行顺序

在使用MySQL数据库的时候,使用最多的就是查询语句,能够熟练的掌握SQL语句的编写是对开发人员最基本的要求。

SQL语句在编写的时候不同于其他的编程语言,其最明显的特征就是必须按照一定的顺序才能正常的执行。下面我们就给出SQL语句的基本执行顺序

select  distinct 查询字段
from table名
JOIN table名
ON 连接条件
where 查询条件
group by 分组字段
having 分组之后的条件
order by 排序条件
limit 起始位置, 查询条数

MySQL读取顺序

from 表名
on 连接条件
join 表名
where 查询条件
group by 分组字段
having 分组之后的条件
select distinct 查询字段
order by 排序条件
limit 查询起始位置,查询条数

整体的执行过程

  1. 先对多表的关系根据条件进行关联
  2. 在符合条件的基础上,对结果进行where条件进行筛选
  3. 对筛选出来的内容进行再次分组操作
  4. 分组完成之后,再使用Having条件进行再次筛选满足条件的记录
  5. 取出所有满足条件的记录
  6. 对取出的记录进行排序操作
  7. 从最终的排序记录中查询到对应的条数的数据进行展示

什么是MySQL的内连接?

内连接,用于整合多张表的数据,获取相关关系或者是在相关关系下的公共部分的查询结果。

笛卡尔积,关于笛卡尔积简单来说就是排列组合,将两张表的记录,放在一起进行排列组合所有的情况。如下所示,

现在,我们有两个集合A和B。

A = {0,1} B = {2,3,4}

集合 A B 和 B A的结果集就可以分别表示为以下这种形式:

A B = {(0,2),(1,2),(0,3),(1,3),(0,4),(1,4)};

B A = {(2,0),(2,1),(3,0),(3,1),(4,0),(4,1)};
select 列名 from 左表,右表

从这里我们可以看到,结果并不是我们想要的,那么我们如何来消除笛卡尔积带来的影响呢?这个时候就需要通过内连接来进行处理。

内连接分为隐式连接和显式连接两种

隐式连接

select 列名 from 左表,右表 where 左表.id = 右表.id

显式连接

使用 INNER JOIN ... ON 语句,可以省略 INNER
select 列名 from 左表 inner join 右表 on 左表.id = 右表.id

注意,这里显式内连接与隐式内连接的结果是一样的。

什么是MySQL的外连接?

外连接:分为两种一种是做左外连接,一种是右外连接

左外连接

select * from 左表 left join 右表 on 左表.id = 右表.id;

右外连接

select * from 左表 right join 右表 on 左表.id = 右表.id;

MySQL中多表条件查询

查询左表独有数据

select 列名 from 左表 left join 右表 on 左表.id=右表.id where 右表.id is null

查询右表独有数据

select 列名 from 左表 right join 右表 on 左表.id = 右表.id  where 左表.id is null

全连接查询

select 列名 from 左表 full outter join 右表 on 左表.id = 右表.id ;

注意:MySQL中不支持这种写法,在Oracle中支持该写法,在MySQL中可以采用 UNION的方式进行查询。

查询左右表中单独的数据

select 列名 from 左表 full outter join 右表 on 左表.id = 右表.id where 左表.id = null or 右表.id = null

MySQL表的级联操作

在修改或者是删除数据的时候,同时更新到其他表中的外键值,这种操作被称为几辆车操作。当主键发生更新的时候,作为其他表的外键也会更新,当主键数据发生删除的时候其他表的外键数据也会被同步删除。

可以通过如下的方式进行级联操作

添加外键约束,并且增加级联更新与级联删除
constraint 外键名 FOREIGN KEY (列名) REFERENCES 表名(列名) ON UPDATE CASCADE ON DELETE CASCADE
展开阅读全文

页面更新:2024-05-12

标签:笛卡尔   范式   字段   语句   顺序   条件   操作   级联   数据库   数据

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top