Posted in MySQL onApril 05, 2021
基于MySQL Server 5.5 版本进行演示
本章学习数据操作语言DML
插入
经典插入:使用频率高
语法:
insert into 表名(列名,...)
values(值,...)
set插入
语法:
insert into 表名
set 列名 = 值,列名 = 值,...
多行查询 子查询
经典插入 支持 支持
set插入 不支持
#经典插入
#1.插入的值类型要与列的类型一致或者兼容
INSERT INTO beauty(`id`,`name`,`sex`,`borndate`,`phone`,`photo`,`boyfriend_id`)
VALUES(13,'唐艺昕','女','1990-4-23','18988888888',NULL,2);
SELECT * FROM beauty;
#2.不可以为null的必须插入值
#3.可以为null的列如何插入值?
#方式一:
INSERT INTO beauty(`id`,`name`,`sex`,`borndate`,`phone`,`photo`,`boyfriend_id`)
VALUES(13,'唐艺昕','女','1990-4-23','18988888888',NULL,2);
#方式二:
INSERT INTO beauty(`id`,`name`,`sex`,`borndate`,`phone`,`boyfriend_id`)
VALUES(14,'冰冰','女','1992-7-18','18988888888',9);
#4.列的顺序是否可以调换? 可以
INSERT INTO beauty(NAME,sex,id,phone)
VALUES('蒋欣','女',15,'15846151256');
#5.列数和值的个数必须一致
INSERT INTO beauty(NAME,sex,id,phone,`boyfriend_id`)
VALUES('九十八','女',16,'16246151256');
#6.可以省略列名,默认是所有列,而且列的顺序与表中列的顺序是一致的
INSERT INTO beauty
VALUES(17,'莹莹','女',NULL,'18977778888',NULL,8);
#
INSERT INTO beauty
SET id = 18,NAME = '扬扬',sex ='女',phone = '18974561356';
修改
修改单表的纪录:执行顺序 update where set
语法
update 表名
set 列 = 新值,列 = 新值,...
where 筛选条件;
修改多表的纪录[补充]
sql92语法:
update 表1 别名,表2 别名
set 列 = 值,...
where 连接条件
on 筛选条件
sql99语法:
update 表1 别名
inner|left|right join 表2 别名
on 连接条件
set 列 = 值,...
where 筛选条件
#修改单表的记录
#案例1:修改beauty表中姓唐的女神的电话为13899888899
UPDATE beauty
SET `phone` = "13899888899"
WHERE NAME LIKE "%唐%";
#案例2:修改boys表中id为2的名称为张飞,魅力值为10
UPDATE boys
SET `boyName` = "张飞",`userCP` = 10
WHERE id = 2
#修改多表的记录
#案例1:修改张无忌的女朋友的手机号为11432650189
UPDATE boys bo
INNER JOIN beauty b
ON bo.`id` = b.`boyfriend_id`
SET b.`photo` = '11432650189'
WHERE bo.`boyName` = "张无忌";
#案例2:修改没有男朋友的女神的男朋友编号为 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
单表的删除:
delete from 表名 where 筛选条件;
多表的删除:
sql92语法:
delete 别名
from 表1 别名,表2 别名
where 连接条件
on 筛选条件;
sql99语法:
delete 别名
from 表1 别名
inner|left|right join 表2 别名
on 连接条件
where 筛选条件
方式二:truncate
truncate table 表名;
特点:
1.delete 可以加 where 条件,truncate 不能加
2.truncate 删除,效率高一些
3.假如删除的表中有自增长列
如果用delete删除后,在插入数据,自增长列的值从断点开始
如果用truncate删除后,在插入数据,自增长列的值从1开始
4.truncate 删除没有返回值,delete 删除有返回值
5.truncate 删除不能回滚,delete 删除可以回滚
#方式一
#单表的删除
#案例1:删除手机号以9结尾的女神信息
DELETE FROM beauty
WHERE phone LIKE "%9";
#多表删除
#案例1:删除张无忌的女朋友的信息
DELETE b
FROM boys bo
INNER JOIN beauty b
ON bo.`id` = b.`boyfriend_id`
WHERE bo.`boyName` = "张无忌";
#案例2:删除黄晓明的信息以及她的女朋友的信息
DELETE bo,b
FROM boys bo
INNER JOIN beauty b
ON bo.`id` = b.`boyfriend_id`
WHERE bo.`boyName` = "黄晓明";
#方式二:truncate 语句
#案例1:删除boys表
truncate table boys;
MySQL之DML语言
- Author -
天问ㄆ声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@