Mysql学习笔记(013)-DML语言-增删改

增删改

  1 #DML语言
  2 /*
  3 数据操作语言
  4 插入:insert
  5 修改:update
  6 删除:delete
  7 
  8 */
  9 
 10 #一、插入语句
 11 /*
 12 语法:
 13 insert into 表名(列名,...) values(值,...)
 14 
 15 
 16 
 17 
 18 
 19 */
 20 
 21 #1.插入的值的类型要与列的类型一致或兼容
 22 INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)
 23 VALUES(13,'唐艺昕','','1990-4-23','18988888888',NULL,2)
 24 
 25 #2.不可以为null的列必须插入值,可以为null的列如何插入值
 26 #方式一:
 27 INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)
 28 VALUES(13,'唐艺昕','','1990-4-23','18988888888',NULL,2)
 29 
 30 #方式二:
 31 
 32 INSERT INTO beauty(id,NAME,sex,borndate,phone,boyfriend_id)
 33 VALUES(15,'娜扎','','1990-4-23','18988888888',9)
 34 
 35 
 36 #3.列的顺序是否可以调换
 37 INSERT INTO beauty(NAME,sex,id,phone)
 38 VALUES('蒋欣','',16,'110')
 39 
 40 
 41 #4.列的个数和值的个数要一致
 42 
 43 INSERT INTO beauty(NAME,sex,id,phone)
 44 VALUES('关晓彤','',17,'110')
 45 
 46 #5.可以省略列名,默认所有列,而且顺序和表中的顺序是一致的
 47 
 48 INSERT INTO beauty
 49 VALUES(18,'张飞','',NULL,'119',NULL,NULL)
 50 
 51 #方式二:
 52 /*
 53 
 54 语法:
 55 insert into 表名
 56 set 列名=值,列名=值,...
 57 */
 58 
 59 
 60 INSERT INTO beauty
 61 SET id=19,NAME='刘涛',phone='999';
 62 
 63 
 64 #两种方式大pk
 65 
 66 
 67 1、方式一支持插入多行,方式二不支持
 68 
 69 INSERT INTO beauty
 70 VALUES(23,'唐艺昕','','1190-4-23','18988888888',NULL,2)
 71 ,(24,'唐艺昕','','1190-4-23','18988888888',NULL,2)
 72 ,(25,'唐艺昕','','1190-4-23','18988888888',NULL,2)
 73 
 74 2、方式一支持子查询,方式二不支持
 75 
 76 INSERT INTO beauty(id,NAME,phone)
 77 SELECT  26,'宋茜','11809866'
 78 
 79 INSERT INTO beauty(id,NAME,phone)
 80 SELECT  id,boyname,'11809866'
 81 FROM boys WHERE id<3;
 82 
 83 #二、修改语句
 84 /*
 85 
 86 1.修改单表中的记录☆
 87 
 88 语法:
 89 update 表名
 90 set 列=新值,列=新值,...
 91 where 筛选条件;
 92 
 93 2修改多表的记录【补充】
 94 
 95 语法:
 96 sql92语法
 97 update 表1 别名,表2 别名
 98 set 列=值2,...
 99 where 连接条件
100 and 筛选条件;
101 
102 sql99语法:
103 update 表1 别名
104 inner|left|right join 表2 别名
105 on 连接条件
106 set 列=值,...
107 筛选条件;
108 */
109 
110 
111 #1.修改单表中的记录
112 #案例1:修改beauty表中姓唐的女神的电话号码为13899888899
113 
114 UPDATE beauty SET phone ='13899888899'
115 WHERE NAME LIKE '唐%'
116 
117 #案例2:修改boys表中id号为2的名称为张飞,魅力值10
118 UPDATE boys SET boyname='张飞',usercp=10
119 WHERE id =2;
120 
121 
122 
123 #2.修改多表的记录
124 
125 #案例 1;修改张无忌女朋友的手机号为114
126 
127 UPDATE boys bo
128 INNER JOIN beauty b ON bo.`id`=b.`boyfriend_id`
129 SET b.`phone`='114'
130 WHERE bo.`boyName`='张无忌'; 
131 
132 
133 
134 #案例2:修改没有男朋友的女神的男朋友编号都为2号
135 
136 UPDATE boys bo
137 RIGHT JOIN beauty b ON bo.`id`=b.`boyfriend_id`
138 SET b.`boyfriend_id`=2
139 WHERE b.id IS NULL;
140 
141 SELECT * FROM boys;
142 
143 
144 #三、删除语句
145 /*
146 
147 方式一:delete
148 语法:
149 
150 1、单表的删除【☆】
151 delete from 表名 where 筛选条件
152 
153 2、多表的删除【补充】
154 
155 sql92语法
156 delete 表1的别名,表2的别名
157 from 表1 别名,表2 别名
158 where 连接条件
159 and 筛选条件;
160 
161 sql99语法:
162 delete 表1的别名,表2的别名
163 from 表1 别名
164 inner|left|right join 表2 别名 on 连接条件
165 where 筛选条件;
166 
167 
168 
169 
170 方式二:truncate
171 语法:truncate table 表名;
172 
173 */
174 
175 #方式一:delete
176 #1.单表的删除
177 #案例1:删除手机号以9结尾的女神信息
178 
179 DELETE FROM beauty WHERE phone LIKE '%9';
180 
181 SELECT * FROM beauty;
182 
183 #2.多表的删除
184 
185 #案例:删除张无忌的女朋友的信息
186 
187 DELETE b
188 FROM beauty b
189 INNER JOIN boys bo ON b.`boyfriend_id`=bo.`id`
190 WHERE bo.`boyName`='张无忌';
191 
192 #案例:删除黄晓明的信息以及他女朋友的信息
193 DELETE b,bo
194 FROM beauty b
195 INNER JOIN boys bo ON b.`boyfriend_id`=bo.`id`
196 WHERE bo.`boyName`='黄晓明';
197 
198 
199 
200 #方式二:truncate语句
201 
202 #案例:将魅力值>100的男神信息删除
203 TRUNCATE TABLE boys WHERE userCP>100;
204 TRUNCATE TABLE boys;#效率比delete from要高,清空表格
205  
206 
207 
208 #delete pk truncate【面试题☆】
209 
210 
211 /*
212  1. delete 可以加where 条件,truncate不能加 
213  2.truncate删除,效率高一点 
214  3.加入要删除的表中有自增长列,如果用delete删除后,再植入数据,自增长列的值从断点开始,
215  而truncate删除后,再植入数据列的值从1开始。
216  4.truncat删除没有返回值,而delete删除有返回值
217  
218  5.truncat删除不能回滚,delete删除可以回滚
219  
220  */
221  
222  SELECT * FROM boys;
223  
224  DELETE FROM boys;
225  TRUNCATE TABLE boys;
226  INSERT INTO boys (boyName,userCP)
227  VALUES('张飞',100),('刘备',100),('关云长',100)
228  
229  
230  

案例讲解

小结

猜你喜欢

转载自www.cnblogs.com/landerhu/p/12326493.html