河南省水利建设厅网站/短视频推广
文章目录
- 1.简介
- 2.组成
- 3.工作原理
- 4.五种子语言
- 5.注释方式
- 6.字符串表示方式
- 参考文献
1.简介
SQL(Structured Query Language,结构化查询语言)是一种用于管理和操作关系型数据库的标准化查询语言。它是一种领域特定语言(DSL,Domain Specific Language),用于定义数据库结构、插入、更新、删除数据以及查询数据等操作,并不局限于数据查询。
SQL 最初由 IBM 的 Donald D. Chamberlin 和 Raymond F. Boyce 在 1970 年代初开发,作为关系数据库管理系统(RDBMS)的查询语言。随后,SQL 在 1986 年成为了 ANSI(美国国家标准学会)和 ISO(国际标准化组织)的标准,并在数据库管理领域得到广泛应用。
SQL 被标准化后,仍在不断的发展和完善,至今经历了一系列修订,加入了大量新特性。虽然有这一标准的存在,但很多数据库的实现并没有完全遵循它,大多数 SQL 代码在移植到不同的数据库系统之前需要进行一些更改。
2.组成
关系数据库管理系统使用 SQL 来存储和管理数据,系统存储多个相互关联的数据库表,如常用的 Oracle、MySQL、MS SQL Server 等。 以下是此类系统的组成成分。
- SQL 表
SQL 表是关系数据库的基本元素。 SQL 数据库表由行和列组成。 数据库工程师在多个数据库表之间创建关系以优化数据存储空间。
例如,数据库工程师为商店中的产品创建一个 SQL 表:
Product ID Product Name Color ID
0001 Mattress Color 1
0002 Pillow Color 2
然后数据库工程师将产品表链接到带有颜色 ID 的颜色表:
Color ID Color Name
Color 1 Blue
Color 2 Red
- SQL 语句
SQL 语句或 SQL 查询是关系数据库管理系统可以理解的有效指令。 软件开发人员使用不同的 SQL 语言元素构建 SQL 语句。 SQL语言元素是构成正确SQL语句的标识符、变量和搜索条件等组件。
例如,以下 SQL 语句使用 SQL INSERT 命令将价格为 499 美元的床垫品牌 A 存储到名为 mattress_table 的表中,其中列名称为brand_name 和 cost:
INSERT INTO mattress_table (brand_name, cost)
VALUES(‘A’,’499’);
- 存储过程
存储过程是存储在关系数据库中的一个或多个 SQL 语句的集合。 软件开发人员使用存储过程来提高效率和性能。 例如,他们可以创建一个存储过程来更新销售表,而不是在不同的应用程序中编写相同的 SQL 语句。
3.工作原理
结构化查询语言 (SQL) 的志聪过程需要经过几个软件组件,包括以下组件。
- 解析器
解析器首先将 SQL 语句中的一些单词单词化,或用特殊符号替换。然后,解析器会检查语句是否存在以下情况:
- 正确性
解析器会验证 SQL 语句是否符合 SQL 语义或规则,以确保查询语句正确性。例如,解析器会检查 SQL 命令是否以分号结尾。如果缺少分号,解析器将返回错误。
- 授权
解析器还会验证运行查询的用户是否具有操作相应数据的必要授权。例如,只有管理员用户才有权删除数据。
- 关系引擎
关系引擎或查询处理器会创建一个计划,以最有效的方式检索、写入或更新相应数据。例如,关系引擎会检查类似的查询,重用以前的数据操作方法,或创建新的方法。关系引擎以 SQL 语句的中间级表示形式(称为字节码)编写计划。关系数据库使用字节码高效地执行数据库搜索和修改。
- 存储引擎
存储引擎或数据库引擎是指处理字节码并运行预期 SQL 语句的软件组件。存储引擎会读取并存储物理磁盘存储上的数据库文件中的数据。完成后,存储引擎会将结果返回给请求应用程序。
4.五种子语言
SQL 由多种类型的语句组成,这些语句可以被非正式地归类为子语言,主要分为 5 类。
- DCL(Data Control Language)
DCL 数据控制语言,用于控制数据库表的访问权限,包括授予和撤销权限。
GRANT - 授权
REVOKE - 撤销授权
- DDL(Data Definition Language)
DDL 数据定义语言用于定义数据库结构和模式,包括创建、修改和删除数据库对象,如表、索引、视图等。
CREATE - 创建
ALTER - 修改
DROP - 删除
TRUNCATE - 截断
RENAME - 重命名
COMMENT - 注释
- DML(Data Manipulation Language)
DML 数据操作语言供用户操作数据库,包括数据的增加、删除、更新、载入等操作。
UPDATE - 更新数据库表中的数据
DELETE - 从数据库表中删除数据
INSERT INTO - 向数据库表中插入数据
REPLACE INTO - 向数据库表中插入数据,如果存在先删除
LOAD - 从文件中导入数据到数据库表
- DQL(Data Query Language)
DQL 数据查询语言用来从表中获取数据。
SELECT-从数据库表中获取数据
SELECT 语句常用关键字有:
FROM - 指定从哪个数据表或子查询中查询
WHERE - 指定查询条件
GROUP BY - 结合合计函数,根据一个或多个列对结果集进行分组
HAVING - 对分组后的结果集进行筛选
ORDER BY - 对结果集进行排序
LIMIT - 对结果集进行top限制输出
UNION - 结果集纵向联合
JOIN - 结果集横向拼接
- TCL(Transaction Control Language)
TCL 事务控制语言用于控制事务的执行。
SQL 事务是数据库管理系统中的一个重要概念,它是一系列数据库操作(如插入、更新、删除等)的逻辑单元,要么全部执行成功并永久保存,要么全部失败并回滚到操作前的状态,保证数据库的数据一致性和可靠性。
TCL 只能与 DML 一起使用,例如 INSERT、DELETE 和 UPDATE 等。
BEGIN TRANSACTION 或 START- 开始事务
SAVEPOINT - 在事务中设置保存点,可以回滚到此处
ROLLBACK - 回滚
COMMIT - 提交
SET TRANSACTION – 改变事务选项
SET CONSTRAINT - 启用或禁用外键约束
5.注释方式
SQL 注释是用来在 SQL 语句中添加对代码的解释说明。SQL 支持两种类型的注释符号。
单行注释:使用两个连续的减号(–)表示。减号后面的内容将被视为注释,直到该行结束。
SELECT column1, column2
FROM table
-- This is a single-line comment
WHERE condition;
注意,MySQL 也支持使用 # 符号进行单行注释。不过 # 并不是 SQL 标准规定的注释方式,并不是所有数据库都支持。
多行注释:使用/* 注释内容*/
的格式表示。注释内容位于 /* 和 */ 之间,可以跨越多行。
SELECT column1, column2
FROM table
/* This is amulti-line comment */
WHERE condition;
6.字符串表示方式
在 SQL 标准中,字符串使用单引号(')来表示,而不是双引号(")。
但对于主流的数据库,都支持双引号表示字符串。比如 Oracle、MySQL 和 SQL Server 等。
如果字符串中包含单引号该如何表示呢?
在 SQL 中,如果要表示一个带有单引号的字符串有多种方式。
可以使用反斜杠(\)进行转移,也可以使用单引号进行转义,即使用两个单引号来表示一个单引号。
SELECT 'It\'s a beautiful day';
SELECT 'It''s a beautiful day';
因为 MySQL 支持使用双引号表示字符串,所以还可以使用双引号表示一个包含单引号的字符串。
SELECT "It's a beautiful day"
反之亦然,如果字符串中包含双引号,也可以使用上面三种方式来表示带有双引号的字符串。
至于使用单引号还是双引号表示字符串,我们应该首选单引号,因为这符合 SQL 标准,且是主流的做法。
参考文献
SQL - Wikipedia
What Is SQL (Structured Query Language)? - Amazon AWS
相关文章:

认识 SQL
文章目录 1.简介2.组成3.工作原理4.五种子语言5.注释方式6.字符串表示方式参考文献 1.简介 SQL(Structured Query Language,结构化查询语言)是一种用于管理和操作关系型数据库的标准化查询语言。它是一种领域特定语言(DSL&#x…...

【剑指Offer 58】翻转单词顺序,Java解密。
LeetCode 剑指Offer 75道练习题 文章目录 剑指Offer:翻转单词顺序示例:限制:解题思路:剑指Offer:翻转单词顺序 【题目描述】 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a stu…...

微服务Ribbon-负载均衡原理
目录 一、LoadBalancerIntercepor 二、LoadBalancerClient 三、负载均衡策略IRule 四、总结 上一篇中,我们添加了LoadBalanced注解,即可实现负载均衡功能,这是什么原理呢? SpringCloud底层其实是利用了一个名为Ribbon的组件&…...

如何实现Vue的异步组件?如何在Vue中使用本地存储?什么是Vue的指令模块化?
1、如何实现Vue的异步组件? 在Vue中,可以使用异步组件来加载远程数据,或者在组件的生命周期中执行一些耗时操作。实现异步组件,需要使用Vue的异步组件和Vue的组件系统。 下面是一个基本的示例: <template><…...

《HeadFirst设计模式(第二版)》第六章代码——命令模式
代码文件目录: Command package Chapter6_CommandPattern.Command;/*** Author 竹心* Date 2023/8/6**/public interface Command {public void execute();public void undo();//撤销该指令 }CeilingFan package Chapter6_CommandPattern.ElectricAppliance;/*** …...

JS 原型与继承2
//***-、原型、原型链、构造函数 prototype、 proto_、constructor function Foo(){this.a1} var foo new Foo(); Object.getPrototypeOf(foo);//访问对象原型 效果等同于,foo. proto ,只是更推荐使用 Es6的 Object.getPrototypeof()方式 // construct…...

账号登录相关的一点随笔
最后更新于2023年8月8日 14:25:32 JWT验证: 简单:一个token验证; 前端发来登录信息,后端验证通过后,将token发回前端; 复杂:Access Token Refresh Token验证: 将Access Token和R…...

常见的一些BUG
常见的一些BUG,但实际上在编写代码时,我们应该尽可能避免这些类型的错误: 变量名与函数名冲突: def main(): print("Hello, World!") main 5 print("The value of main is:", main) 函数参数传递错误&…...

ChatGPT在智能社交网络分析和关系挖掘中的应用如何?
智能社交网络分析和关系挖掘是当今信息时代中的重要研究领域,它们通过运用人工智能、机器学习和数据挖掘技术,从社交网络中提取有价值的信息,洞察用户之间的关系和行为模式。ChatGPT作为一种强大的自然语言处理模型,在智能社交网络…...

你不了解的Dictionary和ConcurrentDictionary
最近在做项目时,多线程中使用Dictionary的全局变量时,发现数据并没有存入到Dictionary中,但是程序也没有报错,经过自己的一番排查,发现Dictionary为非线程安全类型,因此我感觉数据没有写进去的原因是多线程…...

c++类模板,嵌套类模板,模板链表,动态数组
c类模板,嵌套类模板,模板链表,动态数组 一.类模板 1.类模板的书写 代码如下 template<typename T>//模板 class CTest {//类 public:T m_a;CTest(const T&a):m_a(a){}void fun1() {cout << typeid(m_a).name() << …...

【Flutter】【基础】CustomPaint 绘画功能,绘制各种图形(二)
CustomPaint 使用实例和代码: 1.canvas.drawColor 绘制背景颜色 class MyPainter1 extends CustomPainter {overridevoid paint(Canvas canvas, Size size) {//绘制背景颜色,整个UI 现在就是红色的canvas.drawColor(Colors.red, BlendMode.srcATop);}…...

YOLOv5修改注意力机制CBAM
直接上干货 CBAM注意力机制是由通道注意力机制(channel)和空间注意力机制(spatial)组成。 传统基于卷积神经网络的注意力机制更多的是关注对通道域的分析,局限于考虑特征图通道之间的作用关系。CBAM从 channel 和 sp…...

计算机网络 网络层 概述
...

算法练习--动态规划 相关
文章目录 走方格的方案 走方格的方案 请计算n*m的棋盘格子(n为横向的格子数,m为竖向的格子数)从棋盘左上角出发沿着边缘线从左上角走到右下角,总共有多少种走法,要求不能走回头路,即:只能往右和…...

JAVA volatile 关键字
volatile 是JAVA虚拟机提供的轻量级的同步机制,有三大特性 1、保证可见性 2、不保证原子性 3、禁止指令重排 JMM JAVA内存模型本身是一种抽象的概念并不真实存在 它描述的是一组规则或规范,提供这组规范定义了程序中各个变量(包括实例变…...

[Leetcode] [Tutorial] 回溯
文章目录 46. 全排列Solution 78. 子集Solution 17. 电话号码的字母组合Solution 39. 组合总和Solution 22. 括号生成Solution 46. 全排列 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例: 输入&…...

STM32 CubeMX USB_MSC(存储设备U盘)
STM32 CubeMX STM32 CubeMX USB_MSC(存储设备U盘) STM32 CubeMX前言 《使用内部Flash》——U盘一、STM32 CubeMX 设置USB时钟设置USB使能UBS功能选择FATFS功能 二、代码部分修改代码"usbd_storage_if.c"修改代码"user_diskio.c"main函数初始化插…...

湘大 XTU OJ 1214 A+B IV 题解:数位移动的本质+布尔变量标记+朴素模拟
一、链接 AB IV 二、题目 题目描述 小明喜欢做ab的算术,但是他经常忘记把末位对齐,再进行加,所以,经常会算错。 比如1213,他把12左移了1位,结果变成了133。 小明已经算了一些等式,请计算一下…...

以商业大数据技术助力数据合规流通体系建立,合合信息参编《数据经纪从业人员评价规范》团标
经国务院批准,由北京市人民政府、国家发展和改革委员会、工业和信息化部、商务部、国家互联网信息办公室、中国科学技术协会共同主办的2023 全球数字经济大会于近期隆重召开。由数交数据经纪(深圳)有限公司为主要发起单位,合合信息…...

【论文阅读】Deep Instance Segmentation With Automotive Radar Detection Points
基于汽车雷达检测点的深度实例分割 一个区别: automotive radar 汽车雷达 : 分辨率低,点云稀疏,语义上模糊,不适合直接使用用于密集LiDAR点开发的方法 ; 返回的物体图像不如LIDAR精确,可以…...

易服客工作室:如何创建有用的内容日历
利用技巧和工具优化您的内容营销效率和效果。创建一个内容日历,您的整个团队都会从中受益! 欢迎来到熙熙攘攘、瞬息万变的内容营销世界,在这里,截止日期到来的速度比喝咖啡的猎豹还要快。 现在,想象一下在没有地图、…...

Excel革命,基于电子表格开发的新工具,不是Access和Power Fx
深谙其道 在日常工作中,Excel是许多人不可或缺的办公工具。 是微软的旗下产品,属于Microsoft 365套件中的一部分,强大的数据处理和计算功能,被普遍应用在全球各行各业的人群当中,是一款强大且普及的电子表格软件。 于…...

“崩溃”漏洞会影响英特尔 CPU 的使用寿命,可能会泄露加密密钥等
对于 CPU 安全漏洞来说,本周是重要的一周。昨天,不同的安全研究人员发布了两个不同漏洞的详细信息,一个影响多代英特尔处理器,另一个影响最新的 AMD CPU。“ Downfall ”和“ Inception ”(分别)是不同的错…...

17.电话号码的字母组合(回溯)
目录 一、题目 二、代码 一、题目 17. 电话号码的字母组合 - 力扣(LeetCode) 二、代码 class Solution {const char*data[10]{"","","abc","def","ghi","jkl","mno","pq…...

Redis小例子
MAC电脑下Redis的安装: brew install redis下面给一个Java操作redis的小例子 import redis.clients.jedis.Jedis;public class Demo {public static void main(String[] args) {// 创建 Jedis 客户端实例,连接到本地 Redis 服务器,默认端口…...

ETLCloud+MaxCompute实现云数据仓库的高效实时同步
MaxCompute介绍 MaxCompute是适用于数据分析场景的企业级SaaS(Software as a Service)模式云数据仓库,以Serverless架构提供快速、全托管的在线数据仓库服务,消除了传统数据平台在资源扩展性和弹性方面的限制,最小化用…...

HTTP代理授权方式介绍
在网络爬虫过程中,我们经常需要使用HTTP代理来实现IP隐藏、突破限制或提高抓取效率。而为了确保代理的正常使用,并避免被滥用,代理服务商通常会采用授权方式。在本文中,我们将介绍几种常见的HTTP代理授权方式,以帮助你…...

《合成孔径雷达成像算法与实现》Figure3.4
代码对补零信号与未补零信号都进行了实现,补零信号更加贴近书中图3.4的样子: clc clear all close all%参数设置 TBP 100; %时间带宽积 T 10e-6; %脉冲持续时间 alpha_os [1.4,1.2,1.0,0…...

qt5.15.2 使用mysql8.1
报错: QMYSQL driver not loaded 报错:无 QMYSQL 使用 QStringList drivers QSqlDatabase::drivers(); //获取现在可用的数据库驱动 foreach(QString driver, drivers) qDebug() << driver; “QSQLITE” “QMARIADB” “QMYSQL” “QMYSQL3” “…...