插入语句
语法一:
INSERT INTO 表名(列名,...)
VALUES(值1,...)
#1.插入类型要与列的类型一致或兼容
INSERT INTO `beauty`(id,`name`,`sex`,`borndate`,`phone`,`photo`,`boyfriend_id`)
VALUES(13,'刘诗诗','女','1987-3-10','1888888888',NULL,NULL);
#2.不可以为null的列必须插入值,可以为null的列是怎么插入值的
#方式一:
INSERT INTO `beauty`(id,`name`,`sex`,`borndate`,`phone`,`photo`,`boyfriend_id`)
VALUES(13,'刘诗诗','女','1987-3-10','1888888888',NULL,NULL);
#方式二:
INSERT INTO beauty(`id`,`name`,`phone`)
VALUES(14,'金星','123333333');
#3.列的顺序是否可以颠倒:可以
INSERT INTO beauty(`name`,`id`,`phone`)
VALUES('娜扎',15,'298555555');
#4.列数和值个数必须一致
#5.可以省略列名,默认是所有列,而且列的顺序和表中列顺序一致
INSERT INTO beauty
VALUES(16,'关晓彤','女',NULL,'112',NULL,17);
语法二:
INSERT INTO 表名
SET 列名=值,列名=值,...
INSERT INTO beauty
SET id=17,`name`='刘涛',`phone`='999';
两周语法对比:
#1.语法一支持插入多行,语法二不支持
INSERT INTO beauty
VALUES(18,'刘诗诗2','女','1987-3-10','1888888888',NULL,NULL)
,(19,'刘诗诗3','女','1987-3-10','1888888888',NULL,NULL);
#2.语法一支持子查询,语法二不支持
INSERT INTO beauty(`id`,`name`,`phone`)
SELECT 20,'蒋欣','111';
修改语句
修改单表的记录
语法:
UPDATE 表名
SET 列=新值,列=新值,...
WHERE 筛选条件;
#改变beauty表中姓周的电话为1234567
UPDATE beauty
SET `phone`='1234567'
WHERE `name` LIKE '周%';
修改多表的记录【补充】
sql92语法:
UPDATE 表1 别名,表二 别名
SET 列=值
WHERE 连接条件
AND 筛选条件
sql99语法:
UPDATE 表1 别名
INNER|LEFT|RIGHT JOIN 表2 别名
ON 连接条件
SET 列=值
WHERE 筛选条件
#修改张无忌女朋友的手机号为114
UPDATE boys bo
INNER JOIN beauty b ON bo.`id`=b.`boyfriend_id`
SET b.`phone`='114'
WHERE bo.`boyName`='张无忌';
删除语句
方式一:DELETE
语法:
DELETE FROM 表名 WHERE 删选条件
#删除手机号9结尾女神信息
DELETE FROM beauty WHERE `phone` LIKE '%9';
方式二:TRUNCATE
删除整个表,不允许WHERE筛选条件删除行
注:
1.假如要删除的表中有自增长列,如果用DELETE删除后再插入数据,自增长列的值从断点开始,二TRUNCATE删除后再插入数据,自增长列的值从1开始
2.truncate删除没有返回值,DELETE删除有返回值
3.truncate删除不能回滚,DELETE删除可以回滚