MySQL——DML语言


前言

DML是数据操纵语言

  • 插入:insert
  • 修改:update
  • 删除:delete

一、插入语句

1.语法

INSERT INTO 表名 (列名,...) VALUES (1,...);

2.案例

beauty表:
在这里插入图片描述

2.1方式一:经典插入【常用】

①插入的值的类型要与列的类型一致或兼容

INSERT INTO beauty (
	id,
	`name`,
	sex,
	borndate,
	phone,
	photo,
	boyfriend_id 
)
VALUES
	(
		13,
		'唐艺昕',
		'女',
		'1990-4-23',
		'18988888888',
		NULL,
	  2 
	);

②不可以为NULL的列必须插入值,可以为NULL的列如何插入值?

#方式一:如上,列名写着,值用NULL填充 
#方式二:列名与值都省略 
INSERT INTO beauty (
	id,
	`name`,
	sex,
	borndate,
	phone,
	boyfriend_id 
)
VALUES
	(
		14,
		'金星',
		'女',
		'1990-4-23',
		'13888888888',
		9 
	);

③列的顺序是否可以调换?

INSERT INTO beauty ( `name`, sex, id, phone )
VALUES
	( '蒋欣', '女', 15, '15588888888' );

④列数和值的个数必须一致

INSERT INTO beauty ( `name`, sex, id, phone, boyfriend_id )
VALUES
	( '关晓彤', '女', 16, '13788888888' );

⑤可以省略列名,默认是所有列,而且列的顺序和表中列顺序一致

INSERT INTO beauty
VALUES
	(
		17,
		'赵丽颖',
		'女',
		'1988-5-3',
		'17788888888',
		NULL,
	NULL 
	);

在这里插入图片描述

2.2方式二:简单插入【了解】

语法:

INSERT INTO 表名 
SET 列名=,列名=,...

案例:

INSERT INTO beauty 
SET id = 19,
NAME = '刘涛',
phone = '13577777777';

在这里插入图片描述

3.两种方式比较

3.1方式一支持插入多行,方式二不支持

INSERT INTO beauty (
	id,
	`name`,
	sex,
	borndate,
	phone,
	photo,
	boyfriend_id 
)
VALUES
	(
		23,
		'唐艺昕1',
		'女',
		'1990-4-23',
		'18988888888',
		NULL,
		2 
	),
	(
		33,
		'唐艺昕2',
		'女',
		'1990-4-23',
		'18988888888',
		NULL,
		2 
		),(
		43,
		'唐艺昕3',
		'女',
		'1990-4-23',
		'18988888888',
		NULL,
		2 
	);

3.2方式一支持子查询,方式二不支持

INSERT INTO beauty ( id, `name`, phone ) SELECT
20,
'宋茜',
'17766666666';

在这里插入图片描述

二、修改语句

1.修改单表的记录【掌握】

语法:

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

案例1:修改beauty表中姓唐的女神的电话为13855555555

UPDATE beauty 
SET phone = '13855555555' 
WHERE
	`name` LIKE '唐%';

在这里插入图片描述

案例2:修改boys表中id号为2的名称为张飞,魅力值10

UPDATE boys 
SET boyName = '张飞',
userCP = 10 
WHERE
	id = 2;

在这里插入图片描述

2.修改多表的记录【了解】

语法:

#sql92
UPDATE1 别名,2 别名 
SET=,...
WHERE 连接条件
AND 筛选条件;

#sql99
UPDATE1 别名 
INNER|LEFT|RIGHT JOIN2 别名 
ON 连接条件 
SET=,...
WHERE 筛选条件;

案例1:修改张无忌女朋友的手机号为18233333333

UPDATE boys bo
INNER JOIN beauty b ON bo.id = b.boyfriend_id 
SET b.phone = '18233333333' 
WHERE
	bo.boyName = '张无忌';

案例2:修改没有男朋友的女神的男朋友编号都为2号

UPDATE boys bo
RIGHT JOIN beauty b ON bo.id = b.boyfriend_id 
SET b.boyfriend_id = 2 
WHERE
	b.boyfriend_id IS NULL;

三、删除

1.delete

3.1单表的删除

语法:

DELETE FROM 表名 WHERE 筛选条件;

案例:删除手机号以9结尾的女神信息

DELETE 
FROM
	beauty 
WHERE
	phone LIKE '%9';

3.2多表的删除

语法:

#sql92:
DELETE 【表1的别名】,【表2的别名】  
FROM1 别名,2 别名 
WHERE 连接条件 
AND 筛选条件; 

#sql99:
DELETE 【表1的别名】,【表2的别名】  
FROM1 别名 
INNER|LEFT|RIGHT JOIN2 别名 ON 连接条件 
WHERE 筛选条件;

案例1:删除张无忌的女朋友的信息

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

案例2:删除黄晓明以及他女朋友的信息

DELETE b,
bo 
FROM
	beauty b
	INNER JOIN boys bo ON b.boyfriend_id = bo.id 
WHERE
	bo.boyName = '黄晓明';

2.truncate

语法:

TRUNCATE TABLE 表名;

3.两者区别【

  • delete可以加where条件,truncate不可以
  • truncate删除效率高
  • 假如要删除的表中有自增长列,如果用delete删除后再插入数据,自增长列的值从断点开始;而truncate删除后再插入数据,自增长列的值从1开始
  • truncate删除不能回滚,delete删除可以回滚

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值