要求、目标:
SQL语言是关系数据库的标准语言,是本课程的一个重点。本章总的要求是:全面掌握、深刻理解、熟练应用。
要求了解嵌入式SQL和存储过程,掌握SQL定义语句的应用,熟练掌握SQL查询语句、视图、SQL更新语句的应用。
一、SQL简介
1.SQL:结构化查询语言,关系数据库的标准语言。
2.SQL数据库的体系结构
SQL数据库的体系结构基本上也是三级结构,但术语与传统的关系模型术语不同。在SQL中,关系模式称为“基本表”,存储模式称为“存储文件”,子模式称为“视图”,元组称为“行”,属性称为“列”。
SQL数据库的体系结构要点:
1)一个SQL模式是表和约束的集合。
2)一个表由行集构成,一行是列的序列,每列对应一个数据项。
3)表有三种类型:基本表、视图和导出表。
基本表:实际存储在数据库中的表。
视图:由若干基本表或其他视图构成的表的定义。
导出表:执行了查询时产生的表。
4)一个基本表可以跨一个或多个存储文件,一个存储文件也可以存放一个或多个基本表。每个存储文件与外部存储器上一个物理文件对应。
5)用户可以用SQL语句对基本表和视图进行查询等操作。在用户看来,两者一样,都是表。
6) SQL语句可嵌在C、FORTRAN等主语言的程序中使用,也可在交互环境下供终端用户使用。
3.SQL的组成
核心SQL主要有四个部分:
1)数据定义语言,即DDL,用于定义SQL模式、基本表、视图、索引等结构。
2)数据操纵语言,即SQL DML。数据操纵分成数据查询和数据更新两类。而数据更新又分成插入、删除和修改三种操作。
3)嵌入式SQL语言的使用规定
4)数据控制语言,即SQL DCL,这一部分包括对基本表和视图的授权、完整性规则的描述、事务控制等内容。
4.SQL的特点
1)SQL具有十分灵活和强大的查询功能。
2)SQL不是一个应用开发语言,它只提供对数据库的操作功能。但SQL既可作为交互式语言独立使用,也可作为子语言嵌入在主语言中使用,成为应用开发语言的一部分。
3)SQL是国际标准语言,有利于各种数据库之间交换数据,有利于程序的移植,有利于实现高度的数据独立性,有利于实现标准化。
4)SQL完成核心功能只用9个英语动词,语法结构接近英语,容易学习和使用。
二、SQL的数据定义
1.SQL模式的创建
在SQL中,一个SQL模式定义为基本表的集合。一个SQL模式由模式名和模式拥有者的用户名或账号来确定,并包含模式中每一个元素(基本表、视图、索引等)的定义。创建SQL模式,就是定义了一个存储空间。
创建模式语法:
CREATE SCHEMA <模式名> AUTHORIZATION <用户名>
2.SQL模式的撤销
语法:DROP SCHEMA <模式名> [CASCADE | RESTRICT]
说明:
CASCADE(级联式)方式:执行DROP语句时,把SQL模式及其下属的基本表、视图、索引等所有元素全部撤销。
RESTRICT(约束式)方式:只有当SQL模式中没有任何下属元素时,才能撤销SQL模式,否则拒绝执行DROP语句。
3.SQL的基本数据类型
1)数值型
INTEGER(或INT) 长整数
SMALLINT 短整数
REAL 浮点数
DOUBLE PRECISION 双精度浮点数
FLOAT(n) 浮点数,精度至少为n位数字
NUMERIC(p,d) 定点数,有p位数字(不包括符号、小数点)组成,小数点后有d位数字,也可写成DECIMAL(p,d)或DEC(p,d)
2)字符串型
CHAR(n) 长度为n的定长字符串
VARCHAR(n) 具有最大长度为n的变长字符串
3)位串型
BIT(n) 长度为n的二进制位串
BIT VARYING(n) 最大长度为n的变长二进制位串
4)时间型
DATE 日期,包含年、月、日,形为YYYY-MM-DD
TIME 时间,包含时、分、秒,形为HH:MM:SS