当前位置: 首页 > 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 的不同子语言,涵盖了它们的全称、主要作用、常用命令以及典型的示例操作。这有助于快速理解每种子语言的用途和功能。

相关文章:

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

数据库:SQL——数据库操作的核心语言 SQL(结构化查询语言)是关系型数据库管理系统中的标准语言,广泛用于数据的定义、操作、控制和查询。SQL 包含多个子语言,分别用于不同的数据库操作任务,包括数据定义&a…...

Unity + HybridCLR 从零开始

官方文档开始学习,快速上手 | HybridCLR (code-philosophy.com)是官方文档链接 1.建议使用2019.4.40、2020.3.26、 2021.3.0、2022.3.0 中任一版本至于其他2019-2022LTS版本可能出现打包失败情况 2. Windows Win下需要安装visual studio 2019或更高版本。安装时至少要包含 使…...

C++小总结

C小总结 接口 对外暴露头文件中,只需要声明接口函数即可,其他不暴露的函数不需要进行声明。接口的参数使用指针形式比较好,因为外部使用时可以对实参进行创建和析构,如果非接口函数使用new开辟,不太好进行析构。在使…...

从快到慢学习Git指令

Git是现在最流行的版本控制工具之一。无论是在开源社区还是企业软件开发中,Git都扮演着至关重要的角色。本文将根据不同的需求,分别提供快速上手和深入学习Git的指南。 如果你只想下载代码 如果你只是想下载GitHub或其他代码仓库的代码,那你只需要了解以下两个命令: git clo…...

传奇游戏发布渠道

传奇游戏发布渠道 回答:游戏发布平台|手机游戏发布平台 传奇游戏发布渠道作为游戏开发商直接控制的信息传播途径,其安全性自然有着较高的保障。首先,渠道通常会采用先进的加密技术和安全协议来保护数据传输过程中的安全,防止信息…...

如何有效阅读科研论文【方法论】

如何读论文【论文精读1】_哔哩哔哩_bilibili 如何有效阅读科研论文 科研论文是了解学术领域最新研究成果和技术发展的重要途径。有效地阅读论文不仅能够帮助我们掌握前沿知识,还能提升自己的研究能力。本文将介绍一种系统的论文阅读方法,并通过具体的步…...

【揭秘】层层加码,竟能加速渠道营销数字化?-eBest

国潮饮料品牌在eBest RTM系统的支持下,已经将数字化贯彻到每一个销售环节,且看eBest如何通过“层层加码”,进一步加速该饮料品牌渠道数字化进程,实现弯道超车? “一箱四码”垛码 五码实现渠道数字化 为提高营销和数字…...

基于WAMP环境的简单用户登录系统实现(v3版)(持续迭代)

目录 版本说明 实现环境: 流程逻辑框图: 数据库连接 登录页面:login.html 登录处理实现:doLogin.php 用户欢迎页面:welcome.php 密码修改页面:change_password.html 修改处理:doChangePa…...

大语言模型与多模态大模型loss计算

文章目录 前言一、大语言模型loss计算1、loss计算代码解读2、构建模型输入内容与label标签3、input_ids与labels格式 二、多模态大模型loss计算方法1、多模态loss计算代码解读2、多模态输入内容2、大语言模型输入内容3、图像embending如何嵌入文本embeding 前言 如果看了我前面…...

线上研讨会 | CATIA助力AI提升汽车造型设计

报名链接: 2024探索之旅第二季...

Unity新输入系统 之 InputAction(输入配置文件最基本的单位)

本文仅作笔记学习和分享,不用做任何商业用途 本文包括但不限于unity官方手册,unity唐老狮等教程知识,如有不足还请斧正​ 首先你应该了解新输入系统的构成结构:Unity新输入系统结构概览-CSDN博客 Input System - Unity 手册 1.In…...

【3】MySQL的安装即启动

目录 一.下载 二.安装 三.启动 一.下载 二.安装 安装MySQL时遇到的Initializing database错误:推荐下面的博客(简单就是电脑名不要出现中文) https://blog.csdn.net/m0_52775858/article/details/123705566 三.启动 PS:cmd要…...

变“金点子”为“好应用”,合合信息智能文档处理技术助力大学生探索AI创新边界

谈“糖”色变、追求养生、低卡生活……这些热门词汇频频在社交媒体上掀起讨论热潮。有这样一批年轻人不但捕捉到了这些词汇背后真实的用户需求,并且正在利用AI技术寻找解决之道。 近日,“中国大学生服务外包创新创业大赛”(以下简称“服创大…...

央行重提P2P存量业务化解,非吸案开始翻旧账?

沉寂已久的P2P,又突然以另一种意想不到的形式回到公众视野了。2018年全国P2P坍塌式暴雷,平台老板“跑路”“判刑”的消息一时间你方唱罢我登场。当年的某凰金融、某租宝、某信贷等赫赫有名的网贷平台传出的消息无非两类——查封或跑路,这几年…...

8B 端侧小模型 | 能力全面对标GPT-4V!单图、多图、视频理解端侧三冠王,这个国产AI开源项目火爆全网

这两天, Github上一个 国产开源AI 项目杀疯了!一开源就登上了 Github Trending 榜前列,一天就获得将近600 star。 这个项目就是国内大模型四小龙之一面壁智能最新大打造的面壁「小钢炮」 MiniCPM-V 2.6 。它再次刷新端侧多模态天花板&#xf…...

汽车免拆诊断案例 | DAF(达富)汽油尾气处理液故障警示

故障现象 距离我上次在货卡上工作已经有一段时间了,让它们在道路上保持安全行驶是非常重要的。因此,当故障警示灯亮起时,我们需要迅速找到问题方向以及排除故障。 车辆的仪表板亮起多个故障灯以及警示灯,我们需要用解码器查找触…...

图论算法

目录 1.引言 2.图论基础 3.Dijkstra算法 3.1 算法背景与概述 3.2 算法原理 3.3 算法步骤 3.4 示例说明 3.5 复杂度分析 3.6 优缺点及应用场景 4.Floyd-Warshall算法 4.1 算法背景与概述 4.2 算法原理 4.3 算法步骤 4.4 示例说明 4.5 复杂度分析 4.6 优缺点及应用…...

手抖跟饮食有关系吗?

手抖,医学上称为震颤(tremor),是指手部或其他身体部位的不自主抖动。饮食在某种程度上与手抖相关,但并非唯一的因素。以下是饮食与手抖之间可能存在的关系: 1. 咖啡因摄入:咖啡因是一种刺激神经…...

59. 螺旋矩阵 II

59. 螺旋矩阵 II 题目链接&#xff1a;59. 螺旋矩阵 II 代码如下&#xff1a; class Solution { public:vector<vector<int>> generateMatrix(int n) {if(n1){return {{1}};}vector<vector<int>> res(n,vector<int>(n));int num1;int left0,r…...

shiro注解不起作用:shiro进行权限校验时,@RequireRoles(“admin“)注解不起作用的解决方法

今天在写前后端分离项目时&#xff0c;用jwt加shiro进行登录权限校验时&#xff0c;RequireRoles("admin")注解不起作用&#xff0c;记录一下。 前提&#xff1a;数据库里面的user_type代表用户类型 &#xff1a;0普通用户 &#xff1b;1&#xff1a;专家&#xff1…...

挑战杯推荐项目

“人工智能”创意赛 - 智能艺术创作助手&#xff1a;借助大模型技术&#xff0c;开发能根据用户输入的主题、风格等要求&#xff0c;生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用&#xff0c;帮助艺术家和创意爱好者激发创意、提高创作效率。 ​ - 个性化梦境…...

CMake基础:构建流程详解

目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例

文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

Robots.txt 文件

什么是robots.txt&#xff1f; robots.txt 是一个位于网站根目录下的文本文件&#xff08;如&#xff1a;https://example.com/robots.txt&#xff09;&#xff0c;它用于指导网络爬虫&#xff08;如搜索引擎的蜘蛛程序&#xff09;如何抓取该网站的内容。这个文件遵循 Robots…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

【生成模型】视频生成论文调研

工作清单 上游应用方向&#xff1a;控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...