MySQL基础——DML语言

二、增删改的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| JOIN2 别名
ON 连接条件
SET=值,...
WHERE 筛选条件;
复制代码

3、删除语句

  • delete删除(单表删除):
DELETE FROM 表名 WHERE 筛选条件;
复制代码
  • delete删除(多表删除sql92语法):
DELETE1别名,表2别名
FROM1 别名,表2 别名
WHERE 连接条件
AND 筛选条件;
复制代码
  • delete删除(多表删除sql99语法):
DELETE1别名,表2别名
FROM1别名
INNER|LEFT|RIGHT| JOIN2 别名
ON 连接条件
WHERE 筛选条件;
复制代码

这里需要知道多表删除就是想删哪张表就delete哪个表,另一张表join进来

不加筛选条件整张表都删掉了,需要慎重。

  • truncate清空数据:
TRUNCATE TABLE 表名;
复制代码

这样就是整张表的数据记录都删了,不能恢复,需要非常慎重

delete和truncate

  • delete可以加条件,truncate是直接删除不保留
  • truncate效率高一点点
  • 假如说要删除的表中有自增长列,用delete删除后,再插入值,自增长列的值从断点开始;truncate从1开始(废话
  • truncate删除没有返回值,delete删除有返回值(几行受影响)
  • truncate删除不能回滚,delete删除可以回滚
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享