MySQL——DML数据增、删、改

DML(Data Manipulation Language –数据操纵语言)

插入

方式一(经典)

语法:

insert into 表名(列名,...) values(值,...);

若要一次插入多行

create table if NOT EXISTS user(
	name VARCHAR(20),
	sex VARCHAR(2),
	age INT
)
INSERT INTO `user` VALUES('丸子','male',23),('莉香','female',22)

【说明】

  1. 要求值的类型和字段的类型一致或兼容
  2. 字段的个数和顺序可以与原始表中的字段个数和顺序不一致,但必须保证值和字段的类型一一对应
  3. 假如表中有可以为null的字段,可以通过以下两种方式插入null值
    ①字段和值都省略
    ②字段写上,值使用null
  4. 字段和值的个数必须一致
  5. 字段名可以省略,默认所有列,且顺序与默认顺序相同
  6. 字符和日期型数据应包含在单引号

方式二

语法:

insert into 表名 set 字段=值,字段=值,...;

两种方式的区别:

  1. 方式一支持一次插入多行,方式二不支持
  2. 方式一支持子查询,即从其他表中拷贝数据,方式二不支持

修改

修改单表的记录 (重点)

update 表名 set 字段=值,字段=值 where 筛选条件;

修改多表的记录【补充】

update 表1 别名 
left|right|inner join 表2 别名 
on 连接条件  
set 字段=值,字段=值 
where 筛选条件;

案例

#修改张无忌的女朋友的手机号为114
UPDATE boys bo
INNER JOIN beauty b ON bo.id=b.boyfriend_id
SET b.phone='119',bo.userCP=1000
WHERE bo.boyName='张无忌';

删除

方式一:delete

删除单表的记录★

语法:

delete from 表名 where 筛选条件 limit 条目数

注意:使用 WHERE 子句 删除指定的记录。如果省略 WHERE 子句,则表中的全部数据将被删除

多表级联删除[补充]

语法:

delete 别名1,别名2 from 表1 别名 
inner|left|right join 表2 别名 
on 连接条件
where 筛选条件

方式二:truncate

语法:

truncate table 表名

两种方式的区别【面试题】★

  1. truncate删除后,如果再插入,标识列从1开始; delete删除后,如果再插入,标识列从断点开始
  2. delete可以添加筛选条件,truncate不可以添加筛选条件
  3. truncate效率较高
  4. truncate没有返回值,delete可以返回受影响的行数
  5. truncate不可以回滚,delete可以回滚
上一篇:MySQL篇——数据管理,DML管理、DQL查询


下一篇:数据库操纵语言(DML)