MySQL 入门系列 ——【DML篇】

【DML语言】

主要涉及到的是增删改;

Data Manipulation Language 数据操纵语言

是指在SQL语言中,负责对数据库对象运行数据访问工作的指令集

数据操作语言:(3种核心指令)

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

 


目录

【DML语言】

I.插入语句

A.方式1:经典插入

B.方式2

II.修改语句

A.修改单标的记录

B.修改多表的记录

III.删除语句

A.delete

B.truncate


 

I.插入语句

 

A.方式1:经典插入

语法:

insert into 表名(列名,......)

values(值1,值2,....)

eg:

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

--1.要求插入的值的类型要与列的类型一致或兼容--
SELECT *
FROM  beauty;
INSERT INTO beauty(id,`name`,`sex`,`borndate`,`phone`,`photo`,`boyfriend_id`)
VALUES (13,'唐艺昕','女','1990-4-23','19000000',NULL,2);

#2.可以为null的列是如何插入值的

不可以为null的列必须插入值

可以为null的列插入值:

  • 方式一:

上方列名写全,下方值用null代替

  • 方式二:

上行的列名和下行的值都省略

INSERT INTO beauty(id,`name`,`sex`,`borndate`,`phone`)
VALUES (15,'杨幂','女','1991-7-01','190066600');

 

#3列的顺序可以调换(添加时)

INSERT INTO beauty(NAME,sex,id,phone)
VALUES('宋祖儿','女','16','1881234567');

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

否则会报错,不匹配

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

insert into beauty
values (18,'魏大勋','男','1990-05-01','1911234567',null,null);

 

B.方式2

语法:

inser into 表名

set 列名=值,列名=值,.......

eg:

1.插入数据:

INSERT INTO beauty
SET id=19,NAME='郑爽',phone='76543210';

两种方式区别:

1.方式1 支持插入多行;可批量插入

方式2不支持

2.方式1 支持子查询;方式2不支持

3.一般用方式1

 

II.修改语句

2种

A.修改单标的记录

语法:

Update 表名   ①

set 列=新值,列=新值,...   ③

where 筛选条件;   ②

eg:

1.修改beauty 中姓唐的电话为1389988999

UPDATE beauty
SET phone='1389988999'
WHERE NAME LIKE  '唐%';

2.修改多个数据

(1)修改boys表中id=2的名称为‘张飞’,魅力值为10

update boys
set boyName='张飞',userCP=10
where id=2; 

B.修改多表的记录

语法:

sql92语法:

update 表1 别名,表2 别名

set 列=值,.......

where 连接条件

and 筛选条件;

sql99语法:

update 表1 别名

inner |left |right join 表2 别名

on 连接条件

set 列=值,....

where 筛选条件;

eg:

(1)修改张无忌的女朋友的手机号为0123

UPDATE boys AS m
INNER JOIN beauty AS w 
ON m.`id`=w.`boyfriend_id`
SET phone=0123
WHERE  m.`boyName`='张无忌';

(2)修改没有男朋友的女神的男朋友编号都为2号

UPDATE beauty AS w
LEFT  JOIN boys AS m
ON w.`boyfriend_id`=m.`id`
SET w.`boyfriend_id`=2
WHERE w.`boyfriend_id`IS NULL;

 

III.删除语句

 

A.delete

语法:

  • 1.单表的删除

delete from 表名 

where 筛选条件

  • 2.多表的删除

sql92语法:

delete 表1的别名,表2的别名

from 表1 别名,表2 别名

where 连接条件

and 筛选条件;

sql99语法:

delete 表1 的别名,表2的别名

from 表1  别名

inner|left|right join 表2 别名  on 连接条件

where 筛选条件

eg:

(1)删除手机号以9结尾的女生的信息

DELETE FROM beauty
WHERE phone LIKE '%9';

(2)删除张无忌的女朋友的信息

DELETE  w
FROM beauty AS w
INNER JOIN boys AS m   ON w.`boyfriend_id`=m.`id`
WHERE m.`boyName`='张无忌';

(3)删除黄晓明的信息以及他女朋友的信息

delete m,w
from boys as m
inner join beauty as w on w.`boyfriend_id`=m.`id`
where m.`boyName`='黄晓明';

--查询数据--
select * from beauty;
SELECT * FROM boys;

 

B.truncate

语法:不可以有where筛选条件

一删除全部删除

truncate table 表名;

 

【区别】

  • (1)delete可以加where添加,t不可以
  • (2)t删除,效率更高
  • (3)truncate删除没有返回值;delete删除有返回值

eg:删除后,提示会显示X行受影响(t:0行受影响;d:会提示)

(4)假如要删除的表中有增长列:

  • 用delete删除后,再插入数据,自增长列的值从断电开始 
  • 用truncate删除后,在插入数据,自增长列的值从1开始

eg:

用delete删除数据后,总共编号有5个;然后再加入数据,数据编号是从6开始的;

    

  • (5)truncate删除不能回滚;delete删除可以回滚

 

本节练习题见下一篇文章【Mysql练习题】-【数据的增删改】

相关数据库资源可文末留言,免费分享给你哟~

快来和我一起学习叭!

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值