sql-2-DML-增删改
DML:增删改表中数据
1. 添加数据:
insert into 表名(列名1,列名2,...列名n) values(值1,值2,...值n);
insert into 表名 values(值1,值2,...值n); -- 如果省略列名,则默认给所有列添加值,确保提供的值顺序与表中列的顺序一致,否则可能会出现错误。
示例
insert into student(sno,sname) values(1,'zs') ;
insert into student values(2,'ls') ;
除了数字类型,其他类型的值比如字符串或者日期需要加引号''(一般是单引号)
2. 删除数据:
delete from student where sno=1; -- 删除一条数据
delete from 表名; -- 删除所有记录
-- 一行一行的删除,速度慢,写日志,可以恢复的,
truncate table student; -- 截断表(作用也是删除表中的所有记录)
-- 先删除表,然后再创建一张一样的表,不写日志,无法找回删除
DELETE和TRUNCATE的主要区别在于,DELETE是一个DML(数据操纵语言)操作,会记录在事务日志中,可以被回滚,而且在有外键约束的情况下可能会触发级联删除。而TRUNCATE是一个DDL(数据定义语言)操作,不记录在事务日志中,不能被回滚,也不检查约束。因此,TRUNCATE在删除大量数据时通常比DELETE快得多,但使用时需谨慎。
3. 修改数据:
update 表名 set 列名1 = 值1, 列名2 = 值2,... [where 条件];
update student set sname='lisi',sno=20 where sno =2;
如果不提供WHERE条件,则会将表中所有记录全部修改。