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

数据库:SQL——数据库操作的核心语言

数据库:SQL——数据库操作的核心语言

SQL(结构化查询语言)是关系型数据库管理系统中的标准语言,广泛用于数据的定义、操作、控制和查询。SQL 包含多个子语言,分别用于不同的数据库操作任务,包括数据定义(DDL)、数据操纵(DML)、数据控制(DCL)、数据查询(DQL)和事务控制(TCL)。本文将详细介绍这些子语言的作用、常用命令,并通过示例代码展示它们的实际应用。


文章目录

  • 数据库:SQL——数据库操作的核心语言
      • 一、概述
      • 二、SQL 子语言详解
        • 1. DDL(数据定义语言,Data Definition Language)
        • 2. DML(数据操纵语言,Data Manipulation Language)
        • 3. DCL(数据控制语言,Data Control Language)
        • 4. DQL(数据查询语言,Data Query Language)
        • 5. TCL(事务控制语言,Transaction Control Language)
      • 三、SQL 各子语言对比总结

一、概述

SQL(结构化查询语言,Structured Query Language)是关系型数据库管理系统(RDBMS)中用于管理和操作数据的标准语言。SQL 语言可以分为不同的子语言,每一种子语言都有其特定的用途和功能。理解这些子语言及其命令,是掌握数据库操作的基础。

二、SQL 子语言详解

1. DDL(数据定义语言,Data Definition Language)

作用:DDL 用于定义和管理数据库结构和对象,例如表、索引、视图和约束。通过 DDL,我们可以创建、修改或删除数据库对象。

常用命令

  • CREATE:用于创建新的数据库对象,例如表或视图。
  • ALTER:用于修改现有的数据库对象。
  • DROP:用于删除数据库对象。

示例

-- 创建一个新的表 Customers
CREATE TABLE Customers (ID INT PRIMARY KEY,Name VARCHAR(100),Email VARCHAR(100)
);-- 修改表,添加一个新的列 PhoneNumber
ALTER TABLE Customers ADD PhoneNumber VARCHAR(15);-- 删除表 Customers
DROP TABLE Customers;

解释
在上述示例中,CREATE TABLE 命令用于定义一个新的表 Customers,包含三个列:IDNameEmailALTER TABLE 命令则用于修改现有的表结构,向表中添加新的列 PhoneNumber。最后,DROP TABLE 命令用于删除 Customers 表。

2. DML(数据操纵语言,Data Manipulation Language)

作用:DML 用于对数据库中的数据进行操作,包括查询、插入、更新和删除数据。它是我们与数据库中实际数据交互的主要方式。

常用命令

  • SELECT:用于查询数据。
  • INSERT:用于插入新数据。
  • UPDATE:用于更新现有数据。
  • DELETE:用于删除数据。

示例

-- 查询所有客户信息
SELECT * FROM Customers;-- 向表中插入一条新记录
INSERT INTO Customers (Name, Email) VALUES ('Alice', 'alice@example.com');-- 更新客户信息
UPDATE Customers SET Email = 'alice123@example.com' WHERE Name = 'Alice';-- 删除一条记录
DELETE FROM Customers WHERE Name = 'Alice';

解释
SELECT 命令用于从 Customers 表中检索所有数据。INSERT 命令将新的客户信息插入表中。UPDATE 命令修改了 Alice 的邮箱地址,而 DELETE 命令则删除了表中 Alice 的记录。

3. DCL(数据控制语言,Data Control Language)

作用:DCL 用于控制数据库用户的权限管理,主要用于授予或撤销用户对数据库的访问权限。

常用命令

  • GRANT:授予用户特定权限。
  • REVOKE:撤销用户的特定权限。

示例

-- 授予用户 user1 对 Customers 表的 SELECT 权限
GRANT SELECT ON Customers TO 'user1';-- 撤销用户 user1 对 Customers 表的 SELECT 权限
REVOKE SELECT ON Customers FROM 'user1';

解释
在这个示例中,GRANT 命令用于赋予用户 user1Customers 表的查询权限,而 REVOKE 命令则撤销了这个权限。通过 DCL,数据库管理员可以有效地管理数据库安全。

4. DQL(数据查询语言,Data Query Language)

作用:DQL 主要用于从数据库中查询数据,尽管 DQL 通常被包含在 DML 中,但有时也会被单独列出。SELECT 是 DQL 中的核心命令。

常用命令

  • SELECT:用于从数据库中检索数据。

示例

-- 查询来自美国的客户信息
SELECT Name, Email FROM Customers WHERE Country = 'USA';

解释
SELECT 命令用于从 Customers 表中查询所有来自美国的客户的姓名和邮箱信息。这是数据库操作中最常用的命令之一。

5. TCL(事务控制语言,Transaction Control Language)

作用:TCL 用于管理数据库中的事务,确保数据的一致性和完整性。事务是指一组操作,要么全部成功,要么全部失败。

常用命令

  • COMMIT:提交事务,将事务中的所有操作永久保存。
  • ROLLBACK:回滚事务,撤销事务中的所有操作。
  • SAVEPOINT:在事务中设置保存点,以便部分回滚。

示例

-- 开始事务
BEGIN;-- 向 Orders 表中插入数据
INSERT INTO Orders (OrderID, ProductID) VALUES (1, 1001);-- 提交事务
COMMIT;-- 或者可以回滚事务
ROLLBACK;

解释
BEGIN 命令开始一个事务。INSERT 命令向 Orders 表中插入一条记录。如果操作成功且无错误发生,COMMIT 命令会提交事务,将操作永久保存。如果出现错误或想要撤销操作,ROLLBACK 命令则会回滚事务。

三、SQL 各子语言对比总结

子语言全称主要作用常用命令示例操作
DDL数据定义语言(Data Definition Language)定义和管理数据库结构和对象CREATEALTERDROP创建表、修改表结构、删除表
DML数据操纵语言(Data Manipulation Language)操作数据库中的数据SELECTINSERTUPDATEDELETE查询数据、插入数据、更新数据、删除数据
DCL数据控制语言(Data Control Language)管理数据库用户权限GRANTREVOKE授予权限、撤销权限
DQL数据查询语言(Data Query Language)查询数据库中的数据(通常包含在 DML 中)SELECT从数据库中检索特定数据
TCL事务控制语言(Transaction Control Language)管理数据库事务,确保数据一致性COMMITROLLBACKSAVEPOINT提交事务、回滚事务、设置事务保存点

这个表格简洁地对比了 SQL 的不同子语言,涵盖了它们的全称、主要作用、常用命令以及典型的示例操作。这有助于快速理解每种子语言的用途和功能。

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

相关文章:

  • Unity + HybridCLR 从零开始
  • C++小总结
  • 从快到慢学习Git指令
  • 传奇游戏发布渠道
  • 如何有效阅读科研论文【方法论】
  • 【揭秘】层层加码,竟能加速渠道营销数字化?-eBest
  • 基于WAMP环境的简单用户登录系统实现(v3版)(持续迭代)
  • 大语言模型与多模态大模型loss计算
  • 线上研讨会 | CATIA助力AI提升汽车造型设计
  • Unity新输入系统 之 InputAction(输入配置文件最基本的单位)
  • 【3】MySQL的安装即启动
  • 变“金点子”为“好应用”,合合信息智能文档处理技术助力大学生探索AI创新边界
  • 央行重提P2P存量业务化解,非吸案开始翻旧账?
  • 8B 端侧小模型 | 能力全面对标GPT-4V!单图、多图、视频理解端侧三冠王,这个国产AI开源项目火爆全网
  • 汽车免拆诊断案例 | DAF(达富)汽油尾气处理液故障警示
  • 图论算法
  • 手抖跟饮食有关系吗?
  • 59. 螺旋矩阵 II
  • shiro注解不起作用:shiro进行权限校验时,@RequireRoles(“admin“)注解不起作用的解决方法
  • ZABBIX邮件监控发送信息
  • Java核心 - 减少循环次数的必要性及其实现方法
  • 国产麒麟系统下U盘只读文件系统问题
  • STM32-定时器-定时器中断-PWM调光
  • 【学习笔记】用线段树维护区间计数问题
  • 4章11节:用R做数据重塑,数据的特征缩放和特征可视化
  • LVS-NAT + LVS-DR
  • 排序算法——插入排序
  • 重修设计模式-行为型-状态模式
  • 网络安全知识渗透测试
  • 我国卫星互联网产业集群崛起;1000万资金扶持 上海助推产业互联网平台跨越式发展;河南“数据要素×”行动实施方案发布 | 产业互联网观察第179期