文章目录
MySQL 数据操作语言(DML)
什么是DML?
DML(Data Manipulation Language,数据操作语言)是用来对数据库中的表数据记录进行增、删、改操作的语言。常用的DML操作包括:
- 添加数据(INSERT)
- 修改数据(UPDATE)
- 删除数据(DELETE)
1. 创建表
在进行数据操作之前,需要创建相应的表。以下是创建一个员工表的示例:
-- 创建员工表
CREATE TABLE employee (
id INT NULL COMMENT '编号', -- 员工编号
workno VARCHAR(10) NULL COMMENT '工号', -- 工号
name VARCHAR(10) NULL COMMENT '姓名', -- 姓名
gender CHAR NULL COMMENT '性别', -- 性别
age TINYINT UNSIGNED NULL COMMENT '年龄', -- 年龄
idcard CHAR(18) NULL COMMENT '身份证号', -- 身份证号
entrydate DATE NULL COMMENT '入职时间' -- 入职时间
) COMMENT '员工表';
说明:
CREATE TABLE
用于创建新的数据库表。- 表字段定义了数据类型和注释,提供了对表结构的描述。
COMMENT
用于为表和字段添加说明信息。
2. 添加数据(INSERT)
2.1 向指定字段添加数据
-- 向表中添加一条数据,指定字段值
INSERT INTO employee (id, workno, name, gender, age, idcard, entrydate)
VALUES (1, '1', 'Itcast', '男', 10, '123456789012345678', '1000-01-01');
说明:
INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...);
用于插入指定字段的记录。- 确保字段顺序与值的顺序匹配。
2.2 向全部字段添加数据
-- 向表中添加一条数据,所有字段都提供了值
INSERT INTO employee
VALUES (2, '2', '张无忌', '男', 18, '123456789012345679', '2005-01-01');
说明:
INSERT INTO 表名 VALUES (值1, 值2, ...);
插入记录时无需指定字段名,前提是提供的值必须与表中字段顺序和数量匹配。
2.3 批量添加数据
- 向表中批量添加多条数据
INSERT INTO employee
VALUES (3, '3', '韦一笑', '男', 38, '123456789012345679', '2005-01-01'),
(4, '4', '赵敏', '女', 18, '123456789012345679', '2005-01-01');
说明:
- 通过逗号分隔多个值,可以一次插入多条记录,效率更高。
注意事项:
- 插入数据时,字段顺序必须与提供的值顺序一一对应。
- 字符串和日期型数据需要用引号括起来。
- 插入的数据应在字段定义的范围内,超出范围会导致错误。
3. 修改数据(UPDATE)
3.1 修改特定记录
-- 修改id为1的员工的姓名为 'itenhuan'
UPDATE employee
SET name = 'itenhuan'
WHERE id = 1;
-- 修改id为1的员工的姓名为 '阿文',性别为 '女'
UPDATE employee
SET name = '阿文',
gender = '女'
WHERE id = 1;
说明:
UPDATE 表名 SET 字段名1 = 值1, 字段名2 = 值2, ... WHERE 条件;
用于修改符合条件的记录。WHERE
子句用于指定要更新的记录,缺少WHERE
条件将更新整个表中的记录。
3.2 修改所有记录
-- 将所有员工的入职日期修改为 '2008-01-01'
UPDATE employee
SET entrydate = '2008-01-01';
说明:
- 如果
UPDATE
语句没有WHERE
条件,则会更新表中的所有记录。
注意事项:
- 修改操作前,建议先进行数据备份,以防误操作。
- 确保
SET
子句中的值符合字段的约束条件,如数据类型和长度。
4. 删除数据(DELETE)
4.1 删除符合条件的记录
-- 删除所有性别为 '女' 的员工
DELETE FROM employee
WHERE gender = '女';
说明:
DELETE FROM 表名 WHERE 条件;
用于删除符合条件的记录。WHERE
子句用于指定删除的记录,缺少WHERE
条件将删除所有记录。
4.2 删除所有记录
-- 删除表中的所有记录
DELETE FROM employee;
说明:
- 删除所有记录时不会删除表结构,只会清空数据。
注意事项:
- 删除操作是不可恢复的,执行前应确认数据是否需要备份。
- 在某些数据库管理工具中(如 DataGrip),删除操作会有确认提示,避免误操作。
总结
- DML(数据操作语言) 用于对数据库中的数据进行增、删、改操作,是数据库管理和维护的核心部分。
- 添加数据 使用
INSERT
语句,可以向指定字段、全部字段或批量插入数据。 - 修改数据 使用
UPDATE
语句,支持对符合条件的记录进行修改。 - 删除数据 使用
DELETE
语句,可以删除符合条件的记录或全部记录。
完整代码
-- DML
/*
DML英文全称是Data Manipulation Language(数据操作语言),用来对数据类库中表的数据记录进行增、删、改操作。
.添加数据(INSERT)
.修改数据(UPDATE)
.删除数据(DELETE)
*/
-- 新建表
create table employee
(
id int null comment '编号',
workno varchar(10) null comment '工号',
name varchar(10) null comment '姓名',
gender char null comment '性别',
age tinyint unsigned null comment '年龄',
idcard char(18) null comment '身份证号',
entrydate date null comment '入职时间'
)
comment '员工表';
# 添加数据
-- 1.给指定字段添加数据
-- insert into 表名 (字段名1, 字段名2, ...) values (值1, 值2, ...);
insert into employee(id, workno, name, gender, age, idcard, entrydate)
values (1, '1', 'Itcast', '男', 10, '123456789012345678', '1000-01-01');
-- 查询数据库中的数据
select *
from employee;
-- 2.给全部字段添加数据
-- insert into 表名 values (值1, 值2, ...);
insert into employee
values (2, '2', '张无忌', '男', 18, '123456789012345679', '2005-01-01');
-- 3.批量添加数据
-- insert into 表名 (字段名1, 字段名2, ...) values (值1, 值2, ...), (值1, 值2, ...), (值1, 值2, ...);
-- insert into 表名 values (值1, 值2, ...), (值1, 值2, ...), (值1, 值2, ...);
insert into employee
values (3, '3', '韦一笑', '男', 38, '123456789012345679', '2005-01-01'),
(4, '4', '赵敏', '女', 18, '123456789012345679', '2005-01-01');
/*
注意事项:
.插入数据时,指定的字段顺序需要与值的顺序是一一对应的。
.字符串和日期型数据应该包含在引号中。
.插入的数据大小,应该在字段的规定范围内。
*/
# 修改数据
-- update 表名 set 字段名1 = 值1, 字段名2 = 值2, ... [where 条件];
-- 修改id为1的数据,将name修改为itenhuan
update employee
set name = 'itenhuan'
where id = 1;
-- 修改id为1的数据,将name修改为阿文,gender修改为女
update employee
set name = '阿文',
gender = '女'
where id = 1;
-- 将所有员工入职日期修改为 2008-01-01
update employee
set entrydate = '2008-01-01';
/*
注意事项:
修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据。
*/
# 删除数据
-- delete from 表名 [where 条件];
-- 删除gender为女的员工
delete
from employee
where gender = '女';
-- 删除所有员工
delete
from employee;
/*
注意事项:
.delete语句的条件可以有,也可以没,如果没有条件,则会删除整张表的所有数据。
.delete语句不能删除某一个字段的值(可以使用update,将该字段值置为null即可)。
.当进行删除全部数据操作时,datagrip会提示我们,询问是否确认删除,我们直接点击Execute即可。
*/