前言

SQL(Structured Query Language)是用于管理和操作关系型数据库的标准语言。无论是开发人员还是数据库管理员,掌握 SQL 是必不可少的技能。

SQL 根据功能的不同,通常被划分为 四大类
✅ DDL(数据定义语言)
✅ DML(数据操作语言)
✅ DQL(数据查询语言)
✅ DCL(数据控制语言)

本文将带你全面了解这四类 SQL 语句的功能、使用场景及示例,帮助你更好地理解和使用 SQL。


DDL:Data Definition Language(数据定义语言)

🔧 作用:

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

📌 主要命令:

  • CREATE:创建数据库对象
  • ALTER:修改数据库对象结构
  • DROP:删除数据库对象
  • TRUNCATE:清空表数据但保留结构
  • RENAME:重命名数据库对象

💡 示例代码:

-- 创建表
CREATE TABLE users (id INT PRIMARY KEY,name VARCHAR(50) NOT NULL,age INT
);-- 修改表结构,添加字段
ALTER TABLE users ADD COLUMN email VARCHAR(100);-- 删除表
DROP TABLE users;-- 清空表数据
TRUNCATE TABLE users;-- 重命名表
RENAME TABLE old_users TO new_users;

⚠️ 特点:

  • 操作对象是数据库结构而非数据本身;
  • 多数 DDL 命令会自动提交事务,不能回滚;
  • 对数据库结构变更影响较大,需谨慎操作。

DML:Data Manipulation Language(数据操作语言)

🛠️ 作用:

对数据库表中的数据进行增删改操作。

📌 主要命令:

  • INSERT:插入数据
  • UPDATE:更新数据
  • DELETE:删除数据
  • MERGE / UPSERT(MySQL 中用 INSERT ... ON DUPLICATE KEY UPDATE 实现)

💡 示例代码:

-- 插入数据
INSERT INTO users (id, name, age) VALUES (1, '张三', 25);-- 更新数据
UPDATE users SET age = 26 WHERE id = 1;-- 删除数据
DELETE FROM users WHERE id = 1;-- UPSERT(存在则更新,不存在则插入)
INSERT INTO users (id, name, age)
VALUES (1, '张三', 25)
ON DUPLICATE KEY UPDATEname = '张三',age = 25;

⚠️ 特点:

  • 操作的是实际的数据;
  • 支持事务控制(需要手动 COMMIT 或 ROLLBACK);
  • 可以通过 WHERE 条件精确筛选操作范围。

DQL:Data Query Language(数据查询语言)

🔍 作用:

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

📌 主要命令:

  • SELECT:查询数据

💡 示例代码:

-- 查询所有用户
SELECT * FROM users;-- 条件查询
SELECT name, age FROM users WHERE age > 20;-- 多表关联查询
SELECT u.name, COUNT(o.id) AS order_count
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
WHERE u.age > 18
GROUP BY u.name
HAVING COUNT(o.id) > 5
ORDER BY order_count DESC
LIMIT 10;

⚠️ 特点:

  • 不会修改数据库内容;
  • 可组合多种子句实现复杂查询;
  • 是数据分析、报表生成的核心工具。

DCL:Data Control Language(数据控制语言)

🔐 作用:

控制数据库的访问权限和事务处理,保障数据安全。

📌 主要命令:

  • GRANT:授予权限
  • REVOKE:撤销权限
  • COMMIT:提交事务
  • ROLLBACK:回滚事务

💡 示例代码:

-- 授予用户 select 和 insert 权限
GRANT SELECT, INSERT ON mydb.users TO 'user1'@'localhost';-- 撤销 insert 权限
REVOKE INSERT ON mydb.users FROM 'user1'@'localhost';-- 提交事务
COMMIT;-- 回滚事务
ROLLBACK;

⚠️ 特点:

  • 通常由 DBA 使用;
  • 管理用户权限与事务控制;
  • 对数据库安全性至关重要。

SQL 分类对比总结表

分类全称主要命令作用特点
DDLData Definition LanguageCREATE, ALTER, DROP, TRUNCATE, RENAME定义和管理数据库结构自动提交,不可回滚
DMLData Manipulation LanguageINSERT, UPDATE, DELETE操作表中的数据需显式提交,可回滚
DQLData Query LanguageSELECT查询数据不修改数据,可组合复杂查询
DCLData Control LanguageGRANT, REVOKE, COMMIT, ROLLBACK控制权限和事务管理访问权限和安全

实际应用建议

  1. DDL 操作要谨慎:生产环境执行 DDL(如 ALTER TABLE)可能锁表,影响业务性能。
  2. DML 操作尽量使用事务:重要数据操作应在事务中进行,保证一致性。
  3. DQL 要注意性能优化:复杂查询应合理使用索引,避免全表扫描。
  4. DCL 要遵循最小权限原则:只授予必要的权限,防止越权操作。

结语

掌握 SQL 的四大分类(DDL、DML、DQL、DCL)是数据库开发和管理的基础。无论你是刚入门的开发者,还是经验丰富的 DBA,理解每种 SQL 语句的作用和适用场景,都能让你更高效地完成数据管理工作。

希望这篇文章能为你打下坚实的 SQL 基础,也欢迎点赞收藏、评论交流!


📌 如果你觉得这篇文章对你有帮助,欢迎关注我的 CSDN 博客,我会持续分享更多数据库、编程相关的实用知识!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/86963.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/86963.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/86963.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何将Word里每页的行数设置成50行

https://www.zhihu.com/question/357856175 本文来自知乎林听晴 第一步:新建一个Word文档 打开“页面布局”,之后点击图片圈起来的小图标,即可出现“页面设置”页面。 ​ ​ 路径:页面设置—文档网络,可以看到默认行…

纯前端本地文件管理器(VSCode风格)(浏览器对本地文件增删改查)

纯前端本地文件管理器(VSCode风格)(浏览器对本地文件增删改查) 简介 本项目为一个纯前端实现的本地文件管理器网页(index.html),可在 Chrome/Edge 浏览器中直接打开,具备类似 VSCode 的本地文件夹操作体验…

windows安装wsl、Ubuntu、docker desktop

以下是Windows安装WSL(Windows Subsystem for Linux)及在Ubuntu中配置使用Docker的完整流程,整合了最新官方方案和常见问题解决方案: 🔧 一、Windows安装WSL(推荐WSL 2) 📍 安装前提…

华为云Flexus+DeepSeek征文|云端智能加持:华为云ModelArts Studio提升Chat2DB的AI数据库管理效能

华为云FlexusDeepSeek征文|云端智能加持:华为云ModelArts Studio提升Chat2DB的AI数据库管理效能 前言一、华为云ModelArts Studio平台介绍1.1 ModelArts Studio介绍1.2 ModelArts Studio主要特点1.3 ModelArts Studio使用场景1.4 ModelArts Studio产品架…

微信小程序封装loading 修改

1. custom-loading.vue <template><view v-if"visible" class"custom-loading-mask" touchmove.stop.prevent><view class"custom-loading-container"><!-- 动态点点 --><text class"loading-text">{…

Windows环境下Docker容器化的安装与设置指南

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; 系统要求与准备工作 在开始安装和配置 Docker 之前&#xff0c;需要确保您的 Windows 系统满足以下要求&#xff1a; 操作系统版本&#xff1a;推荐使用 Windows 10 或更高版本&#xff0c;特别是 64 位版本。对…

0 数学习题本

零 引言 数学错题与好题总结 一 基础阶段 1 高数部分 习题册:武忠祥 660 1️⃣ 函数 极限 连续 2️⃣ 一元微分 3️⃣ 一元积分 4️⃣ 微分方程 5️⃣ 多元微分 6️⃣ 二重积分 7️⃣ 无穷级数 8️⃣ 空间几何 9️⃣ 多元积分 2 线代部分 习题册:汤家凤 1800 1️⃣ 行列式…

USB服务器的5个核心价值

USB服务器&#xff08;USB Server&#xff09;是一款专为企业级环境设计的创新型硬件解决方案&#xff0c;其核心使命在于解决物理USB设备&#xff08;如U盾、加密狗、身份认证Key等&#xff09;在分布式办公、远程协作及复杂IT架构中面临的接入、管理与安全难题。本文以朝天椒…

基于vue3+ByteMD快速搭建自己的Markdown文档编辑器

简介 ByteMD 是一个轻量级、功能丰富的 Markdown 编辑器组件&#xff0c;由稀土掘金&#xff08;juejin.cn&#xff09;团队开发并开源。它采用 Svelte 构建&#xff0c;支持双向编辑&#xff08;所见即所得&#xff09;&#xff0c;并提供了丰富的插件系统。 核心特点 轻量…

“AI大语言模型”助力大气科学:ERA5再分析数据、WRF处理、遥感降水、CMIP6未来气候、天气晴雨预测的完整方法论等

内容覆盖使用GPT处理数据、生成论文摘要、文献综述、技术方法分析等实战案例&#xff0c;将AI技术广泛应用于科研工作。特别关注将GPT与Python结合应用于遥感降水数据处理、ERA5大气再分析数据的统计分析、干旱监测及风能和太阳能资源评估等大气科学关键场景。旨在提升参与者在…

STM32给FPGA的外挂FLASH进行升级

STM32给FPGA的外挂FLASH进行升级 一、电路方案设计二、软件写FLASH三、解决第一次烧录后FPGA无法启动的问题 前言&#xff1a; 一个复杂的嵌入式中&#xff0c;如果对某些实时性要求极高的情况下势必会使用到FPGA来保证&#xff0c;这里面牵扯到给FPGA的程序升级问题&#xff0…

Python 数据分析与可视化 Day 9 - 缺失值与异常值处理技巧

✅ 今日目标 熟练处理数据中的缺失值&#xff08;NaN、None&#xff09;学会识别和处理异常值&#xff08;outliers&#xff09;掌握常用的处理方法&#xff1a;填充、删除、替换、标准差法、箱型图法等为后续机器学习建模打好数据清洗基础 &#x1f4da; 一、缺失值处理&…

概述-1-数据库的相关概念

数据库的相关概念 用户通过SQL操作数据库管理系统&#xff0c;再通过数据库管理系统操作数据库以及数据库中的数据。 数据库 数据库是存储数据的仓库, 数据是有组织的进行存储, DataBase简称&#xff08;DB&#xff09; 数据库管理系统 操纵和管理数据库的大型软件, DataB…

可视化大屏展示

可视化大屏是一种将大量数据进行整合、分析&#xff0c;并以直观、形象的可视化方式展示在大屏幕上的信息展示系统。主要组成部分分为2个&#xff1a;硬件设备、软件系统。 一、大屏价值 1、数据可视化&#xff1a;将复杂的数据转化为直观的图形、图表和地图等&#xff0c;使数…

服务器被入侵的常见迹象有哪些?

&#x1f6a8; 服务器被入侵的常见迹象 &#x1f7e2; 一、系统和资源异常 CPU、内存或网络流量异常飙高 即使没有业务负载&#xff0c;资源长期占满。 磁盘空间突然被写满 可疑大文件或日志暴涨。 系统负载显著升高 uptime、top 显示 load average 异常。 &#x1f7e1;…

日本生活:日语语言学校-日语作文-沟通无国界(5)-题目:我的一天

日本生活&#xff1a;日语语言学校-日语作文-沟通无国界&#xff08;5&#xff09;-题目&#xff1a;我的一天 1-前言2-作文原稿3-作文日语和译本&#xff08;1&#xff09;日文原文&#xff08;2&#xff09;对应中文&#xff08;3&#xff09;对应英文 4-老师评语5-自我感想&…

前端领域的技术热点与深度解析

&#x1f525; 一、框架革新&#xff1a;React、Vue、Svelte 的进化方向 React 19 实验版 Server Components 深化&#xff1a;支持流式渲染与异步状态管理&#xff0c;SSR 性能提升40%。 并发模式优化&#xff1a;减少渲染阻塞&#xff0c;复杂交互场景延迟降低35%。 Vue 3…

【unity游戏开发——网络】网络游戏通信方案——强联网游戏(Socket长连接)、 弱联网游戏(HTTP短连接)

注意&#xff1a;考虑到热更新的内容比较多&#xff0c;我将热更新的内容分开&#xff0c;并全部整合放在【unity游戏开发——网络】专栏里&#xff0c;感兴趣的小伙伴可以前往逐一查看学习。 文章目录 一、联网游戏类型划分二、核心通信协议对比三、开发选择指南专栏推荐完结 …

Java-60 深入浅出 分布式服务Paxos 算法优化 如何保证Paxos算法的活性

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月16日更新到&#xff1a; AI炼丹日志-29 - 字节…

一阶线性双曲型偏微分方程组的特征值与通解分析

问题3 求系统 U u + A U x = 0 U_u + A U_x = 0 Uu​+AUx​=0 的特征并写出通解,其中矩阵 A A A 如下: A 1 = ( 3 2 1 0 2 1 0 0 1 ) , A 2 = ( 3 2 1 0 2 1 0 0 − 1 ) , A_1 = \begin{pmatrix} 3 & 2 & 1 \\ 0 & 2 & 1 \\ 0 & 0 & 1 \end{pmatr…