日期:2022年8月9日
连接查询(必会)1.左连接
(左外连接)以左表为基准进行查询,左表数据会全部显示出来,右表如果和左表匹配的数据则显示相应字段的数据,如果不匹配,则显示为 NULL;
2.右连接
(右外连接)以右表为基准进行查询,右表数据会全部显示出来,右表如果和左表匹配的数据则显示相应字段的数据,如果不匹配,则显示为 NULL;
1.聚合函数
SQL 中提供的聚合函数可以用来统计、求和、求最值等等。
2.分类 COUNT:统计行数量
- SUM:获取单个列的合计值
- AVG:获取某个列的平均值
- MAX:获取列的最大值
- MIN:获取列的最小值
-
分页
MySQL 的分页关键词 limit
SELECt * FROM student3 LIMIT 2,6; 查询学生表中数据,从第三条开始显示,显示 6 条 -
分组
MySQL 的分组关键字:group by
SELECt sex, count(*) FROM student3 GROUP BY sex; -
去重
去重关键字:distinct
select DISTINCT NAME FROM student3;
查询中用到的关键词主要包含如下展示,并且他们的顺序依次为 form…on…left join…where…group by…avg()/sum()…having…select… order by…asc/desc…limit…
from: 需要从哪个数据表检索数据
where: 过滤表中数据的条件
group by: 如何将上面过滤出的数据分组算结果
order by : 按照什么样的顺序来查看返回的数据
第一范式:1NF 原子性,列或者字段不能再分,要求属性具有原子性,不可再分解。
第二范式:2NF 唯一性,一张表只说一件事,是对记录的惟一性约束,要求记录有惟一标识。
第三范式:3NF 直接性,数据不能存在传递关系,即每个属性都跟主键有直接关系, 而不是间接关系。
三范式的详解及例子
关系型数据库设计方式
1. 第一范式(1NF)(针对具体某一列) 2.第二范式( 2NF )(针对某一列与复合主键的一部分有关) 所谓第二范式,是指所有的非主属性都完全依赖于关键字。从这个定义可以看出,第二范式不存在非主属性对于部分候选关键字的部分依赖,不过允许非主属性之间存在着传递依赖。 3、第三范式(3NF)(针对某一列与主键无关,但是与某一非主键列有关) 所谓第三范式,是指每一个非主属性既不部分依赖于也不传递依赖于关键字,也就是在第二范式的基础上消除传递依赖(A>B>C)。 4、BCNF 巴斯-科德范式(针对某一列与复合主键中的某一列有关,而与其他主键无关) 所谓BCNF,是指在第三范式的基础上进一步消除主属性对于码的部分函数依赖和传递依赖。BCNF需要符合3NF,并且,主属性不依赖于主属性。 5、4NF(第四范式) 对于第四范式,从理论层面来讲是,关系模式R∈1NF,如果对于R对于R的每个非平凡多值依赖X→→Y(Y不属于X),X都含有候选码,则R∈4NF。4NF就是限制关系模式的属性之间不允许有非平凡且非函数依赖的多值依赖。显然一个关系模式是4NF,则必为BCNF。 6、5NF(第五范式) 第五范式(5NF):是最终范式。消除了4NF中的连接依赖。存储引擎 (高薪常问)
1.MyISAM 存储引擎
主要特点: MySQL5.5 版本之前的默认存储引擎支持表级锁(表级锁是 MySQL 中锁定粒度最大的一种锁,表示对当前操作的整张表加锁),不支持事务,外键。 适用场景:
对事务的完整性没有要求,或以 select、insert 为主的应用基本都可以选MYISAM。在 Web、数据仓库中应用广泛。
特点:
1、不支持事务、外键
2、每个 myisam 在磁盘上存储为 3 个文件,文件名和表名相同,扩展名分别是 .frm -------存储表定义 .MYD --------MYData,存储数据 .MYI --------MYIndex,存储索引
2.InnoDB 存储引擎主要特点:
MySQL5.5 版本之后的默认存储引擎;
支持事务; 支持行级锁(行级锁是 Mysql 中锁定粒度最细的一种锁,表示只针对当前操作的行进行加锁); 支持聚集索引方式存储数据。