DML

目录


插入

语法:

#方式一:
insert into 表名
(列名,...)
values(值1,...);

#方式二:
insert into 表名
set 列名=值,列名=值,...;

注:

  • 方式一支持插入多行,方式二不支持
INSERT INTO beauty
VALUES(23,'唐艺昕1','女','1990-4-23','1898888888',NULL,2)
,(24,'迪丽热巴','女','1990-4-23','1898888888',NULL,2)
,(25,'Taylor','女','1990-4-23','1898888888',NULL,2);
  • 方式一支持子查询,方式二不支持
INSERT INTO my_employees
SELECT 1,'patel','Ralph','Rpatel',895 
UNION
SELECT 2,'Dancs','Betty','Bdancs',860 
UNION
SELECT 3,'Biri','Ben','Bbiri',1100 
UNION
SELECT 4,'Newman','Chad','Cnewman',750 
UNION
SELECT 5,'Ropeburn','Audrey','Aropebur',1550;

删除

  • 方式一:
    1. 删除单表的记录
      语法:
delete from 表名
where 筛选条件;
2. 删除多表的记录

语法:

#sql92语法:
delete 要删除的表记录所在的表的别名
from 表1 别名,表2 别名
where 连接条件
and 筛选条件;
#sql99语法:
delete 要删除的表记录所在的表的别名
from 表1 别名
inner|left|right join 表2 别名 
on 连接条件
where 筛选条件;
  • 方式二:
    truncate 清空,即删除整个表的所有记录
    语法:
truncate table 表名;
  1. delete 可以加 where 条件(部分删除),truncate不能加(只能整表删除)
  2. 如果整表删除,truncate效率高一些
  3. 假如要删除的表中有自增长列,
    如果用delete删除后,再插入数据,自增长列的值从断点开始,
    而truncate删除后,再插入数据,自增长列的值从1开始。
  4. truncate删除没有返回值(即受影响的行数),delete删除有返回值
  5. truncate删除不能回滚,delete删除可以回滚.

更新(修改)

  1. 修改单表的记录
    语法:
update 表名
set 列=新值,列=新值,...
where 筛选条件;
  1. 修改多表的记录
    语法:
sql92语法:
update 表1 别名,表2 别名
set 列=值,...
where 连接条件 and 筛选条件;

sql99语法:
update 表1 别名
inner|left|right join 表2 别名
on 连接条件
set 列=值,...
where 筛选条件;

案例:

#修改张无忌的女朋友的手机号为114
UPDATE boys bo
INNER JOIN beauty b ON bo.`id`=b.`boyfriend_id`
SET b.`phone`='114'
WHERE bo.`boyName`='张无忌';
posted @ 2019-11-07 17:05  Ez_real  阅读(158)  评论(0编辑  收藏  举报