1.模式的定义与删除
(1)定义语句:CREATE SCHEMA <模式名> AUTHORIZATION <用户名>;
示例:为用户WANG定义一个学生-课程模式 S-T
CREATE SCHEMA “S-T” AUTHORIZATIONA WANG;
(2)如果没有指定<模式名>,那么<模式名>隐含为<用户名>。
(3)要创建模式,调用该命令的用户必须拥有数据库管理权限,或者获得了数据库管理员授予的CREATE SCHEMA的权限
(4)在CREATE SCHEMA中可以接收CREATE TABLE,CREATE VIEW和GRANT子句
示例:为用户ZHANG创建一个模式TEST,并在其中定义一个表TAB1。
CREATE SCHEMA TEST AUTHORIZATIONA ZHANG
CREATE TABLE TEB1(COL1 SMALLINT,
COL2 INT,
COL3 CHAR(20),
COL4 NUMERIC(10,3),
COL5 DECIMAL(5,2)
);
(5)删除模式
DROP SCHEMA <模式名><CASCADE|RESTRICT>
//CASCADE(级联),RESTRICT(限制)
2.基本表的定义与删除
(1)定义基本表:
CREATE TABLE<表名>(<列名><数据类型>[列级完整性约束条件]
[,<列名><数据类型>[列级完整性约束条件]]
…………
[,<表级完整性约束条件>];
例子:建立一个学生表
CREATE TABLE Student
(Son CHER(9) PRIMARYKEY, //Son是主码
Sname CHAR(20) UNIQUE, //Sname取值唯一
Ssex CHER(2),
Sage SMALLINT,
Sdept CHAR(20)
);
(2)模式与表
关系:每个基本表都属于一个模式,一个模式可以包含多个基本表
定义基本表模式的方法:
1.在表名中明显的给出模式名:CREATE TABLE “S-T”.Student //Student所属的模式是S-T
2.在创建模式语句中同时创建表
3.设置所属模式,这样在创建表时表名中不必给出模式名
显示当前搜索路径:SHOW search_path;
管理员设置搜索路径:SET search_path TO “S-T”,PUBLIC;
(3)修改基本表:
ALTER TABLE<表名>//修改表
[ADD [COLUMN]<新列名><数据类型>[完整性约束]//增加新列
[ADD <表级完整性约束>]//添加表级完整性约束
[DROP [COMULN] <列名> [CASCADE|RESTRICT]//删除列
[DROP CONSTRAINT<完整性约束名> [CASCADE|RESTRICT]]//用于删除指定的完整性约束条件
[ALTER COLUMN <列名><数据类型> ];//用于修改原有的列定义,包括修改列明和数据类型
列子:
1.向Student表增加“入学时间”列,其数据类型为日期型
ALTER TABLE Student ADD S_entrance DATE;
2.将年龄的数据类型由字符型(假设原来的数据类型是字符型)改为整数
ALTER TABLE Student ALTER COLUMN Sage INT;
3.增加课程名称必须取唯一值的条件
ALTER TABLE Conurse ADD UNIQUE(Cname);