数据库: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,包含三个列:ID、Name 和 Email。ALTER 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 命令用于赋予用户 user1 对 Customers 表的查询权限,而 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) | 定义和管理数据库结构和对象 | CREATE、ALTER、DROP | 创建表、修改表结构、删除表 |
| DML | 数据操纵语言(Data Manipulation Language) | 操作数据库中的数据 | SELECT、INSERT、UPDATE、DELETE | 查询数据、插入数据、更新数据、删除数据 |
| DCL | 数据控制语言(Data Control Language) | 管理数据库用户权限 | GRANT、REVOKE | 授予权限、撤销权限 |
| DQL | 数据查询语言(Data Query Language) | 查询数据库中的数据(通常包含在 DML 中) | SELECT | 从数据库中检索特定数据 |
| TCL | 事务控制语言(Transaction Control Language) | 管理数据库事务,确保数据一致性 | COMMIT、ROLLBACK、SAVEPOINT | 提交事务、回滚事务、设置事务保存点 |
这个表格简洁地对比了 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 。它再次刷新端侧多模态天花板…...
汽车免拆诊断案例 | 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 题目链接:59. 螺旋矩阵 II 代码如下: 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“)注解不起作用的解决方法
今天在写前后端分离项目时,用jwt加shiro进行登录权限校验时,RequireRoles("admin")注解不起作用,记录一下。 前提:数据库里面的user_type代表用户类型 :0普通用户 ;1:专家࿱…...
XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...
WEB3全栈开发——面试专业技能点P7前端与链上集成
一、Next.js技术栈 ✅ 概念介绍 Next.js 是一个基于 React 的 服务端渲染(SSR)与静态网站生成(SSG) 框架,由 Vercel 开发。它简化了构建生产级 React 应用的过程,并内置了很多特性: ✅ 文件系…...
云安全与网络安全:核心区别与协同作用解析
在数字化转型的浪潮中,云安全与网络安全作为信息安全的两大支柱,常被混淆但本质不同。本文将从概念、责任分工、技术手段、威胁类型等维度深入解析两者的差异,并探讨它们的协同作用。 一、核心区别 定义与范围 网络安全:聚焦于保…...
