lyt经典版MySQL基础——DML语言-数据的插入、修改、删除操作

  1 #DML语言
  2 /*
  3 数据操作语言
  4 插入:insert
  5 修改:update
  6 删除:delete
  7 */
  8 
  9 #一、插入语句
 10 #方式一:
 11 /*
 12 语法:
 13 insert into 表名(列名,...) values(值1,...);
 14 
 15 */
 16 SELECT * FROM beauty;
 17 #1.插入的值的类型要与列的类型一致或兼容
 18 INSERT INTO beauty (id,NAME,sex,borndate,phone,photo,boyfriend_id)
 19 VALUES(13,'唐艺昕','','1990-04-23','18988888888',NULL,2);
 20 
 21 #2.不可以为null的列必须插入值,可以为null的列如何插入值?
 22 #方式一:
 23 INSERT INTO beauty (id,NAME,sex,borndate,phone,photo,boyfriend_id)
 24 VALUES(13,'唐艺昕','','1990-04-23','18988888888',NULL,2);
 25 #方式二:
 26 INSERT INTO beauty (id,NAME,sex,phone)
 27 VALUES(15,'娜扎','','18988888888');
 28 
 29 #3.列的顺序可以调换
 30 INSERT INTO beauty(NAME,sex,id,phone)
 31 VALUES('蒋欣','',16,'110');
 32 
 33 #4.列数和值的个数必须一致
 34 #5.可以省略列名,默认所有列,而且列的顺序和表中列的顺序一致
 35 INSERT INTO beauty VALUES(18,'张飞','',NULL,'119',NULL,NULL);
 36 
 37 #方式二:
 38 /*
 39 语法:
 40 insert into 表名
 41 set 列名=值,列名=值,...
 42 */
 43 
 44 INSERT INTO beauty SET id=19,NAME='刘涛',phone='999';
 45 
 46 #两种方式大PK
 47 #1.方式一支持插入多行
 48 INSERT INTO beauty
 49 VALUES (23,'唐艺昕1','','1990-04-23','18988888888',NULL,2),
 50 (24,'唐艺昕2','','1990-04-23','18988888888',NULL,2),
 51 (25,'唐艺昕3','','1990-04-23','18988888888',NULL,2);
 52 #2.方式一支持子查询,方式二不支持
 53 INSERT INTO beauty(id,NAME,phone)
 54 SELECT 26,'宋茜','11809866';
 55 
 56 INSERT INTO beauty(id,NAME,phone)
 57 SELECT id,boyName,'1234567'
 58 FROM boys WHERE id<3;
 59 
 60 #二、修改语句
 61 /*
 62 1.修改单表的记录(√)
 63 语法:
 64 update 表名 set 列=新值,列=新值,... where 筛选条件;
 65 
 66 2.修改多表的记录【补充】
 67 语法:
 68 sql92语法:
 69 update 表1 别名,表2 别名
 70 set 列=值,...
 71 where 连接条件
 72 and 筛选条件;
 73 
 74 sql99语法:
 75 update 表1 别名
 76 inner|left|right join 表2 别名
 77 on 连接条件
 78 set 列=值,...
 79 where 筛选条件;
 80 */
 81 
 82 #1.修改单表的记录
 83 #案例1:修改beauty表中姓唐的女神的电话为13899889988
 84 SELECT * FROM beauty;
 85 UPDATE beauty SET phone='13899889988'
 86 WHERE NAME LIKE '唐%';
 87 #案例2:修改boys表中id号为2的名称为张飞,魅力值10
 88 UPDATE boys SET boyName='张飞',userCp='10'
 89 WHERE id='2';
 90 SELECT * FROM boys;
 91 
 92 #2.修改多表的记录
 93 #案例1:修改张无忌的女朋友的手机号为114
 94 UPDATE boys bo
 95 INNER JOIN beauty b ON bo.id=b.boyfriend_id
 96 SET b.phone='114'
 97 WHERE bo.boyName='张无忌';
 98 #案例2:修改没有男朋友的女神的男朋友编号都为2号
 99 UPDATE boys bo
100 RIGHT JOIN beauty b ON bo.id=b.boyfriend_id
101 SET b.boyfriend_id='2'
102 WHERE bo.id IS NULL;
103 
104 #三、删除语句
105 /*
106 方式一:delete
107 语法:
108 
109 1.单表的删除(√)
110 delete from 表名 where 筛选条件
111 2.多表的删除【补充】
112 sql92语法:
113 delete 表1的别名,表2的别名
114 from 表1 别名,表2 别名
115 where 连接条件
116 and 筛选条件;
117 
118 sql99语法:
119 delete 表1的别名,表2的别名
120 from 表1 别名
121 inner|left|right join 表2 别名 on 连接条件
122 where 筛选条件;
123 
124 方式二:truncate
125 语法:truncate table 表名;
126 */
127 
128 #方式一:delete
129 #1.单表的删除
130 #案例1:删除手机号以9结尾的女神信息
131 DELETE FROM beauty 
132 WHERE phone LIKE '%9';
133 SELECT * FROM beauty;
134 
135 #2.多表的删除
136 #案例:删除张无忌的女朋友的信息
137 DELETE b
138 FROM beauty b INNER JOIN boys bo ON b.boyfriend_id=bo.id
139 WHERE bo.boyName='张无忌';
140 SELECT * FROM beauty;
141 #案例:删除黄晓明的信息以及他女朋友的信息
142 DELETE b,bo
143 FROM beauty b INNER JOIN boys bo ON b.boyfriend_id=bo.id
144 WHERE bo.boyName='黄晓明';
145 SELECT * FROM beauty;
146 SELECT * FROM boys;
147 
148 #方式二:truncate语句
149 #案例:将魅力值>100的男神信息删除
150 TRUNCATE TABLE boys;
151 
152 #delete PK truncate【面试题√】
153 /*
154 1.delete可以加where条件,truncate不能加
155 2.truncate删除,效率高一丢丢
156 3.假如要删除的表中有自增长列,如果用delete删除后,再插入数据,自增长列的值
157 从断点开始,而truncate删除后,再插入数据,自增长列的值从1开始。
158 4.truncate删除没有返回值,delete删除有返回值
159 5.truncate删除不能回滚,delete删除可以回滚。
160 */
161 
162 SELECT * FROM boys;
163 DELETE FROM boys;
164 TRUNCATE boys;
165 INSERT INTO boys(boyName,userCP)
166 VALUES('张飞',100),('刘备',100),('关云长',100);
原文地址:https://www.cnblogs.com/yanwuliu/p/13373374.html