m沐沐头像
关注
【数据库】MySQL 四大 SQL 语句分类详解及实操运用封面图

【数据库】MySQL 四大 SQL 语句分类详解及实操运用


前言

SQL语句主要分为四大类,在数据库中各司其职。DDL数据定义语言,主要用于定义和管理数据库与数据表结构,可完成创建、修改、删除库表等操作,搭建整体数据存储框架。DML数据操纵语言,负责对表内数据进行日常操作,实现数据的新增、修改与删除,维护业务数据内容。DQL数据查询语言是使用频率最高的语句,专门用来精准查询、筛选、统计数据库中的数据,满足数据查看与数据分析需求。DCL数据控制语言用于管理用户访问权限,分配和收回操作权限,同时管控事务提交与回滚,保障数据库数据安全、访问规范与数据完整性,共同保障数据库稳定有序运行。


一、数据查询语言(DQL, Data Query Language)

DQL即数据查询语言,是以SELECT语句为核心的SQL语句类别,是数据库日常使用中运用最频繁的语言。它无需改动数据库结构与原有数据,仅负责从数据表中按照指定条件提取、筛选、排序、聚合所需数据。能够灵活实现单表查询、多表联查、条件过滤、分组统计、限制结果条数等各类数据读取操作,广泛应用于后台数据展示、业务数据统计、信息检索、报表生成等场景。DQL只做数据读取,不会对数据库内原有数据造成任何修改,操作安全便捷,是用户获取数据库信息、实现数据交互与数据分析最核心的语言。
核心作用:从数据库中查询 / 检索数据(仅读取,不修改数据),是最常用的 SQL 类别。
核心关键字SELECT(核心)、FROMWHEREGROUP BYHAVINGORDER BYLIMITJOIN 等。

SELECT:查询核心关键字,用于指定要查询显示的字段,可查询单个字段、多个字段或全部字段。
FROM:指定数据来源,后面紧跟需要查询的数据表名称,确定查询哪张表的数据。
WHERE:条件筛选关键字,用来设置查询条件,过滤出符合要求的数据行。
GROUP BY:分组查询,将查询结果按照指定字段进行分组,常配合聚合函数使用。
HAVING:分组后筛选,对分组完成后的结果再次进行条件过滤,作用于分组数据。
ORDER BY:排序关键字,可将查询结果按照指定字段升序或降序排列展示。
LIMIT:限制查询条数,用来控制最终输出的数据行数,常用于分页查询。
JOIN:多表连接关键字,实现多张数据表联合查询,关联不同表中的关联字段获取整合数据。
我们在Navicat Premium软件打开之后,鼠标右击查询后选择新建查询,就可以输入内容进行查询了。

在我们完成操作后,回到表内,右击鼠标选择刷新,就可以显示出我们改动后的表了。
在这里插入图片描述

SELECT name, age
FROM student
WHERE age > 19
ORDER BY age DESC 
LIMIT 10;

解析:

--1行
SELECT name, age

指定查询要返回的字段。这里表示要从表中取出 name(姓名)和 age(年龄)这两列数据。

--2行
FROM student

指定数据的来源表。这里表示要从名为 student 的表中查询数据。

--3行
WHERE age > 19

对数据进行条件筛选,只保留满足条件的行。这里表示只查询 age 字段值大于 19 的学生记录。

--4行
ORDER BY age DESC

对筛选后的结果进行排序。ORDER BY 表示按指定字段排序,age 是排序依据,DESC 表示降序(从大到小)排列。

--5行
LIMIT 10;

限制查询结果的行数,只返回前 N 条数据。这里表示最多返回 10 条记录。

在这里插入图片描述

二、数据操作语言(DML, Data Manipulation Language)

核心作用:操作(增 / 删 / 改)数据库中的数据(仅修改数据内容,不改变表结构)。

核心关键字INSERT(新增)、UPDATE(修改)、DELETE(删除)、MERGE(合并,部分数据库支持)。

-- 新增一条用户记录
INSERT INTO student (name, age,id) VALUES ('张三份', 25, '20250402');

在这里插入图片描述

-- 修改用户名称
UPDATE student SET name = '周杰伦' WHERE id = 20250402;

在这里插入图片描述

-- 删除年龄小于20的用户
DELETE FROM student WHERE age < 20;

在这里插入图片描述
提醒:删除一定要加 WHERE,否则会清空全表。

三、数据定义语言(DDL, Data Definition Language)

核心作用:定义 / 修改 / 删除数据库对象(表、索引、视图、触发器、数据库等)的结构,操作会直接生效(无需事务提交)。

核心关键字CREATE(创建)、ALTER(修改)、DROP(删除)、TRUNCATE(清空表,属于 DDL 而非 DML)、RENAME(重命名)。

-- 创建用户表
CREATE TABLE users (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(50) NOT NULL,
  age INT,
  phone VARCHAR(20) UNIQUE
);

在这里插入图片描述

-- 给用户表新增email字段
ALTER TABLE users ADD COLUMN email VARCHAR(100);

在这里插入图片描述

-- 删除用户表
DROP TABLE users;

代码执行完后,我们对表进行刷新,就可以看到代码执行结果。
在这里插入图片描述

四、数据控制语言(DCL, Data Control Language)

核心作用:管理数据库的权限和事务,控制用户对数据库的访问权限、事务提交 / 回滚等。

核心关键字GRANT(授权)、REVOKE(撤销权限)、COMMIT(提交事务)、ROLLBACK(回滚事务)、SAVEPOINT(保存点)、SET TRANSACTION(设置事务属性)。

1.创建用户时密码需符合安全策略

CREATE USER 创建用户时,密码不能过于简单,MySQL 会校验密码复杂度,否则会报错;% 表示允许所有 IP 访问,生产环境需限制为指定 IP,提升安全性。

-- 创建用户
CREATE USER 'test'@'%' IDENTIFIED BY '123456';

2.授权必须精准匹配用户与主机地址

GRANT 语句中用户标识(test@localhost)必须与创建用户时一致,否则授权无效;权限分配遵循最小原则,仅授予业务必需的权限。

-- 授予用户test对users表的查询/插入权限
GRANT SELECT, INSERT ON users TO 'test'@'localhost';

3.撤销权限要与授权完全对应

REVOKE 只能撤销已授予的权限,且对象、用户、主机需和授权时保持一致,撤销后无需手动提交即可生效。

-- 撤销test用户的插入权限
REVOKE INSERT ON users FROM 'test'@'localhost';

4.COMMIT 会永久保存数据修改

COMMIT 用于确认 INSERT/UPDATE/DELETE 操作,执行后数据修改永久生效,无法再通过回滚恢复,执行前需确认操作正确。

-- 提交事务(确认DML操作)
COMMIT;

5.ROLLBACK 仅能撤销未提交的操作

ROLLBACK 只能恢复未执行 COMMIT 的数据修改,一旦事务提交,回滚无效;事务执行异常时及时回滚,保证数据一致性。

-- 回滚事务(撤销未提交的DML操作)
ROLLBACK;

总结

`

文末总结

综上所述,SQL语言共分为DQL、DML、DDL、DCL四大类别,各司其职分工明确。数据查询语言用于读取检索数据,不会改动原有内容,是日常使用频率最高的语句;数据操作语言负责对表内数据进行新增、修改与删除,仅变更数据内容;数据定义语言主要搭建和调整数据库与数据表结构,完成建表、改表、删表等基础搭建工作;数据控制语言侧重管理用户操作权限与事务管理,保障数据库使用安全与数据完整。在Navicat等数据库工具中熟练运用四类SQL语句,遵循书写规范与操作注意事项,合理使用各类关键字,谨慎执行修改、删除、权限分配等高风险操作,能够高效完成数据库的数据查询、数据维护、结构搭建与安全管理等全部基础操作。

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/m0_66822255/article/details/161144321

文章来源crawl

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--