当前位置: 首页 > news >正文

SQL 语言分类

SQL(Structured Query Language,结构化查询语言)根据功能可分为以下几大类别:

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

用于从数据库中查询数据,是 SQL 中最常用的类别之一。

核心语句:

SELECT:用于从一个或多个表中检索数据记录

常用子句:

FROM:指定要查询的表

WHERE:过滤查询结果,只保留满足条件的记录

GROUP BY:将结果集按一个或多个列进行分组

HAVING:与 GROUP BY 配合使用,过滤分组后的结果

ORDER BY:对查询结果进行排序(升序 ASC 或降序 DESC)

LIMIT/OFFSET:限制返回的记录数量(不同数据库语法略有差异)

JOIN:用于多表关联查询(INNER JOIN、LEFT JOIN 等)

示例:

-- 查询年龄大于 18 的学生信息,并按年龄降序排列
SELECT name, age, gender
FROM students
WHERE age > 18
ORDER BY age DESC;

二、数据操纵语言(DML - Data Manipulation Language)

用于对数据库中的数据进行插入、更新和删除操作,主要针对表中的记录。

核心语句:

INSERT:向表中插入新记录

UPDATE:更新表中已存在的记录

DELETE:删除表中的记录

示例:

-- 插入新记录
INSERT INTO students (name, age) VALUES ('张三', 20);-- 更新记录
UPDATE students SET age = 21 WHERE name = '张三';-- 删除记录
DELETE FROM students WHERE age < 18;

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

用于定义和管理数据库对象(如数据库、表、索引、视图等)的结构。

常用语句:

CREATE:创建数据库、表、索引、视图等对象

ALTER:修改数据库或表的结构(如添加列、修改数据类型等)

DROP:删除数据库、表、索引、视图等对象

TRUNCATE:清空表中所有记录(保留表结构)

COMMENT:为数据库对象添加注释

示例:

-- 创建表
CREATE TABLE students (id INT PRIMARY KEY,name VARCHAR(50) NOT NULL
);-- 修改表(添加列)
ALTER TABLE students ADD COLUMN age INT;-- 删除表
DROP TABLE students;-- 清空表数据
TRUNCATE TABLE students;

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

用于控制数据库的访问权限和安全级别,主要涉及用户权限管理。

常用语句:

GRANT:授予用户某种权限

REVOKE:撤销用户已有的权限

CREATE USER:创建数据库用户

DROP USER:删除数据库用户

示例:

-- 授予用户查询权限
GRANT SELECT ON database_name.table_name TO 'username'@'host';-- 撤销用户的插入权限
REVOKE INSERT ON database_name.table_name FROM 'username'@'host';

五、事务控制语言(TCL - Transaction Control Language)

用于管理数据库事务,确保数据操作的原子性、一致性、隔离性和持久性(ACID 特性)。

常用语句:

COMMIT:提交事务,将事务中所有操作永久保存到数据库

ROLLBACK:回滚事务,取消事务中所有未提交的操作

SAVEPOINT:在事务中设置保存点,允许回滚到指定的保存点

SET TRANSACTION:设置事务的属性(如隔离级别)

示例:

-- 开始事务(某些数据库默认自动开启)
START TRANSACTION;-- 执行数据操作
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;-- 提交事务
COMMIT;-- 若发生错误,回滚事务
ROLLBACK;

总结

SQL 按功能分为五大类,各类别用途明确:

DQL:查询数据(SELECT 为主)

DML:操纵数据(INSERT、UPDATE、DELETE)

DDL:定义结构(CREATE、ALTER、DROP 等)

DCL:控制权限(GRANT、REVOKE 等)

TCL:管理事务(COMMIT、ROLLBACK 等)

http://www.lryc.cn/news/618252.html

相关文章:

  • Spark 运行流程核心组件(一)作业提交
  • 数据量暴涨时,抓取架构该如何应对?
  • 开发npm包【详细教程】
  • Bevy渲染引擎核心技术深度解析:架构、体积雾与Meshlet渲染
  • C++Linux八股
  • 08--深入解析C++ list:高效操作与实现原理
  • K8S 节点初始化一键脚本(禁用 SELinux + 关闭 swap + 开启 ipvs 亲测实用)
  • 微前端架构:原理、场景与实践案例
  • 前端JS处理时间,适用于聊天、操作记录等(包含刚刚、x分钟前、x小时前、x天前)
  • Windows已经安装了一个MySQL8,通过修改配置文件的端口号跑2个或多个Mysql服务方法,并注册为系统服务
  • lesson36:MySQL从入门到精通:全面掌握数据库操作与核心原理
  • 嵌入式系统学习Day17(文件编程)
  • 项目实战2——LAMP_LNMP实践
  • 智能化评估体系:数据生产、在线化与自动化的三重奏
  • 解锁 Appium Inspector:移动端 UI 自动化定位的利器
  • 【论文阅读】一种基于经典机器学习的肌电下肢意图检测方法,用于人机交互系统
  • Secure CRT做代理转发
  • 【element树组件】el-tree实现连接线及hover编辑效果
  • ip归属地批量查询脚本
  • 视频输入输出模块介绍和示例
  • 【Node.js从 0 到 1:入门实战与项目驱动】2.1 安装 Node.js 与 npm(Windows/macOS/Linux 系统的安装步骤)
  • history命令增强记录执行时间与登录IP
  • 线性代数 · 矩阵 | 最小多项式
  • 【debug 解决 记录】stm32 debug模式的时候可以运行,但是烧录没法执行
  • Mac如何安装telnet命令
  • 论答题pk小程序软件版权的
  • 家政小程序系统开发:推动家政行业数字化转型,共创美好未来
  • 校园快递小程序(腾讯地图API、二维码识别、Echarts图形化分析)
  • 基于开源AI大模型AI智能名片S2B2C商城小程序的母婴用品精准营销策略研究
  • 思科、华为、华三如何切换三层端口?