【重学 MySQL】十一、SQL 概述
【重学 MySQL】十一、SQL 概述
- SQL 背景知识
- 产生与发展
- 主要特点
- 主要应用
- SQL语言的发展趋势
- SQL 语言排行榜
- SQL 分类
- 数据查询语言(DQL, Data Query Language)
- 数据操纵语言(DML, Data Manipulation Language)
- 数据定义语言(DDL, Data Definition Language)
- 数据控制语言(DCL, Data Control Language)
- 事务控制语言(TCL, Transaction Control Language)
SQL 背景知识
产生与发展
- 产生:SQL语言的雏形最早由美国IBM公司的Raymond F. Boyce和Donald D. Chamberlin在1974年提出。在1975年至1979年期间,SQL在System R上首次实现,当时称为SEQUEL。
- 发展:随着时间的推移,SQL语言逐渐发展和完善。1986年推出了SQL-86标准,正式命名为“SQL: Structured Query Language”。此后,ANSI/ISO陆续推出了多个版本的SQL标准,包括SQL-89、SQL-92(也称为SQL2)、SQL-99(也称为SQL3)等。这些标准不断引入新的特性和功能,以满足数据库技术发展的需求。
主要特点
- 综合统一:SQL集数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言(DCL)的功能于一体,语言风格统一,可以独立完成数据库生命周期中的全部活动,包括定义数据库中的数据、建立数据库、查询、更新、控制数据保护等。
- 高度非过程化:使用SQL进行数据操作,用户只需提出“做什么”,而不必指明“怎么做”,具体的实现过程由系统自动完成。这大大减轻了用户负担,提高了工作效率。
- 面向集合的操作方式:SQL采用集合操作方式,不仅操作对象、查询结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。
主要应用
SQL语言的应用场景非常广泛,几乎涵盖了所有需要数据库支持的业务领域。以下是一些主要的应用场景:
- 客户关系管理(CRM):通过SQL数据库存储客户信息、交易记录等数据,实现客户信息的管理和分析。
- 人力资源管理(HRM):存储员工档案、考勤记录、薪资信息等数据,支持企业人力资源管理和员工绩效评估。
- 供应链管理(SCM):记录供应商信息、库存情况、订单状态等数据,实现供应链的优化和管理。
- 电子商务:存储商品信息、库存状态、价格策略等数据,支持商品管理和销售。
- 数据分析:基于历史交易数据和市场情报,进行数据挖掘和分析,为决策提供支持。
SQL语言的发展趋势
随着大数据、云计算等技术的快速发展,SQL语言也在不断演进和扩展。近年来,SQL标准陆续推出了新的版本,如SQL:2003、SQL:2008、SQL:2011、SQL:2016等,这些新版本增加了更多的特性和功能,以支持更复杂的数据处理和分析需求。例如,SQL:2016增加了对JSON数据的支持,使得SQL在处理半结构化数据方面更加灵活和强大。
综上所述,SQL作为一种关系数据库的标准语言,具有综合统一、高度非过程化、面向集合的操作方式等特点,在多个领域都有广泛的应用。随着技术的不断发展,SQL语言也在不断更新和完善,以满足日益复杂的数据处理和分析需求。
SQL 语言排行榜
自从 SQL 加入 TIOBE 编程语言排行榜,就一直保持在 TOP10
查询官网:https://www.tiobe.com/tiobe-index/
SQL 分类
SQL(Structured Query Language,结构化查询语言)是一种用于管理关系型数据库系统的标准化语言。根据功能和应用领域的不同,SQL语言可以分为几个主要类别。
数据查询语言(DQL, Data Query Language)
- 功能:用于检索数据库中的数据,是SQL中最常用的功能之一。
- 核心指令:SELECT。
- 特点:DQL通常与FROM、WHERE、GROUP BY、HAVING、ORDER BY等子句结合使用,以构造复杂的查询语句。
- 示例:查询数据库中某个表的特定字段或记录,如
SELECT column1, column2 FROM table_name WHERE condition;
。
数据操纵语言(DML, Data Manipulation Language)
- 功能:用于对数据库表中的数据进行增、删、改等操作。
- 核心指令:INSERT、UPDATE、DELETE。
- 特点:DML操作直接影响数据库表中的数据,而不改变表的结构。
- 示例:向表中插入新记录(INSERT),更新表中现有记录(UPDATE),从表中删除记录(DELETE)。
数据定义语言(DDL, Data Definition Language)
- 功能:用于定义数据库中的数据结构,如表、索引、视图等对象的创建、修改和删除。
- 核心指令:CREATE、ALTER、DROP等。
- 特点:DDL操作会改变数据库的结构,如添加新的表、修改表结构或删除表等。
- 示例:创建新表(CREATE TABLE),修改表结构(ALTER TABLE),删除表(DROP TABLE)。
数据控制语言(DCL, Data Control Language)
- 功能:用于定义数据库、表、字段的访问权限和安全级别。
- 核心指令:GRANT、REVOKE等。
- 特点:DCL操作主要关注于数据库的安全性,通过控制不同用户对数据库对象的访问权限来确保数据的安全。
- 示例:授予用户访问权限(GRANT),撤销用户访问权限(REVOKE)。
事务控制语言(TCL, Transaction Control Language)
- 功能:用于管理数据库中的事务,确保数据的完整性和一致性。
- 核心指令:COMMIT、ROLLBACK、SAVEPOINT等。
- 特点:TCL操作允许将多个DML操作组合成一个逻辑事务,通过提交(COMMIT)或回滚(ROLLBACK)来确保事务的原子性、一致性、隔离性和持久性(ACID特性)。
- 示例:提交事务(COMMIT),回滚事务(ROLLBACK)。
需要注意的是,虽然TCL在某些分类中被单独列出,但在一些资料中,它可能被视为DML或DCL的一部分,或者与它们并列作为SQL的一个独立类别。这取决于具体的分类方法和上下文环境。
综上所述,SQL语言根据其功能和应用领域的不同,可以分为数据查询语言(DQL)、数据操纵语言(DML)、数据定义语言(DDL)、数据控制语言(DCL)以及事务控制语言(TCL)等几个主要类别。这些类别共同构成了SQL语言的完整体系,使得用户能够高效、安全地管理和利用数据库系统。
相关文章:

【重学 MySQL】十一、SQL 概述
【重学 MySQL】十一、SQL 概述 SQL 背景知识产生与发展主要特点主要应用SQL语言的发展趋势 SQL 语言排行榜SQL 分类数据查询语言(DQL, Data Query Language)数据操纵语言(DML, Data Manipulation Language)数据定义语言࿰…...

(一)模式识别——基于SVM的道路分割实验(附资源)
写在前面:本报告所有代码公开在附带资源中,无法下载代码资源的伙伴私信留下邮箱,小编24小时内回复 一、实验目的 1、实验目标 学习掌握SVM(Support Vector Machine)算法思想,利用MATLAB的特定工具箱和库函…...

Python | Leetcode Python题解之第391题完美矩形
题目: 题解: class Solution:def isRectangleCover(self, rectangles: List[List[int]]) -> bool:area, minX, minY, maxX, maxY 0, rectangles[0][0], rectangles[0][1], rectangles[0][2], rectangles[0][3]cnt defaultdict(int)for rect in rec…...

Rust模块std::thread
【图书介绍】《Rust编程与项目实战》-CSDN博客 《Rust编程与项目实战》(朱文伟,李建英)【摘要 书评 试读】- 京东图书 (jd.com) Rust到底值不值得学,之一 -CSDN博客 Rust到底值不值得学,之二-CSDN博客 Rust多线程编程概述-CSDN博客 12.…...
Leetcode Day20 打家劫舍
198 最基础 class Solution:def rob(self, nums: List[int]) -> int:dp1 [0] * len(nums)dp2 [0] * len(nums)# dp1指第i天偷了, dp2指第i天没有偷dp1[0] nums[0]for i in range(1, len(nums)):dp1[i] dp2[i - 1] nums[i]dp2[i] max(dp1[i - 1], dp2[i - 1])return m…...

云计算之数据库
目录 一、RDS产品介绍及排障思路 1.1 云RDS数据库及其特点 1.2 云RDS数据库-规格 1.3 云RDS数据库-存储 1.4 云RDS数据库-安全 1.5 云RDS数据库-整体架构 1.6 RDS常见问题排查 1.6.1 如何解决无法链接RDS实例的问题 1.6.2 RDS实例存储空间使用率高,怎…...
开发软件,什么类型的重要信息的日志要存到数据库表里面
在开发软件时,选择将哪些类型的重要信息日志存储到数据库表里面,主要取决于这些日志的用途、查询需求、性能考虑以及系统架构。以下是一些通常会选择存储到数据库表中的重要信息日志类型: 1. 业务日志: 交易记录:记录…...
websocket和轮询的区别?
问: websocket和轮询的区别? 回答: WebSocket 和定时轮询(每隔几秒发送一次请求)是两种不同的实时通信方法,各有优缺点,适用于不同的场景。以下是它们的主要区别及适用场景: WebSo…...

2024 年全国大学生数学建模竞赛(国赛)浅析
需要完整资料,请关注WX:“小何数模”! (需要完整B、C和E题资料请关注WX:“小何数模”,获取资料链接!) 本次万众瞩目的全国大学生数学建模赛题已正式出炉,无论是赛题难度…...

持续集成与持续部署(CI/CD)的深入探讨
在现代软件开发中,持续集成(CI)和持续部署(CD)已成为不可或缺的实践。这些方法旨在加快软件交付的速度,同时提高软件的质量和稳定性。通过CI/CD,开发团队可以频繁地将代码更改集成到主分支&…...

hyperf json-rpc
安装 安装docker hyperf 安装 hyperf-rpc-server-v8 (服务端) docker run --name hyperf-rpc-server-v8 \ -v /www/docker/hyperf-rpc-server:/data/project \ -w /data/project \ -p 9508:9501 -it \ --privileged -u root \ --entrypoint /bin/sh \…...

基于SpringBoot的外卖点餐系统
你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言:Java 数据库:MySQL 技术:SpringBootJSP 工具:IDEA/Eclipse、Navicat、Maven、Tomcat 系统展示 首页 用户管理界…...

网络编程day02(字节序、TCP编程)
目录 【1】字节序 1》大小端转换 2》端口转换 3》IP地址转换 主机字节序转换为网络字节序 (小端序->大端序) 网络字节序转换为主机字节序(大端序->小端序) 【2】TCP编程 1》流程 2》函数接口 1> socket 2> …...
萌新6:临场发挥(区间dp)
题目描述 小x和室友总共 nnn 人,组团去打一款游戏,总共有 nnn 台电脑供他们使用,一人一台,最开始,第 iii 个人使用第 iii 台电脑。 小x评估了每个人的能力值和临场发挥值。 第 iii 个人的能力值为 aia_iai。 而他们…...

《数字信号处理》学习04-离散时间系统中的线性时不变系统
目录 一,系统及离散时间系统 二,离散时间系统中的线性时不变系统 1,线性系统 1) 可加性 2) 比例性(齐次性) 3)叠加原理(叠加性质) 2,时不变系统(移不变系统) 通过前几篇文章的学习,此时我对序列的相关概…...

ABAP 调试宏DEFINE
文章目录 调试过程完整程序 调试过程 完整程序 REPORT Z_TEST_DEFINE.TYPES: BEGIN OF GTY_DATA,NAME TYPE STRING,AGE TYPE I,END OF GTY_DATA. DATA: GS_DATA TYPE GTY_DATA,GT_DATA TYPE TABLE OF GTY_DATA. DEFINE D_TEST.GS_DATA-NAME &1.GS_DATA-AGE &2.APPE…...

Golang | Leetcode Golang题解之第393题UTF-8编码验证
题目: 题解: const mask1, mask2 1 << 7, 1<<7 | 1<<6func getBytes(num int) int {if num&mask1 0 {return 1}n : 0for mask : mask1; num&mask ! 0; mask >> 1 {nif n > 4 {return -1}}if n > 2 {return n}r…...

HarmonyOS开发实战( Beta5.0)DevEco Device Tool开发环境搭建实践
通常在嵌入式开发中,很多开发者习惯于使用Windows进行代码的编辑,比如使用Windows的Visual Studio Code进行OpenHarmony代码的开发。但当前阶段,大部分的开发板源码还不支持在Windows环境下进行编译,如Hi3516、Hi3518系列开发板。…...

WIFI贴项目到底是不是“骗局”呢?由我来揭秘!
各位亲爱的朋友们,大家好!我是你们的老朋友鲸天科技千千,一直在这片互联网的热土上耕耘。相信你们对我都不会陌生,因为我常常分享一些互联网上的新奇项目和实用技巧。如果你对我的内容感兴趣,别忘了点个关注哦…...

C++ string类—string修饰符、操作、非成员函数
一、Modifiers(修饰符): 1、operator 这个成员函数给一个string类类型的对象进行追加,在现有的string后面追加string类、字符串或者字符; 代码示例: void test1() {std::string s1("Hello ");…...
浅谈 React Hooks
React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...

无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...