mysql ddl可以改_MySql的回顾七:DDL增/删/改

连绵不断的降雨冲洗着四散的灰尘,顺便也将树叶洗的绿油油的。

雨只会越下越小,知识也会越学越少。(在一定范围)

漫长的查询过去,今天将带领读者们走进DDL语言的大厅,感受别致SQL语句吧!

#DML语言数据操作语言

插入:INSERT

修改:UPDATE

删除:DELETE

#一.插入语句

#方式一:经典的插入

语法:

INSERT INTO 表名(列名,....)

VALUES(值1,...)

插入三要素:表名,列名,新值

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

INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)

VALUES(13,'糖稀','女','1990-2-2','18699888880',NULL,2);

#photo照片,二进制文件,暂未空

4dad0e1fa17ba6649ac7adad58c21cad.png

#2.不可以为NULL的列必须插入值,可以为NULL的列如何插入值?方式一:用NULL

INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)

VALUES(13,'糖稀','女','1990-2-2','18699888880',NULL,2);

#方式二:跳过字段

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

VALUES(14,'河绪','女','1990-2-2','19952111333',9);

f3150c641781ee4d6907675e170676d3.png

#跳过,省略插入

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

VALUES(15,'绪淼','女','13700156035');

74dca79c81afcd2fc04d936a7fe47abe.png

#3.列的顺序是否可以调换

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

VALUE('仁忻','女','16','12345');

79e49e27e3f6fd6df9fe937f86124ef9.png

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

a4402ce4dbe5c4ec012d73acd4465631.png

#5.可以省略列名,默认所有列,而且列的顺序和表的顺序一致,但要遵守第四点。

INSERT INTO beauty

VALUES(17,'李玉婷','女',NULL,'19999999999',NULL,NULL);

d55d0989d7724bc3c98aec58804d81e4.png

#方式二:

语法:

INSERT INTO 表名

SET 列名=值,列名=值,...

#1.插入

INSERT INTO beauty

SET id=19,NAME='凛',phone='119';

9147f8b3c209254ce0a8db11ec19a212.png

#两种插入方式对比

#1.方式一支持插入多行,方式二不支持

INSERT INTO beauty

VALUES(20,'清水','女','1990-5-20','19899990000',NULL,2),

(21,'清淼','女','1990-5-20','19899991111',NULL,2),

(22,'妙法','女','1210-2-20','19899991111',NULL,2);

eceb3823c0ca8455a678b95c1e1444df.png

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

INSERT INTO beauty(id,NAME,phone)

SELECT23,'丹止','12315';

1993cdbc450824a3474ff0a5310e545e.png

bc7334940cb1455bb357beff557afacd.png

#二:修改语句1.修改单表的记录★

语法:

① UPDATE 表名

③ SET 列=新值,列=新值...

② WHERE 筛选条件;【如果不加筛选条件,表内所有数据都会被修改】

执行顺序①②③2.修改多表的记录【补充】

语法:

SQL1992语法

UPDATE 表1 别名,表2 别名

SET 列=值...

WHERE 连接条件

AND 筛选条件

SQL1999语法

UPDATE 表1 别名

INNER|LEFT|RIGHT JOIN 表2 别名

ON 连接条件

SET 列=值,...

WHERE 筛选条件;

#修改单表的记录

#案例1.修改beauty表中清开头的电话为13322333

UPDATE beauty SET phone='1332233'

WHERE NAME LIKE '清%';

SELECT * FROM beauty;

b601b51a2eab983300d8a9f9821db184.png

#案例2.修改boys表中id号为4的名称为伯纳德,魅力值200

UPDATE boys SET boyname='伯纳德',usercp=200

WHERE id = 4;

3e260a2b8784956a0b5183f25ed4622a.png

#2.修改多表的记录

#案例1.修改光头强的朋友的手机号为116。【1999语法】

UPDATE boys bo

INNER JOIN beauty be

ON be.boyfriend_id=bo.id

SET be.phone='116'

WHERE bo.boyName='光头强';

2cc0ce7db654ed4c45dfb9ef0b4ae514.png

#案例2.修改没有男朋友的女朋友的男朋友编号都为4号。

UPDATE boys bo

RIGHT JOIN beauty be

ON be.boyfriend_id=bo.id

SET be.boyfriend_id=4

WHERE bo.id IS NULL;

ea27e00e00875e72751e68d9074ad57a.png

#三.删除语句

方式一:DELETE

语法:1.单表的删除★

DELETE FROM 表 WHERE 筛选条件;2.多表的删除【补充】

SQL1992语法

DELETE 表1的别名,表2的别名【删那个表的数据写那个表,全删要写全部】

FROM 表1 别名,表2 别名

WHERE 连接条件

AND 筛选条件;

SQL1999语法

DELETE 表1的别名,表2的别名

FROM 表1 别名

INNER|LEFT|RIGHT JOIN 表2 别名

ON 连接条件

WHERE 筛选条件;

方式二: TRUNCATE

语法:

TRUNCATE 表名;

#方式一:DELETE

#1.单表的删除

#案例1.删除手机号以3结尾的女生信息。

DELETE FROM beauty

WHERE phone LIKE'%3';

#案例:删除喜羊羊的朋友信息

DELETE b #删哪个表的信息就写哪个表,

FROM beauty b

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

WHERE bo.boyName='喜羊羊';

#案例:删除伯纳德的信息以及他朋友的信息。【级联删除】

DELETE b,bo #两张表里的信息满足条件的都删除

FROM beauty b

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

WHERE bo.boyName='伯纳德';

#方式二:TRUNCATE删除

#案例:把魅力值>100的男神删除。

TRUNCATE TABLE boys

WHERE userCP>100;

#最终结果报错,TRUNCATE后面不能加WHERE条件。所以一般用来清空整张表的数据。

#删除一张表内的数据

DELETE FROM boys;

8628e9322d5a432baedb3b52353c8adc.png

#插入数据,查看ID

INSERT INTO boys(boyname,usercp)

VALUES('喜羊羊','200'),('灰太狼','150'),('虹猫','300');

33275694e71733bf4ed2f5a42f4ee99f.png

先清空表格

TRUNCATE boys;

#插入数据,查看ID

3000253eb868716ae5992fa4a3bea639.png

DELETE与TRUNCATE的区别1.delete 可以加WHERE 条件,TRUNCATE不能加2.TRUNCATE删除,效率高一些3.假如要删除的表中有自增长列,如果用DELETE删除后,再插入数据,

自增长列从断点开始,而TRUNCATE删除后,再插入数据,自增长从1开始。4.TRUNCAT删除没有返回值,DELETE删除有返回值【 Affected rows: 3三行受影响】。5.TRUNCATE删除不能回滚,DELETE删除可以回滚。

练习#1.建立两个表

CREATE TABLE my_eployees(

Id INT(10),

First_name VARCHAR(10),

Last_name VARCHAR(10),

Userid VARCHAR(10),

Salary DOUBLE(10,2)

);=================CREATE TABLE users(

id INT,

userid VARCHAR(10),

department_id INT

);

6a36b4fb26c666f1702ba9b3d6053b44.png

#2.查看表结构

DESC my_employees;

DESC users;

#3.插入数据

#方式一:

INSERT INTO my_employees

VALUES(1,'patel','Ralph','Rpatel',895),

(2,'Dancs','Betty','Bdancs',860),

(3,'Biri','Ben','Bbiri',1100),

(4,'Newman','Chad','Cnewman',750),

(5,'Ropeburn','Audrey','Aropebur',1550);

DELETE FROM my_employees;

#方式二: 子查询,UNION连接成为一条SQL语句

INSERT INTO my_employees

SELECT1,'patel','Ralph','Rpatel',895 UNION

SELECT 2,'Dancs','Betty','Bdancs',860 UNION

SELECT 3,'Biri','Ben','Bbiri',1100 UNION

SELECT 4,'Newman','Chad','Cnewman',750 UNION

SELECT 5,'Ropeburn','Audrey','Aropebur',1550;

2932b47587fbf7a9f7c429bf2964a1cc.png

#4.插入数据

INSERT INTO users

VALUES (1,'Rpatel',10),

(2,'Bdancs',10),

(3,'Cnewman',20),

(4,'Bbiri',30),

(5,'Aropebur',40);

#5.将3号员工的last_name修改为"drelxer"UPDATE my_employees

SET last_name='drelxer'

WHERE Id=3;

5261931ad217a8b559af464db4529e84.png

#6.将所有工资少于900的员工的工资修改为1000

UPDATE my_employees

SET Salary=1000

WHERE Salary<900;

36f257dff980f733a7982b83bc591cc3.png

#7.将userid为Bbiri的user表和my_employees表的记录全部删除。

DELETE u,m

FROM users u

INNER JOIN my_employees m ON u.userid=m.Userid

WHERE u.userid='Bbiri';

#8.删除所有数据

DELETE FROM my_employees;

DELETE FROM users;

badf34b0d3f8ef576ddb093c967ab9d8.png

#9.检查所作的修正

SELECT* FROM my_employees;

SELECT *FROM users;

#10.清空my_employees

TRUNCATE TABLE my_employees;

TRUNCATE TABLE users;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值