插入语句
语法:
INSERT INTO 表名 [(列名1, 列名2,...)] VALUES ('值1', '值2',...);
INSERT INTO 表名 SET 列名1='值1', 列名2='值2' ...;
INSERT INTO 表名 [(列名1, 列名2,...)] SELECT ...;
案例:
1、插入单行数据
INSERT INTO student(id,name,age) VALUES(1,'小明',6);
INSERT INTO student SET id=1, name='小明', age=6;
2、插入多行数据
INSERT INTO student(id,name,age) VALUES(1,'小明',6),(2,'小红',5),(3,'小强',7);
3、插入子查询数据
INSERT INTO student(id,name,age) SELECT 1,'小明',6;
修改语句
语法:
UPDATE 表名 SET 列名1='值1' [, 列名2='值2', ...]
[WHERE 条件];
案例:
1、修改单表数据
UPDATE student SET age=7 WHERE name='小明';
2、修改多表数据
sql92语法:UPDATE student s,class c SET s.age=5,c. NAME='向日葵小班' WHERE s.class_id=c.id and c.id = 1;
sql99语法:UPDATE student s INNER JOIN class c ON s.class_id=c.id SET s.age=5,c.name='向日葵小班' WHERE c.id = 1;
删除语句
方式一:
语法:
DELETE FROM table [WHERE condition];
案例:
1、删除单行数据
DELETE FROM student WHERE id=1;
2、删除多表数据
sql92语法:DELETE s,c FROM student s,class c WHERE s.class_id = c.id AND c.id = 1;
sql99语法:DELETE s,c FROM student s INNER JOIN class c ON s.class_id = c.id WHERE c.id = 1;
方式二:
语法:
TRUNCATE TABLE table;
案例:
1、清空单表所有数据
TRUNCATE TABLE student;
区别:
DELETE TRUNCATE
删除方式: 逐条删除 先摧毁表,再重建
删除后插入: 自增ID为断点值 自增ID为1
速度: 慢 快
返回值: 有 没有
WHERE条件: 可以 不可以
日志: 记录 不记录
触发器: 触发 不触发
回滚: 可以 不可以
闪回: 可以 不可以
释放空间: 不会 会
产生碎片: 会 不会