DML语句详解
大约 2 分钟
DML
数据操纵语言(Data Manipulation Language, DML)是SQL语言中,负责对数据库对象运行数据访问工作的指令集,以INSERT、UPDATE、DELETE三种指令为核心,分别代表插入、更新与删除。
1 INSERT
插入单行记录
INSERT into 列名(列名,。。)values(,)
插入多行记录
复制表结构和数据
create table t_student_beifen as select * from t_student
复制表结构
create table t_student_beifen as select * from t_student where 1 <> 1
把其他表结构中的数据插入到表中:
insert into t_student(id,stuname) select id,stuname from t_student01
可以在单行插入的后面添加多个插入的信息列。
# 插入语句后面可以跟多个插入的信息
insert into t_user (user_name,age)values('烤鱼1',22),('烤鱼2',22),('烤鱼3',22);
2 UPDATE
语法结构
update 表名 set 字段名=值,字段名=值。。 where 。。。
案例:
创建一张学生表
CREATE TABLE t_student
(
id int(3) primary key,
stuname varchar(30) not null,
sex char(3) ,
birthday date
)
把学生表中的性别全部改成女
update t_student set sex = '女' ;
把'张三'的性别改成'男'
update t_student set sex = '男' where stuname = '张三';
把出生日期改成当前时间now()
# select now()
update t_student set birthday = now()
把性别为女的 所有的出生日期改成2022-01-18
# 直接把一个字符串复制给了一个 date 类型的数据
# str_to_date 把字符串转换为日期类型
update t_student set birthday = str_to_date('2022-01-18','%Y-%m-%d') where sex = '女';
从别的表把值设置到本表中
create table t_student_1 as select * from t_student;
update t_student_1 t1,t_student t2 set t1.stuname = t2.stuname where t1.id = t2.id;
3 DELETE
delete删除:
delete from t_student where id = 1;
# 如果不带where 条件 那么表示删除该表中的所有的记录 慎用!!! 删表跑路
delete from t_student ;
# delete insert update 语句都会走事务处理,也就是我们需要显示的commit和rollback;
truncate删除:
# truncate 直接清空表结构中的所有的数据,效率高,但是不能回滚。
TRUNCATE TABLE t_user_1 # where 1 = 1;