- SQL的特点(关系数据模型)
-
集数据定义语言(DDL) , 数据操纵语言(DML),数据控制语言(DCL)功能于一体。
-
可以独立完成数据库生命周期的全部活动:
(1)定义和修改、删除关系模式,定义和删除视图,插入数据,建立数据库;
(2)对数据库中的数据进行查询和更新;
(3)数据库重构和维护;
(4)数据库安全性、完整性控制,已经事务控制;
(5)嵌入式SQL和动态SQL定义 -
高度非过程化:无需了解存储路径
-
面向集合的操作方式:操作对象、查找结构可以是集合
-
多种使用方式:可独立使用、嵌入高级语言程序中
-
基本表:一个关系对应一个基本表、多个或者一个基本表对应存储文件
-
存储文件
-
视图:
(1)从一个或几个基本表导出的表
(2)数据库中只存放视图定义而不存放视图对应的数据
(3)视图是一个虚表
(4)用户可以在视图上再定义视图
-
数据字典
数据字典是关系数据库管理系统内部的一组系统表,它记录了数据库中所有对象的定义信息以及一些统计信息:
(1)关系模式、表、视图、索引的定义
(2)完整性约束的定义
(3)各类用户对数据库的操作权限
(4)统计信息等
关系数据库管理系统在执行SQL的数据定义语句时,实际就是在更新数据字典表中的相应信息 -
数据定义
(1) 模式定义
(2)表定义
(3)索引定义 -
定义模式:
(1)实际上定义了一个命名空间(或者说是目录)
(2)这个空间中可以定义该模式包含的数据库对象,如基本表、视图、索引
(3)在CREATE SCHEMA中可以接受CREATE TABLE,CREATE VIEW和GRANT子句。
**CREATE SCHEMA <模式名> AUTHORIZATION<用户名>[<表定义子句>|<视图定义子句>|<授权定义子句>]**例: -
删除模式
DROP SCHEMA <模式名> <CASCADE|RESTRICT>
CASCADE(级联):删除模式的同时把该模式中所有数据库对象全部删除
RESTRICT(限制):如果该模式中定义了下属的数据库对象(如表、视图等),则拒绝该删除语句的执行。(没有任何下属的对象时才能执行)例:
CREATE TABLE<表名> /基本表的名称/
(<列名> <数据类型>[<列级完整性约束条件>]) /组成该表的列/
…
[,<表级完整性约束条件>] );例:
模式与表 -
每一个基本表需属于某个模式
-
定义基本表所属模式的方法:
(1)在表名中明显地给出模式名
Create table “S-T”.Student(…); /模式名为S-T/
Create table “S-T”.Course(…);
Create table “S-T”.SC(…);
(2)在创建模式的同时创建表
(3)设置所属的模式 -
创建基本表时,若没有指定模式,系统根据搜索路径来确定该对象所属的模式
-
关系数据库管理系统会以“搜索路径”指向的模式作为数据库对象的模式名
-
设置搜索路径的方法:
SET search_path TO “S-T”,PUBLIC;