1. 一个数据库实例:
a. 接下来的内容都是围绕该实例进行讲解的;
b. 实例内容:
i. 数据库为学生-课程数据库,命名为Student_Course;
ii. 数据库中定义一个学生-课程模式,命名为S-T;
iii. 模式中有三张表,分别为:
*1. 学生表:Student(Sno, Sname, Ssex, Sage, Sdept)
属性分别对应着No.(学号)、Name(姓名)、Sex(性别)、Age(年龄)、Department(系名)
*2. 课程表:Course(Cno, Cname, Cpno, Ccredit)
属性分别对应着No.(课程号)、Name(课程名)、Previous No.(先修课的课程号)、Credit(学分)
*3. 学生选课表:SC(Sno, Cno, Grade) 其中Grade是选修Cno的学生的考试成绩
c. 表的内容:
、
2. 数据库以及基本对象的定义规则:
a. 数据库大致包含四种基本对象:模式(SCHEMA)、表(TABLE)、视图(VIEW)、索引(INDEX);
b. 包括数据库本身,这五大元素的创建和删除规则都是一致的;
c. 创建规则:CREATE 元素名 元素名称
删除规则:DROP 元素名 元素名称
d. 例如:
创建和删除XXX数据库:CREATE DATABASE XXX DROP DATABASE XXX
创建和删除XXX模式:CREATE SCHEMA XXX DROP SCHEMA XXX
创建和删除XXX表:CREATE TABLE XXX DROP TABLE XXX
e. 修改规则:
i. 只能对数据库和表进行修改,关键字为ALTER,例如:
ALTER DATABASE XXX ALTER TABLE XXX
ii. 不提供对模式、视图、索引的修改,如果想修改这些元素只能将其删除后重建!!!
3. 模式的定义和删除:
a. 模式相当于一个数据库中的命名空间,在该命名空间中可以定义数据库中的对象;
b. 创建模式的权限:
i. 拥有DBA权限;
ii. 或者拥有DBA授予的CREATE SCHEMA权限;
iii. 当然,连创建模式的权限都没有就更谈不上删除模式了;
c. 创建规则:
i. 直接创建(裸奔式):CREATE SCHEMA "模式名",例如:CREATE SCHEMA "S-T"
ii. 指定用户的完整定义:CREATE SCHEMA "模式名" AUTHORIZATION 用户名,例如:CREATE SCHEMA "S-T" AUTHORIZATION LIRX,即为用户LIRX定义了一个名叫S-T的模式;
iii. 默认模式名的定义:CREATE SCHEMA AUTHORIZATION 用户名,例如:CREATE SCHEMA AUTHORIZATION LIRX,这里的模式名将被默认为和用户名LIRX一样;
d. 和创建对象连用:
i. 创建模式语句中可以包含创建对象语句;
ii. 即在创建的模式下再继续创建模式中的表、视图、索引等;
iii. 例如:
CREATE SCHEMA "S-T" AUTHORIZATION LIRX
CREATE TABLE SC (
....................
)
e. 删除模式:
i. 规则:DROP SCHEMA XXX 选项
ii. 选项一共有两种:
CASCADE:级联的意思,会将XXX模式中的所有对象连带模式本身一起删除;
RESTRICT:限制的意思,如果XXX模式中含有定义的对象则拒绝删除,必须先将模式中的对象全部删除后才能使用RESTRICT成功删除XXX模式;