本章讲解以下四部分:
1,SQL模式的创建和撤消
2,基本数据类型
3,基本表的创建、修改和撤消
4,索引的创建和撤消
SQL模式的创建和撤消
SQL模式的创建可用CREATE SCHEMA语句定义,其基本句法如下:
CREATE SCHEMA〈模式名〉AUTHORIZATION〈用户名〉
DROP语句的句法如下:
DROP SCHEMA〈模式名〉[CASCADE│RESTRICT]
其方式有两种:
1,
CASCADE (级联式)方式。执行DROP语句时,把SQL模式及其下属的基本表、视图、索引等所有元素全部撤销。
2,
RESTRICT (约束式)方式。执行DROP语句时,只有当SQL模式中没有任何下属元素时,才能撤销SQL模式,否则,拒绝执行DROP语句。
现在我们已不采用“SQL模式”这个名词,一般都是创建数据库“CREATE DATABASE”和删除数据库“DROP DATABASE”
基本数据类型
SQL提供的主要数据类型(也称为“域类型”)有:
(1)数值型
(2)字符串型
(3) 位串型
(4) 时间型
基本表的创建、修改和撤消
必须先建立数据库后,才可以在库里建立基本表。对基本表结构的操作有创建、修改的撤销三种操作。
基本表的创建创建基本表,可用“CREATE TABLE”语句实现。
CREATE TABLE 基本表名
(列名 类型,
……
完整性约束,
……)
完整性约束主要有三种子句:主键子句(PRIMARY KEY)、外键子句(FOREIGN KEY)和检查子句(CHECK)。
示例:教学数据库中有三个基本表:
S(S#,SNAME,AGE,SEX)
SC(S#,C#,GRADE)
C(C#,CNAME,TEACHER)
基本表S(S#,SNAME,AGE,SEX)可用下列语句创建:
CREATE TABLE S
(S# CHAR(4) NOT NULL,
SNAME CHAR(8) NOT NULL,
AGE SMALLINT,
SEX CHAR(1),
PRIMARY KEY(S#));
基本表C可以用下列语句或直接在SQLSERVER2000的企业管理器中实现。
CREATE TABLE C
(C# CHAR(4),
CNAME CHAR(10) NOT NULL,
TEACHER CHAR(8),
PRIMARY KEY(C#))
基本表SC可以用以下语句创建
CREATE TABLE SC
(S# CHAR(4),
C# CHAR(4),
GRADE SMALLINT,
PRIMARY KEY(S#,C#),
FOREIGN KEY(S#) REFERENCES S(S#),
FOREIGN KEY(C#) REFERENCES C(C#),
CHECK(GRADE BETWEEN 0 AND 100))
基本表结构的修改增加新的列用“ALTER … ADD …”语句,其句法如下:
ALTER TABLE <基本表名 > ADD <列名 > <类型 >
删除原有的列用“ALTER … DROP …”语句,句法如下:
ALTER TABLE <基本表名 > DROP <列名 >[CASCADE│RESTRICT]
此处CASCADE方式表示:在基本表中删除某列时,所有引用到该列的视图和约束也要一起自动地被删除。而RESTRICT方式表示在没有视图或约束引用该属性时,才能在基本表中删除该列,否则拒绝删除操作。
修改原有列的类型、宽度用“ALTER‥‥ MODIFY‥‥” 语句,句法如下:
ALTER TABLE <基本表名 > MODIFY <列名 > <类型 >
例3.2 在基本表S中增加一个地址(ADDRESS)列,可用下列语句:
ALTER TABLE S ADD ADDRESS VARCHAR(30);
应注意,新增加的列不能定义为“NOT NULL”。基本表在增加一 列后,原有元组在新增加的列上的值都被定义为空值(NULL)。
例3.3 在基本表S中删除年龄(AGE)列,并且把引用该列的所有视图和约束也一起删除,可用下列语句:
ALTER TABLE S DROP AGE CASCADE;
例3.4 在基本表S中S# 的长度修改为6,可用下列语句:
ALTER TABLE S MODIFY S# CHAR(6);
基本表的撤消撤消语句的句法如下:
DROP TABLE <基本表名 >[CASCADE│RESTRICT]
此处的CASCADE、RESTRICT的语义同前面句法中的语义一样。
索引的创建和撤消
索引是建立在表的列上的一种数据库现象,为表中的数据提供逻辑关系,从而提高数据的访问速度。如果不建立索引,则当查询数据时sqlserver会读取每一行每一列的数据才能找出目标行。索引就象目录一样,可用简明的信息指出数据所在位置。但索引的功能仅限于查询的时候起作用。
经验:表中大多数索引是建立在主键上的,索引可以是一个字段,也可以多个字段组成索引
索引的创建创建索引可用“CREATE INDEX”语句实现。其句法如下:
CREATE [UNIQUE] INDEX <索引名 > ON <基本表名 >(列名表)
对基本表S建立一个索引:
CREATE INDEX INDEX_S ON S(S#)
如果要求列S#的值在基本表S中不重复,那么需在INDEX前加上保留字UNIQUE
CREATE UNIQUE INDEX INDEX_S ON S(S#)
索引的撤消当索引不需要时,可以用“DROP INDEX”语句撤消,其句法如下:
DROP INDEX <索引名 >
例:撤销索引INDEX_S
DROP INDEX INDEX_S
经验:sqlserver中撤销索引时前面要在索引名前加上表名,oracle不需要带表名。=