1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
| 插入语句 语法:insert into 表名(列名...) values(值1,...);
#方式一: 例1: SELECT * FROM beauty; INSER INTO beauty(id,NAME,sex,borndate,phone,girlfriend_name,girlfriend_id) 插入的值的类型要与列的类型一致或兼容 VALUES(22,'恒子',‘男’,'2000-12-22','17513077777','null','1'); 日期和字符串需要加单引号或双引号。
2:不可以为null的列必须插入值,可以为null的列如何插入值? #方式一: INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id) VALUES(18,'贝尔摩德','女','1999-11-11','3333333333',NULL,7);
#方式二: INSERT INTO beauty(id,NAME,sex,phone) VALUES(15,'灰原哀','女','77777777777');
3:列的顺序是否可以调换 INSERT INTO beauty(NAME,sex,id,phone) VALUES('步美','女',10,'777');
4:列数和值的个数必须一致 INSERT INTO beauty(NAME,sex,id,phone) VALUES('世良','女',18,'111');
5:可以省略列名,默认所有列,而且列的顺序和表中列的顺序一致 INSERT INTO beauty VALUES(18,'柯南','男',NULL,'110',NULL,NULL);
#方式二: 语法: insert into 表名 set 列名=值,列名=值...;
方式一和方式二对比: 1:方式一支持插入多行,方式二不支持 INSERT INTO beauty VALUES(16,'灰原哀','女','1999-7-7','8888888',NULL,1), (17,'柯南','男','1990-7-7','8888888',NULL,2), (18,'小兰','女','1990-7-7','8888888',NULL,1);
2:方式一支持子查询,方式二不支持 INSERT INTO beauty(id,NAME,phone) SELECT 18,'秀一','99999999';
INSERT INTO beauty(id,NAME,phone) SELECT id,boyname,'6666666' FROM boys WHERE id<3;
修改语句: 1.修改单表的记录★ 语法: update 表名 set 列=新值,列=新值,... where 筛选条件;
2.修改多表的记录【补充】 sql92语法: update 表1 别名,表2 别名 set 列=值,... where 连接条件 and 筛选条件;
sql99语法: update 表1 别名 inner|left|right join 表2 别名 on 连接条件 set 列=值,... where 筛选条件;
修改单表的记录 例1:修改beauty表中姓玛的女神的电话为7777777 UPDATE beauty SET phone = '7777777' WHERE NAME LIKE '玛%';
2:修改boys表中id号为2的名称为秀一,魅力值 100 UPDATE boys SET boyname='秀一',usercp=100 WHERE id=2;
3:修改多表的记录 修改柯南的女朋友的手机号为777 UPDATE boys bo INNER JOIN beauty b ON bo.`id`=b.`boyfriend_id` SET b.`phone`='777',bo.`userCP`=1000 WHERE bo.`boyName`='柯南';
4:修改没有男朋友的女神的男朋友编号都为2号 UPDATE boys bo RIGHT JOIN beauty b ON bo.`id`=b.`boyfriend_id` SET b.`boyfriend_id`=2 WHERE bo.`id` IS NULL;
删除语句: 方式一:delete
1、单表的删除【★】 delete from 表名 where 筛选条件
2、多表的删除【补充】 sql92语法: delete 表1的别名,表2的别名 from 表1 别名,表2 别名 where 连接条件 and 筛选条件;
sql99语法: delete 表1的别名,表2的别名 from 表1 别名 inner|left|right join 表2 别名 on 连接条件 where 筛选条件;
方式二:truncate 语法:truncate table 表名;
(delete) 例1:单表的删除 删除手机号以9结尾的女神信息 DELETE FROM beauty WHERE phone LIKE '%9'; SELECT * FROM beauty;
2:多表的删除 删除秀一的女朋友的信息 DELETE b FROM beauty b INNER JOIN boys bo ON b.`boyfriend_id` = bo.`id` WHERE bo.`boyName`='秀一';
3:删除安室透的信息以及他女朋友的信息 DELETE b,bo FROM beauty b INNER JOIN boys bo ON b.`boyfriend_id`=bo.`id` WHERE bo.`boyName`='安室透';
(truncate) 例1:将魅力值>100的男神信息删除 TRUNCATE TABLE boys;
【delete和truncate的区别:】
1.delete 可以加where 条件,truncate不能加。 2.truncate删除,效率高一丢丢。 3.假如要删除的表中有自增长列,如果用delete删除后,再插入数据,自增长列的值从断点开始,而truncate删除后,再插入数据,自增长列的值从1开始。 4.truncate删除没有返回值,delete删除有返回值。 5.truncate删除不能回滚,delete删除可以回滚。
|