第3章 关系数据库标准语言SQL——3.1 SQL概述

简介: 第3章 关系数据库标准语言SQL——3.1 SQL概述

3.1  SQL概述


     结构化查询语言(Structured Query Language,SQL)是关系数据库的标准语言,也是一个通用的、功能极强的关系数据库语言。其功能不仅仅是查询,而是包括数据库模式创建、数据库数据的插入与修改、数据库安全性完整性定义与控制等一系列功能。


3.1.1  SQL的产生与发展


3.1  SQL标准的进展过程

标准

大致页数

发布日期

SQL/86


198610

SQL/89(FIPS   127-1)

120

1989

SQL/92

622

1992

SQL   99(SQL 3)

1700

1999

SQL   2003

3600

2003

SQL   2008

3777

2006

SQL   2011


2010

    目前,没有一个数据库系统能够支持SQL标准的所有概念和特性。


3.1.2  SQL的特点


       SQL数据查询(data query)、数据操纵(data manipulation)、数据定义(data definition)和数据控制(data control)功能于一体,其主要特点包括以下几部分。


01 综合统一


    非关系模型(层次模型、网状模型)的数据语言一般都分为:

    (1)模式数据定义语言(Schema Data Definition Language,模式DDL)。

    (2)外模式数据定义语言(Subschema Data Definition Language,外模式DDL或子模式DDL)。

    (3)数据存储有关的描述语言(Data Storage Description Language,DSDL)。

    (4)数据操纵语言(Data Manipulation Language,DML)。

     它们分别用于定义模式、外模式、内模式和进行数据的存取与处置。当用户数据库投入运行后,如果需要修改模式,必须停止现有数据库的运行,转储数据,修改模式并编译后再重装数据库,十分麻烦。

    SQL集数据定义语言、数据操纵语言、数据控制语言的功能于一体,语言风格统一,可以独立完成数据库生命周期中的全部活动,包括以下一系列操作要求:

>>定义和修改、删除关系模式,定义和删除视图,插入数据,建立数据库。

>>对数据库中的数据进行查询和更新。

>>数据库重构和维护。

>>数据库安全性、完整性控制,以及事物控制。

>>嵌入式SQL和动态SQL定义。

     用户在数据库系统投入运行后,可根据需要随时逐步修改模式,不影响数据库的运行。


02 高度非过程化

     非关系数据模型的数据操纵语言是“面向过程”的语言,用“过程化”语言完成某项请求必须指定存取路径。而用SQL进行数据操作时,只要提出“做什么”,而无须指明“怎么做”,因此无须了解存取路径。存取路径的选择以及SQL的操作过程由系统自动完成。这不但大大减轻了用户负担,而且有利于提高数据独立性


03面向集合的操作方式

    非关系数据模型采用的是面向记录的操作方式,操作对象是一条记录。SQL采用集合操作方式,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。


04 以同一种语法结构提供多种使用方式

    (1)SQL是独立的语言:能够独立地用于联机交互的使用方式,用户可以在终端键盘上直接键入SQL命令对数据库进行操作。

    (2)SQL又是嵌入式语言:SQL语句能够嵌入到高级语言(例如C、C++、Java)程序中,供程序员设计程序时使用。


05 语言简洁,易学易用

    SQL功能极强,由于设计巧妙,语言十分简洁,完成核心功能只用了9个动词,如表3.2所示。

3.2  SQL的动词

SQL功能

动词

数据查询

select

数据定义

createdropalter

数据操纵

insertupdatedelete

数据控制

grantrevoke



3.1.3  SQL的基本概念


     支持SQL的关系数据库管理系统同样支持关系数据库三级模式结构,如图3.1所示。其中外模式包括若干视图(view)和部分基本表(base table),模式包括若干基本表内模式包括若干存储文件(stored file)。

901daa04c90c81763e0565b8b363d47e_640_wxfrom=5&wx_lazy=1&wx_co=1.jpg

图3.1  SQL对关系数据库模式的支持


       基本表是本身独立存在的表,在关系数据库管理系统中一个关系就对应一个基本表。一个或多个基本表对应一个存储文件,一个表可以带若干索引,索引也存放在存储文件中。


     存储文件的逻辑结构组成了关系数据库的内模式。存储文件的物理结构对最终用户是隐蔽的。


     视图是从一个或几个基本表导出的表它本身不独立存储在数据库中,即数据库中只存放视图的定义而不存放视图对应的数据。这些数据仍存放在导出视图的基本表,因此视图是一个虚表。视图在概念上与基本表等同,用户可以在视图上再定义视图


相关实践学习
使用DAS实现数据库SQL优化
本实验介绍如何通过数据库自治服务DAS对RDS MySQL高可用实例进行SQL优化,包含购买RDS实例并创建数据库、数据导入、生成并优化慢SQL、执行优化后的SQL语句等实验步骤。
相关文章
|
6月前
|
存储 自然语言处理 Oracle
Oracle数据库字符集概述及修改方式
【8月更文挑战第15天】Oracle 数据库字符集定义了数据的编码方案,决定可存储的字符类型及其表示方式。主要作用包括数据存储、检索及跨系统传输时的正确表示。常见字符集如 AL32UTF8 支持多语言,而 WE8MSWIN1252 主用于西欧语言。修改字符集风险高,可能导致数据问题,需事先备份并评估兼容性。可通过 ALTER DATABASE 语句直接修改或采用导出-导入数据的方式进行。完成后应验证数据完整性。此操作复杂,须谨慎处理。
209 5
|
6月前
|
SQL 关系型数据库 MySQL
在MySQL中,什么是结构化查询语言 (SQL)
【8月更文挑战第20天】在MySQL中,什么是结构化查询语言 (SQL)
103 1
|
4月前
|
SQL Oracle 关系型数据库
SQL语言的主要标准及其应用技巧
SQL(Structured Query Language)是数据库领域的标准语言,广泛应用于各种数据库管理系统(DBMS)中,如MySQL、Oracle、SQL Server等
141 9
|
4月前
|
SQL 关系型数据库 MySQL
Go语言项目高效对接SQL数据库:实践技巧与方法
在Go语言项目中,与SQL数据库进行对接是一项基础且重要的任务
133 11
|
4月前
|
SQL 存储 分布式计算
大数据-93 Spark 集群 Spark SQL 概述 基本概念 SparkSQL对比 架构 抽象
大数据-93 Spark 集群 Spark SQL 概述 基本概念 SparkSQL对比 架构 抽象
72 0
|
6月前
|
SQL 关系型数据库 数据库
|
7月前
|
SQL 存储 网络安全
关系数据库SQLserver 安装 SQL Server
【7月更文挑战第26天】
93 6
|
6月前
|
SQL 关系型数据库 数据库
|
6月前
|
SQL 关系型数据库 MySQL
|
6月前
|
SQL 数据库 开发者