Python面试刷题day01(DB面试题01-05)

余生长醉 提交于 2019-12-20 08:28:49

MySQL基础

1. from子句组装来自不同数据源的数据;
2. join子句将多张表连接起来
3. on子句筛选连接表要显示的内容
4. where子句基于指定的条件对记录进行筛选;
5. group by子句将数据划分为多个分组;
6. 使用聚集函数进行计算;
7. 使用having子句筛选分组;
8. 计算所有的表达式
9.  select字段
10. distinct去重
11. 使用order by子句对结果集进行排序
12. 使用limit子句限制结果集返回的记录数

SQL语言处理代码的顺序

SQL语言处理代码的顺序

SQL语句中,第一个被处理的子句是from,而不是第一出现的select

SQL查询处理步骤

SQL查询处理步骤

1. from
2. join
3. on
4. where
5. group by
6. having
7. select
8. distinct
9. order by
10. limit

以上每个步骤都会产生一个虚拟表,该虚拟表作为下一个步骤的输入,
只有最后一步生成的表才会返回给调用者。

事务

什么是事务,MySQL是如何支持事务的?

事务是一段sql的批处理,但这个批处理是原子性操作,不可再分隔。要么全部执行,要么全部回滚,不执行。
事务的四大特性,也就是ACID特性:
1. 原子性(所有操作要么全部执行成功,要么全部执行失败回滚)
2. 一致性(在事务的执行之前和执行之后必须处于一致性操作)
3. 隔离性(数据库为每个用户开启的事务,不能被其他事务操作所干扰,多个并发事务互相隔离)
4. 持久性(一旦提交了事务,对于数据库中的数据的改变时永久性的,即便发生故障依然能通过日志恢复到最后一次更新)
# 只有innodb存储引擎才支持事务操作

存储过程

说一下MySQL数据库存储过程原理

存储过程是存放在数据库中的一个别名,这个别名对应着一个sql语句的集合。
它也是一个可编程的函数,在数据库中创建并存储,由sql语句和一些控制语句组成。
当需要在不同的应用程序或平台上执行相同的函数,或封装特定功能时,存储过程是一个不错的选择。
可以把数据库中的存储过程看作是对编程中面向对象方法的模拟。
存储过程的优点:
1. 存储过程可以实现较快的执行速度。
2. 存储过程能够减少网络流量。
3. 存储过程可被作为一种安全机制来充分利用。
4. 存储过程的标准组件是编程。
5. 存储过程可以使用流程控制语句,更加灵活,可以做复杂的判读和叫复杂的运算。

索引

数据库索引种类

索引在数据库中也称为“键”,是innodb存储引擎快速查找到记录的一种数据结构。
在innodb数据表上索引是数据空间的组成部分。
索引好比一本书前面的目录,加快查询速度。
1. 普通索引
2. 唯一索引
3. 主键索引
4. 全文索引
5. 组合索引

最左前缀规则

索引在什么情况下遵循最左前缀的规则?

在使用组合索引进行查询时要遵循最左前缀规则
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!