前言
我们在学习数据库时,第一个要弄明白的东西就是,SQL是什么,SQL 是 Structured Query Language 的缩写,字面意思为“结构化查询语言”,它可以用来进行数据的查询、插入、更新、删除等操作,也可以用于创建和管理数据库对象,如表、视图、存储过程、函数等。本篇文章我们就将对SQL进行系统介绍。
SQL是什么
SQL 是一种操作数据库的语言,包括创建数据库、删除数据库、查询记录、修改记录、添加字段等。SQL 虽然是一种被 ANSI 标准化的语言,但是它有很多不同的实现版本。
SQL 是关系型数据库的标准语言,所有的关系型数据库管理系统(RDBMS),比如 MySQL、Oracle、SQL Server、MS Access、Sybase、Informix、Postgres 等,都将 SQL 作为其标准处理语言。
此外,SQL 也有一些变种,就像中文有粤语吴语等方言,比如:
- 微软的 SQL Server 使用 T-SQL
- Oracle 使用 PL/SQL
- 微软 Access 版本的 SQL 被称为 JET SQL(本地格式)
SQL 的特点
SQL 之所以广受欢迎,是因为它具有以下特点:
- 允许用户访问关系型数据库系统中的数据
- 允许用户描述数据
- 允许用户定义数据库中的数据,并处理该数据
- 允许将 SQL 模块、库或者预处理器嵌入到其它编程语言中
- 允许用户创建和删除数据库、表、数据项(记录)
- 允许用户在数据库中创建视图、存储过程、函数
- 允许用户设置对表、存储过程和视图的权限
SQL 执行过程
当你在任何一款 RDBMS 中执行 SQL 命令时,系统首先确定执行请求的最佳方式,然后 SQL 引擎将会翻译 SQL 语句,并处理请求任务。
整个执行过程包含了多种组件,比如:
- 查询调度程序
- 优化引擎
- 传统的查询引擎
- SQL 查询引擎
传统查询引擎能够处理所有的非 SQL 命令,但是 SQL 引擎并不能处理逻辑文件。
下图展示了 SQL 的体系结构:
SQL命令
与关系型数据库有关的 SQL 命令包括 CREATE、SELECT、INSERT、UPDATE、DELETE、DROP 等,根据其特性,可以将它们分为以下几个类别。
- DDL - Data Definition Language,数据定义语言
对数据的结构和形式进行定义,一般用于数据库和表的创建、删除、修改等。
命令 | 说明 |
---|---|
CREATE | 用于在数据库中创建一个新表、一个视图或者其它对象。 |
ALTER | 用于修改现有的数据库,比如表、记录。 |
DROP | 用于删除整个表、视图或者数据库中的其它对象 |
- DML - Data Manipulation Language,数据处理语言
对数据库中的数据进行处理,一般用于数据项(记录)的插入、删除、修改和查询。
命令 | 说明 |
---|---|
SELECT | 用于从一个或者多个表中检索某些记录 |
INSERT | 插入一条记录 |
UPDATE | 修改记录 |
DELETE | 删除记录 |
- DCL - Data Control Language,数据控制语言
控制数据的访问权限,只有被授权的用户才能进行操作。
命令 | 说明 |
---|---|
GRANT | 向用户分配权限 |
REVOKE | 收回用户权限 |
总结
本文主要介绍了SQL的基本概念,包括SQL的定义、SQL的特点、SQL的执行过程以及SQL命令的分类,后面我们将介绍什么是关系型数据库及其管理系统。