增删改语句
1.insert 语句
语法:
INSERT INTO table_name (COLUMN1 ,COLUMN2 ,......)
VALUES
(VALUE1 [,VALUE2 [,......]);
省略列名:前提是按顺序插入所有列,值和列要一一对应一次录入多行数据
INSERT INTO table_name (COLUMN1 ,COLUMN2 ,......)
VALUES
(VALUE1 ,VALUE2 ,......),
(VALUE1 ,VALUE2 ,......),
(VALUE1 ,VALUE2 ,......);
#在innodb存储引擎下,会到自增断层
INSERT INTO table_name
(COLUMN1 ,COLUMN2 ,......)
select VALUE1,VALUE1,[,......] union
select VALUE1,VALUE1,[,......]
update 语句
UPDATE table_name
SET COLUMN1={}, COLUMN2={}......
WHERE<表达式>
delete 删除语句
DELETE FROM table_name WHERE <表达式>
select 查询语句
select 列名1,列名2 #查询列
from 表名 # 从某张表中可选
where 条件表达式
group by 列名
having 条件表达式
order by 列名
limit ?,? 分页
删除表中的数据:
delete: 根据条件删除,逐行删除。
truncate:整表删除,无法设定条件,效率高,自增列会重新计数,无法恢复数据;无法直接删除有外键引用的表。
#删除数据
#以数据行为单位进行逐行删除,删除速度较慢
# 安全,可以记录日志,需要的时候可以通过日志进行恢复
delete from 表 [where 条件]
#truncate 截断 、截取
# 直接删除整张表中的数据,相当于先把物理表删了,然后又创建了一个新表
# 执行效率高,但是无法设定条件
# 自增列会重新计数
truncate table 表名;
级联
涉及到有主外键关联的数据表:
1、删除数据时:需要先删外键表,再删主键表
2、更新数据时:
3、录入数据时:先录入主键,再录入外键
级联:当更新(删除)主键表中的数据时,外键表中引用的数据会自动更新(删除)
cascade:删除主键时自动删除外键表中引用的数据,修改时自动更新外键表中引用的数据
# on delete CASCADE :开启 删除 级联
# on update CASCADE : 开启 更新 级联
alter table emp
add CONSTRAINT fk_deptno FOREIGN key (deptno)
REFERENCES dept(deptno)
on delete CASCADE on update CASCADE;