练习
分页查询
应用场景:当要显示的数据,一页显示不全,需要分页提交sql请求
语法:
select 查询列表
from 表
[join type join 表2
on 连接条件
where 筛选条件
group by 分组字段
having 分组后的筛选
order by 排序的字段]
limit offset , size;
(起始索引) 个数
offset 要显示条目的起始索引(起始索引从0开始)
size 要显示的条目个数
特点:
1.limit语句放在查询语句的最后
2.公式
要显示的页数page,每页的条目数size
select 查询列表
from 表
limit (page-1)* size,size;
联合查询
union 联合 合并:将多条查询语句的结果合并成一个结果
语法:
查询语句1
union
查询语句2
…
应用场景:
要查询的结果来自于多个表,且多个表没有直接的连接关系,但查询的信息一致时
特点:
1、要求多条查询语句的查询列数是一致的
2、要求多条查询语句的查询的每一列的类型和顺序最好一致
3、union关键字默认去重,如果使用union all 可以包含重复项
union all 可以包含重复项
DML语言
数操作语言:
插入:insert
修改:update
删除:delete
#一、插入语句
方式一:
语法:
insert into 表名(列名,…) values(值1,…);
方式二:
语法:
insert into 表名
set 列名=值,列名=值,…
方式一
方式二
方式一方式二比较
二、修改语句
1.修改单表的记录
语法:
update 表名
set 列=新值,列=新值,…
where 筛选条件;
2.修改多表的记录[补充]
语法:
sql92语法
update 表1 别名,表2 别名
set 列=值,…
where 筛选条件
and 筛选条件;
sql99语法:
update 表1 别名
inner|left|right join 表2 别名
on 连接条件
set 列=值,…
where 筛选条件;
删除语句
方式一:delete
1、单表的删除
delete from 表名 where 筛选条件 (没有筛选条件就删除全部)(删除是整行一起删除)
2、多表的删除
sql92语法:
delete 表x的别名(删除谁 就写谁)
from 表1 别名,表2 别名
where 连接条件
and 筛选条件;
sql99语法:
delete 表x的别名(删除谁 就写谁)
from 表1 别名
inner|left|right join 表2 别名 on 连接条件
where 筛选条件
方式二: truncate
语法:truncate table 表名;
#delete 和 truncate 比较
1.delete 可以加where 筛选条件,truncate不能加
2.truncate删除,效率高一点点
3.假如要删除的表中有自增长列,
如果用delete删除后,再插入数据,自增长列的值从端点开始,
而truncate删除后,再插入数据,自增长列的值从1开始
4.truncate删除没有返回值,delete删除有返回值
5.truncate删除不能回滚,delete删除可以回滚
~~方式一: