二、增删改的SQL语句(DML的一部分)
1、插入语句
基本插入语句:
#语法:
INSERT INTO 表名 (列名,...) VALUES (列值,...);
复制代码
对于像二进制类型等在sql中没法直接插入,需要使用jdbc等java技术转换类型才能插入的,可以设置字段类型为nullable,这样,就可以不插入了。
可为空的字段,不想插入值的话,要么值写null,要么字段都不加上。
插入值不太多的时候可以用下面这个语句:
#语法:
INSERT INTO 表名 SET 列名=值,列名=值...;
复制代码
两种方式对比
- 第一种方式支持多行插入,第二种不支持;
- 第一种方式支持子查询,第二种不支持;
INSERT INTO employees(employee_id,last_name,email) SELECT(100,'James','110101');#第一种方式
复制代码
2、修改语句
修改单表中记录的语句:
#语法:
UPDATE 表名
SET 列=新值,列值=新值...
WHERE 筛选条件;
复制代码
修改多表中记录的语句(sql92语法):
UPDATE 表1 别名,表2 别名
SET 列=值,...
WHERE 连接条件
AND 筛选条件;
复制代码
修改多表中记录的语句(sql99语法):
UPDATE 表1 别名
INNER|LEFT|RIGHT| JOIN 表2 别名
ON 连接条件
SET 列=值,...
WHERE 筛选条件;
复制代码
3、删除语句
- delete删除(单表删除):
DELETE FROM 表名 WHERE 筛选条件;
复制代码
- delete删除(多表删除sql92语法):
DELETE 表1别名,表2别名
FROM 表1 别名,表2 别名
WHERE 连接条件
AND 筛选条件;
复制代码
- delete删除(多表删除sql99语法):
DELETE 表1别名,表2别名
FROM 表1别名
INNER|LEFT|RIGHT| JOIN 表2 别名
ON 连接条件
WHERE 筛选条件;
复制代码
这里需要知道多表删除就是想删哪张表就delete哪个表,另一张表join进来。
不加筛选条件整张表都删掉了,需要慎重。
- truncate清空数据:
TRUNCATE TABLE 表名;
复制代码
这样就是整张表的数据记录都删了,不能恢复,需要非常慎重。
delete和truncate
- delete可以加条件,truncate是直接删除不保留
- truncate效率高一点点
- 假如说要删除的表中有自增长列,用delete删除后,再插入值,自增长列的值从断点开始;truncate从1开始(
废话
) - truncate删除没有返回值,delete删除有返回值(几行受影响)
- truncate删除不能回滚,delete删除可以回滚
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END