1.前一天重点内容复习
分页查询sql:
SELECT 字段列表 FROM 表名 LIMIT 起始行数,每页显式行数;
模糊查询sql:
SELECT 需要查询的字段 FROM 表名 WHERE 字段名称 LIKE '%xx%';
DELETE FROM表名和TRUNCATE TABLE 表名的区别:
DELETE FROM 表名;:只是删除了表中数据,表对数据的约束仍然在
TRUNCATE table 表名;:将表数据和表对数据的约束一起删除
GROUP BY分组查询和HAVING以及WHERE语句的顺序:
WHERE条件必须在GROUP BY之前因为先满足条件再分组,GROUP BY分组之后,后面就可以使用having
TCP和UDP的区别:
是否是一种可靠连接
UDP协议:不可靠,执行效率高
TCP协议:可靠,执行效率低
是否需要建立连接通道
UDP协议:不需要
TCP协议:需要
是否发送的数据大小有限制
UDP协议:有限制,以一种 "数据报包-->DatagramPacket"的方式传输
TCP协议:没有限制,连接通道里面,使用字节流的方式来进行通信(数据写,读)
客户端通过获取通道的字节输出流来写数据
服务端通过获取通道的字节输入流来读数据
2.数据库约束
定义:数据库约束是约束用户操作数据表的一种行为
分类
默认约束:default
使用此约束的字段值,如果插入数据时没有插入此字段值,则赋默认值给该字段
非空约束:not null
使用此约束的字段值,如果插入数据值时为null值,则无法插入数据
删除字段非空约束:ALTER TABLE 表名 MODIFY 字段名称 字段类型;
添加字段非空约束:ALTER TABLE 表名 MODIFY 字段名称 字段类型 NOT NULL;
唯一约束:unique
使用此约束的字段,值不能和同字段的其他值重复
删除字段唯一约束:ALTER TABLE 表名 DROP INDEX 唯一约束的字段名称;
添加字段唯一约束:ALTER TABLE 表名 MODIFY 字段名称 字段类型 UNIQUE;
主键约束:primary key
使用此约束的字段,值不能为空且不能和同字段的其他值重复
删除字段主键约束:ALTER TABLE 表名 DROP PRIMARY KEY;
添加字段主键约束:ALTER TABLE 表名 MODIFY 字段名称 字段类型 PRIMARY KEY;
自增长约束:auto_increment
使用此约束的字段,插入数据时,如果没有指定该字段的值,则在上一次的基础上自增,多和主键约束一起使用
mysql提供函数查询最后一次自增主键的id值:LAST_INSERT_ID()
外键约束:foreign key
CONSTRAINT 外键名称 FOREIGN KEY(外键字段)REFERENCES 主表(主键字段)
删除字段外键约束:ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;
添加字段外键约束:ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY(外键字段)REFERENCES 主表(主键字段)
级联操作:CASCADE
级联操作是外键约束基础上进行的约束,当修改或者删除主表的时候,和主表相关联的从表的数据也随之改变
分类
级联修改:ON UPDATE CASCADE
级联删除:ON DELETE CASCADE
3.关系数据库范式
分类
第一范式(1NF):数据库的项不可分割
第二范式(2NF):在满足1NF的基础上,表中每一个字段完全依赖于主键
第三范式(3NF):在满足2NF的基础上,表中每一个字段直接依赖于主键,不能产生传递依赖
巴斯科德范式(BCNF)
第四范式(4NF)
第五范式(5NF)
4.表字段的对应关系
一对一
一对多
多对多
5.多表查询
分类
内连接:查询交集内容
隐式内连接
SELECT 字段列表 FROM 表名1,表名2 WHERE 表名1的某个字段 = 表名2的某个字段
显式内连接
SELECT 字段列表 FROM 表名1 INNER JOIN 表名2 ON 连接条件
外连接:查询并集内容
左外连接查询
SELECT 字段列表 FROM 左表 LEFT OUTER JOIN 右表 ON 连接条件
右外连接查询
SELECT 字段列表 FROM 左表 RIGHT OUTER JOIN 右表 ON 连接条件
子查询
思想:使用聚合函数和比较运算符进行SELECT语句进行嵌套