MySQL之DML数据操纵语句

DML(Data Manipulation Language)语句:用于添加、修改、删除和查询数据库记录,并检查数据完整性,常用关键字:insert、update、delete、select等。

1.插入表数据(insert)

语法:

#方式一:经典的插入语句
insert into 表名(字段1,字段2...字段n) values('值1','值2'...'值n')

#方式二:insert into 表名 set 字段1=值1,字段2=值2...字段3=值3
USE girls;
#1.插入的值与列类型一致或兼容
INSERT INTO beauty(id, name, sex, borndate, phone, photo, boyfriend_id)
VALUES(20, '刘涛', '女', '1999-01-23', '13113112325', NULL, 2);

#2.可以省略列名,默认所有列,而且插值的顺序和表中列的顺序一致
INSERT INTO beauty VALUES(21, '唐艺昕', '女', '1999-01-23', '13113112325', NULL, 2);

#3.可以批量插入
INSERT INTO beauty 
VALUES(22, '毛晓彤', '女', '1999-01-23', '13113112325', NULL, 2),
(23, '杨幂', '女', '1999-01-23', '13113112325', NULL, 2),
(24, '古力娜扎', '女', '1999-01-23', '13113112325', NULL, 2);

#4.使用set插值
INSERT INTO beauty
SET id=25, name='钟欣桐', phone='12345678910', borndate='1999-02-23';

方式一和方式二的区别:

  1. 方式一支持多行插入,方式二不支持
  2. 方式一支持子查询,方式二不支持
#子查询单行插入
INSERT INTO beauty(id, name, phone)
SELECT 26, '宋铁', '112345';

#子查询多行插入
INSERT INTO beauty(id, name, phone)
SELECT id, boyName, '1234567'
FROM boys 
WHERE id < 3;

2.修改表数据(update)

语法:

修改单表记录:
update 表名 set 列名1=值1,列名2=值2...列名n=值n where 筛选条件

修改多表记录:
(1)sql92语法:
        update 表1 别名,表2 别名 set列=值... where 连接条件 and 筛选条件
(2)sql99语法(推荐):
        update 表1 别名 inner|left|right| join 表2 别名 on 连接条件 set 列=值,... where 筛选条                       件
#案例1:修改beauty表中姓杨的女神电话为13800138000
UPDATE beauty
SET phone = '13800138000'
WHERE name like '杨%';

#案例2:修改boys表中id号为2的名称为叶问,魅力值为90
UPDATE boys
SET boyName='叶问', userCp=90
WHERE id=2;

#案例3:修改张无忌的女朋友手机号为5201314
#sql92语法:
UPDATE beauty b, boys bo
SET phone='5201314'
WHERE b.boyfriend_id = bo.id
and bo.boyName='张无忌';

#sql99语法:
UPDATE beauty b
INNER JOIN boys bo
ON b.boyfriend_id = bo.id
SET phone='5201314'
WHERE bo.boyName='张无忌';

3.删除语句(delete)

语法:

单表删除:
delete from 表名 where 筛选条件

多表删除:
(1)sql92语法:
        delete 表名1,表名2 from 表名1,表名2 where 连接条件 and 筛选条件
(2)sql99语法(推荐):
        delete 表名1 inner|left|right|join 表名2 on 连接条件 where 筛选条件
#案例1:删除手机号为9结尾的女神信息
DELETE FROM beauty WHERE phone LIKE '%9';

#案例2:删除张无忌女朋友的信息
#sql92语法:
DELETE beauty FROM beauty, boys
WHERE beauty.boyfriend_id = boys.id
AND boys.boyName='张无忌';

#sql99语法:
DELETE b
FROM beauty b
INNER JOIN boys bo
ON bo.id = b.boyfriend_id
WHERE bo.boyName='张无忌';

#案例3:删除黄晓明以及他女朋友的信息
#sql99语法
DELETE b, bo
FROM beauty b
INNER JOIN boys bo
ON bo.id = b.boyfriend_id
WHERE bo.boyName='黄晓明';

#sql92语法
DELETE b, bo FROM beauty b, boys bo
WHERE bo.id = b.boyfriend_id
AND bo.boyName='黄晓明';

4.清空表(truncate)

语法:

truncate table '表名'

delete和truncate作对比:

  1. delete可加筛选条件,truncate不可以
  2. truncate效率更高
  3. 假如在删除自增列的时候:delete删除后,再插入新数据,自增列的值从断点开始;truncate删除后,再插入数据,自增列从1开始
  4. truncate删除没有返回值,delete删除有返回值
  5. truncate删除不能回滚,delete删除可以回滚
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值