Mysql-DML语句
文章目录
- DML 语句
- 插入记录
- 插入全部字段
- 插入部分数据
- 蠕虫复制
- 更新表记录
- 无条件修改数据
- 带条件修改数据
- 一次性修改多列种数据
- 删除表记录
- 无条件删除数据
- 带条件删除数据
- truncate 删除表记录
🏡作者主页:点击!
🤖Mysql专栏:点击!
⏰️创作时间:2024年11月15日11点30分
DML 语句
DML 数据操作语言
用来对数据库中的数据进行增删改查。关键字(insert、delete、update等)
插入记录
关键字说明
insert into 表名 -------- 表示往哪张表中插入数据
(字段名1,字段名2) -------- 要给哪些字段设值
values( 值1,值2 ) -------- 设置具体的参数值
注意
- 值与字段必须对应,个数相同,类型相同
- 值的数据大小必须在字段的长度范围内
- 除了数据类型外,其他的字段类型的值必须使用引号引起,建议使用单引号
- 除了数字类型,其他的都需要加单引号
- 如果要插入空值,可以不写字段,或者直接输入 null
插入全部字段
把所有的字段名和值全部写出来
insert into 表名 ( 字段1、字段2、字段3… ) values ( 值1、值2、值3… ); // 这是一种最常见的操作
校验是否插入成功,此语句是 DQL 语句,查询数据用的
select * from feng_sir -------- 查询来自 feng_sir 的数据表中的数据
不写字段名,只写值
insert into 表名 values ( 值1、值2、值3… ); -------- 使用这种方法插入数据,系统会自动的匹配字段, 按照结构从上往下的顺序,进行数据的插入
插入部分数据
insert into 表名 ( 字段1、字段2… ) values ( 值1、值2… ); ---- 没有添加数据的字段会使用 null(不加引号)其中不需要的字段直接就可以略过,默认直接不进行匹配
蠕虫复制
在已有的基础上,将原来的数据进行复制,插入到对应的表中
语法格式
insert into 表名1 select * from 表名2 -------- 将表名2中的数据复制到表名1中
insert into 新表名 select * from 旧表名 -------- 在新表名里面插入旧表名的所有数据
蠕虫复制操作
mysql> create table feng_sir2 like feng_sir; -------- 快速创建一个数据表 feng_sir2 类型和 feng_sir 一样
mysql> insert into feng_sir2 select * from feng_sir; -------- 往 feng_sir2 里面插入 feng_sir 的数据
如果只想复制某些数据,并不全部进行复制,可以使用以下方法
insert into feng_sir2 (name,age) select name,age from feng_sir; // 将 feng_sir 里面的 name,age 字段插入 feng_sir2,再次执行命令会再次进行插 入,不会进行覆盖
更新表记录
关键字说明
update = 修改类型
set = 修改哪些字段
where = 指定条件
无条件修改数据
不带条件的修改数据
update 表名 set 字段名 = 值;
意思相当于修改全部数据,未指定条件
**实例:**update feng_sir set age = 19;
select * from feng_sir -------- 就会发现现在所有数据的 age 都变成了 19
带条件修改数据
带条件修改数据
update 表名 set 字段名 = 值 where 字段名 = 值;
意思就是修改指定的数据,指定条件
**实例:**update feng_sir set age = 99 where id = 2;
select * from feng_sir -------- 就会发现 id = 2 的那组数据中的 age 变成了 99
当然修改除数字以外的类型加引号
mysql> update feng_sir set birthday = ‘2001-12-24’ where id = 2; 将 id=2 的数据中的 birthday 字段进行更新
一次性修改多列种数据
一次性修改多种数据的方法很简单
update feng_sir set age = 99 , birthday = ‘2021-08-26’ where id = 3;
select * from feng_sir; -------- 之后进行查看,会发现 id = 3 的那组数据,age 变成 99,brithday 变成 2021- 08-26 由此一来 内容修改成功
删除表记录
无条件删除数据
不带条件删除数据
delete from 表名;
意思就是删除全部数据,并不会删除表,并且 DML 语句也没权限删除表
带条件删除数据
带条件删除数据
delete from 表名 where 字段名 = 值;
**实例:**mysql> delete from feng_sir where id = 3; // 指定删除 id = 3 的那组数据
select * from feng_sir // 进行数据的查看
truncate 删除表记录
truncate 和 delete 的区别:
- delete 是将表种的数据一条一条删除,可以看到数据删除的提示,类似 rm
- truncate 是将整个表摧毁,重新创建一个新的表。结构和原来的结构一摸一样,简单粗暴,类似 rm -rf
不带条件删除数据
truncate table 表名;