SQL (Structured Query Language)起源于1970年代,由 Chamberlin 和 Boyce 在 IBM 开发的 SEQUEL
演化而来,逐渐发展成为标准化的数据查询语言,用于管理关系型数据库。
SQL 概述
SQL (Structured Query Language)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。 与其他程序设计语言(如 C语言、Java 等)不同的是,SQL 由很少的关键字组成,每个 SQL 语句通过一个或多个关键字构成。
SQL 具有如下优点。
一体化:SQL 集数据定义、数据操作和数据控制于一体,可以完成数据库中的全部工作。
使用方式灵活:SQL 具有两种使用方式,可以直接以命令方式交互使用;也可以嵌入使用,嵌入C、C++、Fortran、COBOL、Java 等语言中使用。
非过程化:只提操作要求,不必描述操作步骤,也不需要导航。使用时只需要告诉计算机“做什么”,而不需要告诉它“怎么做”,存储路径的选择和操作的执行由数据库管理系统自动完成。
语言简洁、语法简单:该语言的语句都是由描述性很强的英语单词组成,而且这些单词的数目不多。
SQL组成部分
SQL 包含以下 4 部分:
DDL 数据定义语言(Data Definition Language)
用来创建或删除数据库以及表等对象,主要包含以下几种命令:
DROP
:删除数据库和表等对象CREATE
:创建数据库和表等对象ALTER
:修改数据库和表等对象的结构
DML 数据操作语言(Data Manipulation Language)
用来变更表中的记录,主要包含以下几种命令:
INSERT
:向表中插入新数据UPDATE
:更新表中的数据DELETE
:删除表中的数据
DQL 数据查询语言(Data Query Language)
用来查询表中的记录,主要包含 SELECT
命令,来查询表中的数据。
DCL 数据控制语言(Data Control Language)
用来确认或者取消对数据库中的数据进行的变更。除此之外,还可以对数据库中的用户设定权限。主要包含以下几种命令:
GRANT
:赋予用户操作权限REVOKE
:取消用户的操作权限COMMIT
:确认对数据库中的数据进行的变更ROLLBACK
:取消对数据库中的数据进行的变更
SQL的高级特性
子查询:嵌套SELECT语句,用于更复杂的查询逻辑。
连接(JOIN):INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN等不同类型的连接操作。
视图(VIEW):虚拟表,用于简化复杂的查询和提供数据抽象层。
存储过程和函数:预编译的SQL代码块,可以接受输入参数,返回输出参数或执行一系列操作。
触发器(TRIGGER):在特定数据库事件发生时自动执行的代码。
事务和锁:确保数据完整性和并发控制的机制。