目录
1.基本介绍
DML是指数据操作语言,英文全称是Data Manipulation Language,用来对数据库中表的数据记录进行更新。
它创建的模式(表)使用数据操作语言来填充。DDL填充表的行,每行称为Tuple。使用DML,您可以插入,修改,删除和检索表中的信息。DML命令有助于管理存储在数据库中的数据。但是,DML命令不会自动提交。因此,变化不是永久性的。因此,可以回滚操作。
一些DML命令包括insert,update,delete和select。insert命令有助于将新记录或行存储到表中;update命令有助于修改表中的现有记录;delete命令允许从表中删除某个记录或一组记录;select命令允许从一个或多个表中检索特定记录。
关键字:
- 插入 insert
- 删除 delete
- 更新 update
2.DDL 语句与DML 语句的主要区别
DDL | DML | |
---|---|---|
名称 | 数据定义语言 | 数据操纵语言 |
区别 | 对数据库内部的对象进行创建、删除、修改操作 | 只是对表内部数据进行操作 (不涉及到表的定义、结构的修改,也不涉及到其他对象) |
3.数据插入
语法格式:
格式1: insert into 表(列名1,列名2,列名3...) values(值1,值2,值3...);
格式2: insert into 表 values(值1,值2,值3...); //向表中插入所有列
例子:
-- 格式1: insert into 表(列名1,列名2,列名3...) values(值1,值2,值3...);
insert into student (sid,name,gender,age,birth,address,score)
values (1001,'张三','男',18,'2001-12-23','北京',85.5);
insert into student (sid,name,gender,age,birth,address,score)
values (1002,'李四','男',17,'2002-1-24','上海',93.5),
(1003,'刘丽','女',19,'2000-2-23','杭州',95);
-- 格式2: insert into 表 values(值1,值2,值3...);//向表中插入所有列
insert into student values (1004,'张华','女',21,'1999-1-08','深圳',75)
4.数据修改
语法格式:
update 表名 set 字段名=值,字段名=值...;
update 表名 set 字段名=值,字段名=值... where 条件;
- update:更新
- set:设置
例子:
-- 1.将所有学生的地址修改为重庆
update student set address = '重庆';
-- 2.将id为1004的学生的地址修改为北京
update student set address = '北京' where sid = 1004;
3.将id为1005的学生的地址修改为北京,成绩修改为100
update student set address = '北京' ,score = 100 where sid = 1005;
5.数据删除
语法格式:
de1ete from 表名 [where 条件];
truncate table 表名 或者 truncate 表名
例子:
-- 1.删除sid为1004的学生数据
delete from student where sid = 1004;
-- 2.删除表所有数据
delete from student;
-- 3.清空表数据
truncate table student;
truncate student;
注意:
delete和truncate原理不同,delete只删除内容,而truncate类似于drop table,可以理解为是将整个表删除,然后再创建该表
6.总结
7.练习
-- 1.创建表
/* 创建员工表employee,字段如下:
id(员工编号),name(员工名字),gender(员工性别),salary(员工薪资)
*/
-- 2.插入数据
/*
1.'张三','男',2000
2.'李四','男',1000
3.'王五','女',4000
*/
-- 3.修改表数据
-- 3.1 将所有员工薪水修改为5000元
-- 3.2 将姓名为'张三'的员工薪水修改为3000元
-- 3.3 将姓名为'李四'的员工薪水改为4000元,gender改为女
-- 3.4 将王五的薪水在原有基础上增加1000元
-- 1.创建表
/*
创建员工表employee,字段如下:
id(员工编号),name(员工名字),gender(员工性别),salary(员工薪资)
*/
create table if not exists abc.employee(
id int,
name varchar(20),
gender varchar(10),
salary double
);
-- 2.插入数据
/*
1.'张三','男',2000
2.'李四','男',1000
3.'王五','女',4000
*/
insert into employee(id,name,gender,salary) values (1,'张三','男',2000);
insert into employee values(2,'李四','男',1000),(3,'王五','女',4000);
-- 3.修改表数据
-- 3.1 将所有员工薪水修改为5000元
update employee set salary = 5000;
-- 3.2 将姓名为'张三'的员工薪水修改为3000元
update employee set salary = 3000 where name = '张三';
-- 3.3 将姓名为'李四'的员工薪水改为4000元,gender改为女
update employee set salary = 4000,gender = '女' where name = '李四';
-- 3.4 将王五的薪水在原有基础上增加1000元
update employee set salary = salary + 1000 where name = '王五';
补充:
建表方法1
- use abc;
- create table if not exists employee ();
建表方法2
- create table if not exists abc.employee ();