mysql基础---DML语言,增删改

DML语言

dml语言即数据操作语言:
插入:insert
修改:undate
删除:DELETE

一.插入语句
方式一:
语法:

insert INTO 表名(字段名,...) VALUES(值1,....)
#案例1.插入的值的类型与列的类型一致或兼容
INSERT into beauty(id,name,sex,borndate,phone,boyfriend) VALUES(16,'小美',1,'1989-01-04 15:48:21','15890330987',2)

#案例2.列数和值的个数必须对应且一致
INSERT into beauty(name,sex,borndate,phone) VALUES('小美2',1,'1989-01-04 15:48:21','15890330987')

#案例3.可以省略列名,默认所有列,而且列的顺序和表中的列顺序一致
insert into beauty VALUES(17,'团子',1,'1989-01-04 15:48:21','16912354698',3)

方式二:
语法:(太麻烦了不推荐)

insert INTO 表名
set 列名=值,列名=值,...

两种方式比较:
1.方式一支持多行插入
2.方式一支持子查询,方式二不支持

#案例1.方式一支持多行插入
insert into beauty VALUES (18,'小美1',1,'1989-01-04 15:48:21','16912365876',null),
(19,'小美1',1,'1989-01-04 15:48:21',null,null),
(20,'小美3',1,'1989-01-04 15:48:21',null,null);

#案例2.方式一支持子查询,方式二不支持
INSERT INTO beauty(id,NAME,sex,borndate) SELECT 21,'琪琪',1,'1989-01-04 15:48:21';

二.修改语句
1.修改单表的记录
语法:

update 表名
SET 列=新值,列=新值,...
WHERE 筛选条件;

#案例:修改beauty表中含有小的名字的电话为15988889999
UPDATE beauty SET phone = '15988889999'
where name LIKE '%小%';

2.修改多表的记录(比较少用)
语法:(sql99语法)

update 表1 别名
inner|LEFT|RIGHT JOIN 表2 别名 
ON 连接条件
SET 列=值,...
where 筛选条件
#案例1:修改boys表路飞的女朋友的手机号为114
update  beauty a INNER JOIN boys b ON a.boyfriend = b.id
SET a.phone='114',b.user_cp= 110
where b.boy_name='路飞';

#案例2:修改没有男朋友的女生的男朋友编号为1号
#内连接
update beauty a INNER JOIN boys b on a.boyfriend = b.id
set a.boyfriend = 1
WHERE a.boyfriend is NULL;

#右连接
update boys a RIGHT JOIN beauty b on a.id = b.boyfriend
set b.boyfriend = 1
WHERE b.boyfriend is NULL;

#左连接
update beauty a LEFT JOIN boys b on a.boyfriend = b.id
set a.boyfriend = 1
WHERE a.boyfriend is NULL;

三.删除语句
方式一:DELETE
语法:
1.单表的删除
DELETE FROM 表名 where 筛选条件

2.多表的删除(比较少用):
sql99语法:
DELETE 表1的别名,表2的别名
FROM 表1 别名
INNER|LEFT|RIGHT JOIN 表1 别名 on 连接条件
where 筛选条件

#(1).单表的删除
#案例1.删除beauty表中name含有"杨"字的数据删除;
DELETE FROM beauty where name LIKE '%杨%';

#(2).多表的删除
#案例1.删除周杰伦的女朋友的信息
DELETE a
from beauty a
INNER JOIN boys b ON a.boyfriend=b.id
WHERE b.boy_name='周杰伦' 

#案例2.删除桃之助和他女朋友的信息
DELETE a,b
from beauty a
INNER JOIN boys b ON a.boyfriend=b.id
WHERE b.boy_name='桃之助';

方式二.TRUNCATE 删除的是整个表的数据,不支持加筛选条件
语法:

truncate TABLE 表名; (清空数据)

delect 和truncate的区别:
1.delect 可以加where条件,truncate不能加
2.TRUNCATE删除,效率高一些;
3.假入要删除的表中有自增长列,用delect删除后,再插入数据,自增长的列的值从断点开始;
而用truncate删除后,再插入数据,自增长的列的值从1开始.
4.truncate删除没有返回值,delete删除有返回值;
5.TRUNCATE 删除不能回滚,delect删除可以回滚.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值