nginx 网站建设,网站开发微信支付接入,上海市工程建设,企业网站建设重要性目录
3.3.1 模式的定义与删除
1. 定义模式
2. 删除模式
CASCADE#xff08;级联#xff09;
RESTRICT#xff08;限制#xff09;
3.3.2 基本表的定义、删除与修改
表的定义
2.数据类型
3. 模式与表
4. 修改基本表
5. 删除基本表
3.3.3 索引的建立与删除
1. …目录
3.3.1 模式的定义与删除
1. 定义模式
2. 删除模式
CASCADE级联
RESTRICT限制
3.3.2 基本表的定义、删除与修改
表的定义
2.数据类型
3. 模式与表
4. 修改基本表
5. 删除基本表
3.3.3 索引的建立与删除
1. 建立索引
2. 修改索引
3. 删除索引
3.3.4 数据字典 SQL的数据定义功能: 定义数据库中的各种对象模式定义表定义视图和索引的定义 现代关系数据库管理系统提供了一个层次化的数据库对象命名机制一个关系数据库管理系统的实例Instance中可以建立多个数据库一个数据库中可以建立多个模式一个模式下通常包括多个表、视图和索引等数据库对象。
3.3.1 模式的定义与删除
1. 定义模式
SQL中模式定义语句如下 CREATE SCHEMA 模式名 AUTHORIZATION 用户名
[例3.1] 为用户WANG定义一个学生-课程模式S-T
CREATE SCHEMA “S-T” AUTHORIZATION WANG;
如果语句没有指定模式名模式名隐含为用户名
[例3.2] CREATE SCHEMA AUTHORIZATION WANG;
要创建模式调用该命令的用户必须拥有数据库管理员权限或获得了数据库管理员授予CREATE SCHEMA 的权限。
定义模式实际上定义了一个命名空间。在这个空间中可以定义该模式包含的数据库对象例如基本表、视图、索引等。
在CREATE SCHEMA中可以接受CREATE TABLE CREATE VIEW GRANT子句定义模式
即用户可以在创建模式的同时在模式定义中进一步创建基本表、视图定义授权。
[例3.3]为用户ZHANG创建了一个模式TEST并且在其中定义一个表TAB1
CREATE SCHEMA TEST AUTHORIZATION ZHANG
CREATE TABLE TAB1 ( COL1 SMALLINT, COL2 INT, COL3 CHAR(20), COL4 NUMERIC(10,3), COL5 DECIMAL(5,2) );
2. 删除模式
SQL中删除模式语句如下 DROP SCHEMA 模式名CASCADE|RESTRICT
CASCADE级联
删除模式的同时把该模式中所有的数据库对象全部删除
RESTRICT限制
如果该模式中定义了下属的数据库对象如表、视图等则拒绝执行该删除语句。
仅当该模式中没有任何下属的对象时才能执行。
[例3.4] DROP SCHEMA ZHANG CASCADE;
含义:删除模式ZHANG,同时该模式中定义的表TAB1也被删除
3.3.2 基本表的定义、删除与修改
表的定义
定义基本表基本格式如下
CREATE TABLE 表名
(列名数据类型[列级完整性约束条件]列名数据类型[列级完整性约束条件]...[表级完整性约束条件]
表名 所要定义的基本表的名字
列名组成该表的各个属性列
列级完整性约束条件涉及相应属性列的完整性约束条件
表级完整性约束条件涉及一个或多个属性列的完整性约束条件
如果完整性约束条件涉及到该表的多个属性列则必须定义在表级上否则既可以定义在列级也可以定义在表级。
例子
CREATE TABLE Course (Cno CHAR(4) PRIMARY KEY, /* 列级完整性约束条件,Cno是主码*/
Cname CHAR(40) NOT NULL, /* 列级完整性约束条件,Cname取值非空*/
Cpno CHAR(4), Ccredit SMALLINT
FOREIGN KEY (Cpno) REFERENCES Course(Cno) /* 表级完整性约束条件【参照完整性】外码cpno被参照表为course被参照列为cno*/
2.数据类型
SQL中域的概念用数据类型来实现
定义表的属性时需要指明其数据类型及长度
选用哪种数据类型考虑两方面1.取值范围 如人的年龄一般在100岁左右选用短整数教职工适合年龄 2.要做哪些运算 如年龄可以用CHAR(3); 计算平均年龄整数型 3. 模式与表
每一个基本表都属于某一个模式
一个模式包含多个基本表
定义基本表所属模式方法: 3种方法
一在表名中明显地给出模式名
Create table S-T.Student(......); /*模式名为 S-T*/
Create table S-T.Course(......);
Create table S-T.SC(......); 方法二在创建模式语句的同时创建表
方法三设置所属的模式 创建表时表名中无需给出模式名
创建基本表其他数据库对象也一样时若没有指定模式系统根据搜索路径来确定该对象所属的模式
关系数据库管理系统会使用模式列表中第一个存在的模式作为数据库对象的模式名
若搜索路径中的模式名都不存在系统给出错误
显示当前的搜索路径 SHOW search_path;
搜索路径的当前默认值是$user,PUBLIC
含义首先搜索与用户名相同的模式名如果模式名不存在则使用PUBLIC模式
数据库管理员也可以设置搜索路径然后定义基本表 SET search_path TO “S-T” , PUBLIC; Create table Student(......); 结果建立了S-T.Student基本表。
含义关系数据库管理系统发现搜索路径中第一个模式名S-T就把该模式作为基本表Student所属的模式。
4. 修改基本表
SQL中修改基本表一般格式 5. 删除基本表 3.3.3 索引的建立与删除
建立索引的目的加快查询速度
B树索引具有动态平衡的优点HASH索引具有查找速度快的特点
谁可以建立索引数据库管理员 或 表的属主即建立表的人
谁维护索引关系数据库管理系统自动完成
使用索引关系数据库管理系统自动选择合适的索引作为存取路径用户不必也不能显式地选择索引
索引属于内模式的范畴
索引占用一定的存储空间当基本表更新时索引要进行相应的 维护会增加数据库负担根据实际需求有选择的创建索引。 SQL标准中没有涉及索引但商用关系数据库管理系统一般是支 持索引机制。
1. 建立索引
创建索引语句格式如下
CREATE [UNIQUE] [CLUSTER] INDEX索引名
ON 表名(列名[次序]);
表名要建索引的基本表的名字
索引可以建立在该表的一列或多列上各列名之间用逗号分隔
次序指定索引值的排列次序升序ASC降序DESC。缺省值ASC
UNIQUE此索引的每一个索引值只对应唯一的数据记录
CLUSTER表示要建立的索引是聚簇索引
2. 修改索引
修改索引语句格式如下
ALTER INDEX旧索引名 RENAME TO新索引名
3. 删除索引
索引一经建立就由系统使用和维护不需用户干预。如果面临频繁的数据增删改系统需要花费时间来维护索引 降低了查询效率。需要删除不必要的索引。删除时系统会从数据字典中删去有关该索引的描述。
删除索引语句格式如下 DROP INDEX 索引名;
3.3.4 数据字典
数据字典是关系数据库管理系统内部的一组系统表它记录了数据库中所有定义信息
关系模式定义、视图定义、索引定义
完整性约束定义
各类用户对数据库的操作权限
统计信息等
关系数据库管理系统在执行SQL的数据定义语句时实际上就是在更新数据字典表中的相应信息。