2020-08-02

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照片,二进制文件,暂未空

#2.不可以为NULL的列必须插入值,可以为NULL的列如何插入值?方式一:用NULLINSERT 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);

#跳过,省略插入INSERT INTO beauty(id,NAME,sex,phone)VALUES(15,'绪淼','女','13700156035');

#3.列的顺序是否可以调换INSERT INTO beauty(NAME,sex,id,phone)VALUE('仁忻','女','16','12345');

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

#5.可以省略列名,默认所有列,而且列的顺序和表的顺序一致,但要遵守第四点。INSERT INTO beautyVALUES(17,'李玉婷','女',NULL,'19999999999',NULL,NULL);

#方式二:语法:INSERT INTO 表名SET 列名=值,列名=值,...#1.插入INSERT INTO beautySET id=19,NAME='凛',phone='119';

#两种插入方式对比#1.方式一支持插入多行,方式二不支持INSERT INTO beautyVALUES(20,'清水','女','1990-5-20','19899990000',NULL,2),(21,'清淼','女','1990-5-20','19899991111',NULL,2),(22,'妙法','女','1210-2-20','19899991111',NULL,2);

 

#2.方式一支持子查询,方式二不支持INSERT INTO beauty(id,NAME,phone)SELECT 23,'丹止','12315';

#二:修改语句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;

#案例2.修改boys表中id号为4的名称为伯纳德,魅力值200UPDATE boys SET boyname='伯纳德',usercp=200WHERE id = 4;

#2.修改多表的记录#案例1.修改光头强的朋友的手机号为116。【1999语法】UPDATE boys boINNER JOIN beauty beON be.boyfriend_id=bo.idSET be.phone='116'WHERE bo.boyName='光头强';

#案例2.修改没有男朋友的女朋友的男朋友编号都为4号。UPDATE boys boRIGHT JOIN beauty beON be.boyfriend_id=bo.idSET be.boyfriend_id=4WHERE bo.id IS NULL;

#三.删除语句方式一: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 beautyWHERE phone LIKE '%3';#案例:删除喜羊羊的朋友信息DELETE b  #删哪个表的信息就写哪个表,FROM beauty bINNER JOIN boys bo ON b.boyfriend_id=bo.idWHERE bo.boyName='喜羊羊';#案例:删除伯纳德的信息以及他朋友的信息。【级联删除】DELETE b,bo  #两张表里的信息满足条件的都删除FROM beauty bINNER JOIN boys bo ON b.boyfriend_id=bo.idWHERE bo.boyName='伯纳德';#方式二:TRUNCATE删除#案例:把魅力值>100的男神删除。TRUNCATE TABLE boysWHERE userCP>100;#最终结果报错,TRUNCATE后面不能加WHERE条件。所以一般用来清空整张表的数据。
#删除一张表内的数据DELETE FROM boys;

#插入数据,查看IDINSERT INTO boys(boyname,usercp)VALUES('喜羊羊','200'),('灰太狼','150'),('虹猫','300');

先清空表格TRUNCATE boys;#插入数据,查看ID

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);

#2.查看表结构DESC my_employees;DESC users;#3.插入数据#方式一:INSERT INTO my_employeesVALUES(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_employeesSELECT 1,'patel','Ralph','Rpatel',895 UNIONSELECT 2,'Dancs','Betty','Bdancs',860 UNIONSELECT 3,'Biri','Ben','Bbiri',1100 UNIONSELECT 4,'Newman','Chad','Cnewman',750 UNIONSELECT 5,'Ropeburn','Audrey','Aropebur',1550;

#4.插入数据INSERT INTO usersVALUES (1,'Rpatel',10),(2,'Bdancs',10),(3,'Cnewman',20),(4,'Bbiri',30), (5,'Aropebur',40);#5.将3号员工的last_name修改为"drelxer"UPDATE my_employeesSET last_name='drelxer'WHERE Id=3;

#6.将所有工资少于900的员工的工资修改为1000UPDATE my_employeesSET Salary=1000WHERE Salary<900;

#7.将userid为Bbiri的user表和my_employees表的记录全部删除。DELETE u,mFROM users uINNER JOIN my_employees m ON u.userid=m.UseridWHERE u.userid='Bbiri';#8.删除所有数据DELETE FROM my_employees;DELETE FROM users;

#9.检查所作的修正SELECT * FROM my_employees;SELECT * FROM users;#10.清空my_employeesTRUNCATE TABLE my_employees;TRUNCATE TABLE users;
MySql的回顾七:DDL增/删/改物流仓储供应链Cdiscount 官方培训课程2016晋江跨境电商大讲堂图文实操:如何利用Facebook广告来推广shopify店铺?Amazon SEO指南:如何让产品出现在亚马逊首页上?划重点!"两会"政府工作报告中外贸人需要特别关注的信息点汇总2017年春节深圳欢乐谷有什么优惠活动?2017年深圳春节加班费怎么算啊?2017深圳情人节有什么活动?

No comments:

Post a Comment