mysql第11天之DML(数据操作语言)

目录

一、插入语句(insert)

方式一常规插入

语法:

特点:

方式二使用set

语法:

两种方式PK

二、修改语句(update)

(一)修改单表中的记录

语法

(二)修改多表中的记录

语法

三、删除语句(delete/truncate)

方式一:delete

1.单表的删除⭐

2.多表的删除

方式二:truncate

DELETE 和truncate比较


DML:Data Manipulation Language数据操作语言

一、插入语句(insert)

方式一常规插入
语法:

Insert into 表名(列名1..)values( 值1,……);

或按照表中字段顺序插入

Insert into 表名  values( 值1,……);

特点:

1.插入值得类型与列得类型一致或兼容

INSERT INTO beauty(id,NAME,sex,brondate,phone,boyfriend_id)

VALUES(13,'唐艺昕','女','1990-4-23','189968',NULL,2)

2.不可以为null的列必须插入值,可以为null的列如何插入值?

插入方式一直接填写null值

INSERT INTO beauty(id,NAME,sex,brondate,phone,boyfriend_id)

VALUES(13,'唐艺昕','女','1990-4-23','189968',NULL,2)

插入方式二不写

INSERT INTO beauty(id,NAME,sex,phone)

VALUES(14,'金星','女','1990-4-23','179968')

3.列的顺序可以调换

INSERT INTO beauty(NAME,sex,id,phone)

VALUES('匠心','女',15,'55888')

4.列数和值的个数必须一致

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

INSERT INTO beauty VALUES(17,'张飞','男',NULL,'119',NULL,NULL);

方式二使用set
语法:

Insert  into  表名

Set 列名 = 值,列名=值,…

两种方式PK

1、方式一支持插入多行、方式二不支持

INSERT INTO beauty(id,NAME,sex,brondate,phone,boyfriend_id)

VALUES(13,'唐艺昕','女','1990-4-23','189968',NULL,2),

(13,'唐艺昕','女','1990-4-23','189968',NULL,2),

(13,'唐艺昕','女','1990-4-23','189968',NULL,2)

2、方式一支持子查询,方式二不支持

Insert into beauty(id,NAME,phone)

Select 26,’宋茜’,‘19619644’

二、修改语句(update)

(一)修改单表中的记录
语法

Update 表名

Set 列=新值,列=新值,..

Where 筛选条件;

案例1、修改beauty表中姓唐的女神电话为‘1988888’

UPDATE beauty

SET phone = 1988888

WHERE NAME LIKE '唐%';

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

UPDATE boys SET boyName = '张飞',usercp=250 WHERE id = 2;

(二)修改多表中的记录
语法

Sql92语法

Update 表1 别名,表2 别名

Set 列=值,…

Where 连接条件

And 筛选条件;

Sql99语法

Update 表1 别名

InnerLleftLright join 表2 别名

On 连接条件

Set 列 = 值

Where 筛选条件

案例3、修改张无忌的女朋友的手机号为199

UPDATE boys bo

INNER JOIN beauty b ON bo.id = b.`boyfriend_id`

SET b.`phone`='119'

WHERE bo.boyName = '张无忌';

案例4、修改没有男朋友的男朋友编号都为2

UPDATE boys bo

RIGHT JOIN beauty b ON bo.`id`=b.`boyfriend_id`

SET b.`boyfriend_id`=2

WHERE bo.`id` IS NULL;

三、删除语句(delete/truncate)

方式一:delete

语法:

1.单表的删除⭐

delete from 表名 where 筛选条件(以行为单位删除)

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

DELETE FROM beauty WHERE phone LIKE '%9';

2.多表的删除

Sql92语法

Delete 表1的别名,表2的别名

From 表1 别名,表2 别名

Where 连接条件

And 筛选条件

Sql99语法

Delete 表1的别名,表2的别名

From 表1 别名

Inner|left|right join 表2 别名

On 连接条件

Where 筛选条件

案例6、删除张无忌的女朋友的信息

DELETE b

FROM beauty b

INNER JOIN boys bo ON b.`boyfriend_id`=bo.`id`

WHERE bo.`boyName`='张无忌';

案例7、删除黄晓明的信息和他女朋友的信息

DELETE b,bo

FROM beauty b

INNER JOIN boys bo ON b.`boyfriend_id`=bo.`id`

WHERE bo.`boyName`='黄晓明';

方式二:truncate

语法:truncate table 表名;删除表中所有信息

DELETE 和truncate比较

1、delete可以加where条件,truncate不能加

2、truncate删除,效率高一丢丢

3、假如要删除的表中有自增长列,如果用delete删除后,再插入数据,自增长列的值从断点开始而truncate删除后从1开始

4、truncate删除没有返回值,delete删除有返回值

5、truncate删除不能回滚,delete删除可以回滚

你可能感兴趣的:(MYSQL基础语法,mysql,数据库)