MySQL(入门)第三篇:DML语言(插入语句、修改语句、删除语句)

插入语句

语法一:
  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删除可以回滚

原文地址:https://www.cnblogs.com/lunotebook/p/12837010.html