增删改
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
案例讲解
小结