本文共 2818 字,大约阅读时间需要 9 分钟。
DML(数据操作语言)是数据库操作中的核心功能,主要用于对数据库中的数据进行增删改查操作。以下将详细介绍DML的三大主要语句:插入数据(INSERT)、修改数据(UPDATE) 和 删除数据(DELETE)。
插入数据的语法主要有以下几种形式:
INSERT INTO 表名称 VALUES(值 1,值 2,…);
INSERT INTO 表名称 VALUES(值 1,值 2,…),(值 1,值 2,…),…;
INSERT INTO 表名称 (字段 1,字段 2,…) VALUES(值 1,值 2,…);
INSERT INTO 表名称 (字段 1,字段 2,…) VALUES(值 1,值 2,…),(值 1,值 2,…),…;
字段值对应关系:
Column count doesn’t match value count。VALUES 中指定字段名,默认将值逐一赋值给表中定义的字段,顺序与字段定义一致。特殊情况处理:
NULL 或 0,实际插入的值会是自增长后的结果。DEFAULT 关键字表示使用默认值。NULL 的列:可以手动赋值或保留 NULL。多行插入:
VALUES 后可以跟多个值组,支持批量插入。示例:
INSERT INTO t_department(dname, description) VALUES('教学部','技术培训'),('咨询部','课程咨询服务');INSERT INTO t_employee(eid, ename, gender, card_id, tel, job_id, mid, birthday, hiredate, address, dept_id) VALUES (1, '孙红雷', '男', '123456789012345678', '12345678901', 1, NULL, '1990-01-01', '2015-01-01', '白庙', 1), (2, '张亮', '男', '123456789012345677', '12345678902', 2, NULL, '1990-01-02', '2015-01-02', '天通苑北', 1);
修改数据的语法如下:
UPDATE 表名称 SET 字段名 1 = 值 1, 字段名 2 = 值 2, … 【WHERE 条件】;
UPDATE 表 1,表 2,… SET 表 1.字段名 1 = 值 1, 表 1.字段名 2 = 值 2, 表 2.字段名 1 = 值 1, 表 2.字段名 2 = 值 2, … 【WHERE 条件】;
默认修改所有记录:
WHERE 条件省略,修改操作会对所有记录进行更新。值类型:
多张表更新:
UPDATE 语句同时更新多张表。外键约束处理:
RESTRICT、CASCADE 等)。示例:
UPDATE t_salary SET basic_salary = basic_salary * 1.05;
UPDATE t_employee SET tel = '13709098765', birthday = '1982-09-26' WHERE ename = '孙俪';
删除数据的语法如下:
DELETE FROM 表名称 【WHERE 条件】;
DELETE 表 1,表 2,… FROM 表 1,表 2,… 【WHERE 条件】;
默认删除所有记录:
WHERE 条件省略,删除操作会删除表中所有记录,表结构保留。使用 TRUNCATE:
TRUNCATE 语句可以快速清空表中所有数据,并重新创建表结构。TRUNCATE 操作不能回滚,不能用于部分删除记录。外键约束处理:
RESTRICT、CASCADE 等)。示例:
DELETE FROM t_employee WHERE eid = 9;
DELETE t_employee, t_department, t_salary FROM t_employee, t_department, t_salary WHERE t_department.dname = '教学部' AND t_employee.dept_id = t_department.did AND t_employee.eid = t_salary.eid;
查询数据的语法如下:
SELECT 查询列表 FROM 表名或视图列表 【WHERE 条件表达式】 【GROUP BY 字段名 【HAVING 条件表达式】】 【ORDER BY 字段 【ASC|DESC】】 【LIMIT m,n】;
基本查询:
SELECT * 可以查询表中所有字段。SELECT 后的字段列表可以是表中的字段、常量值、表达式或函数。条件查询:
WHERE 子句添加条件过滤。分组查询:
GROUP BY 子句对结果进行分组。排序查询:
ORDER BY 子句对结果进行排序,支持 ASC(升序)或 DESC(降序)。限制结果数:
LIMIT 子句限制返回的行数。示例:
SELECT ename AS '员工姓名', tel AS '手机号码' FROM t_employee;
SELECT COUNT(DISTINCT dept_id) AS '部门数量' FROM t_employee;
通过以上操作,可以对数据库中的数据进行插入、修改、删除和查询,满足日常数据库管理需求。
转载地址:http://jedfk.baihongyu.com/