多表查询
1.join连接
join连接分为:内连接 [inner] join on和外连接。
外连接又分为:左外连接 left [outer] join on,右外连接 right [outer] join on。
案例1:查询哪个部门没有员工
左外连接(左边的为主表):
右外连接(右边的为主表):
内连接(自连接):
非等值连接:
多表查询需要避免笛卡尔积的出现,所以需要用外键将表关联起来,n张表就需要n-1个条件去关联。
常见函数
1、字符函数
2、数字函数
3、日期函数
子查询
本质就是select语句的嵌套使用,具体使用需要分析需求
按结果集的行列数不同:
标量子查询(结果集只有一行一列)
列子查询(结果集只有一列多行)
行子查询(结果集有一行多列)
表子查询(结果集一般为多行多列)
分页查询
关键字:limit
语法:limit page ,size/limit 【offset,】size;
要显示的页数 page,每页的条目数size
offset要显示条目的起始索引(起始索引从0开始)
size 要显示的条目个数
limit要放在查询语句的最后
DML语言
对数据库表数据进行增删改的操作
1.增
语法:INSERT INTO table [(column [, column…])]
每次只能往数据表中增加一行数据
也用于从其他表拷贝数据
2.改
使用 UPDATE 语句更新数据。
UPDATE 表明
SET 列名= value [, column = value, …]
[WHERE condition];
where用于做具体定位
• 可以一次更新多条数据。
• 如果需要回滚数据,需要保证在DML前,进行
设置:SET AUTOCOMMIT = FALSE;.
3.删
删数据有两种方法:DELETE和truncate
区别在于:
1.delete 可以加where 条件,truncate不能加
2.truncate删除,效率高一丢丢
3.假如要删除的表中有自增长列,
如果用delete删除后,再插入数据,自增长列的值从断点开始,
而truncate删除后,再插入数据,自增长列的值从1开始。
4.truncate删除没有返回值,delete删除有返回值
5.truncate删除不能回滚,delete删除可以回滚.
DELETE 的语法:
DELETE FROM 表名
[WHERE condition];
where用于做具体定位