MySQL数据库--DML语言

DML语言学习

​ data Manipulation languge 数据操作语言 增删改

插入语言

语法:

方式一:

​ insert into 表名(列名,…) values (值1,…);

​ 1.要求插入值的类型要与列的类型一致或兼容

​ insert into beauty (id,name,sex,borndate,phone,photo,boyfriend_id) values(14,‘唐艺昕’,‘女’,‘1989-1-1’,‘17688888888’,null,‘5’);

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

​ 方式一:写列值为null

​ insert into beauty (id,name,sex,borndate,phone,photo,boyfriend_id) values(14,‘唐艺昕’,‘女’,‘1989-1-1’,‘17688888888’,null,‘5’);

​ 方式二:不写列不写值

​ insert into beauty (id,name,sex,borndate,phone,boyfriend_id) values(14,‘唐艺昕’,‘女’,‘1989-1-1’,‘17688888888’,‘5’);

​ 3.列的顺序是可以调换

​ insert into beauty(id,phone,name) value(15,17699999999,‘刘涛’);

​ 4.列数和值的个数必须匹配

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

​ insert into beauty value(16,‘刘燕’,‘女’,‘1999-1-1’,‘17899999999’,null,15);

方式二:

​ insert into 表名 set 列名=值,列名=值,…

对比:

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

​ insert into 表名 value (a,b),(c,d),(e,f);

​ 方式一支持子查询,方式二也不支持

​ insert into 表名 value select …;

​ insert into beauty(id,name,phone) select id,boyName,15599999999 from boys where id = 19;

修改语言

语法:

修改单表的记录

​ update 表名 set 列=新值,列=新值,… where 筛选条件;

​ case 1 :修改姓唐的电话为138888888

​ update beauty set phone = 138 where name like “唐%”;

​ cass 2 :修改id为2的名称为张飞,魅力值为10;

​ update boys set boyName=‘张飞’,usercp=10;

修改多表的记录

​ sql92:

​ update 表一 别名 表二 别名 set 列=值 … where 连接条件 and 筛选条件;

​ sql 99;

​ update 表一 别名 join表二 别名 on 连接条件 set 列=值 … where 筛选条件;

​ case1 张无忌的女朋友手机号为114;

​ update beauty b inner join boys bo on b.boyfriend_id = bo.id set b.phone = 110 where bo.boyName = “张无忌”;

​ case2:修改没有男朋友的女的男朋友编号为张飞

​ update beauty b inner join boys bo on b.boyfriend_id is null set b.boyfriend_id = bo.id where bo.boyName = “张飞”;

删除语言

方式一:

单表的删除(重点)
delete from 表名 where 筛选条件

​ case1 : 删除手机号为九结尾的女神信息

​ delete from beauty where phone like “%9”;

多表的删除(补充)

​ case2: 删除张无忌的女朋友的信息

sql 92 : delete 要删除的表的别名 from表,别名,表二,别名 where 连接条件 and 筛选条件

sql99 : delete 要删除的表的别名 from表,别名 join 表二,别名 on 筛选条件 where 连接条件

delete be from boys b inner join beauty be on be.boyfriend_id = b.id  where b.name = "张无忌"

​ case3:删除黄晓明和他女朋友的信息(两表都删除,级联删除)

​ delete be,b from boys b inner join beauty be on be.boyfriend_id = b.id where b.name = “黄晓明”

方式二:

删除整表的数据(清空数据)

​ truncate table 表名; 不允许加where

两种方式对比

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

2.truncate删除正因为没有where,效率更高

3.假如要删除的表中有自增长列,如果delete删除后,再加入从断点开始,而truncate从1开始。

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

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

Guess you like

Origin blog.csdn.net/MINGZHEFENG/article/details/106903883