(二)SQL数据模式、表、索引的建立与删除

来源:互联网 发布:淘宝网鞋子帆布鞋 编辑:程序博客网 时间:2024/06/10 04:38

一、模式的定义与删除

1.定义模式 

 CREATE SCHEMA <模式名> AUTHORIZATION <用户名>

如果没有指定<模式名>,那么<模式名>隐含为<用户名>

例如:定义一个学生—课程模式S-T

CREATE SCHEMA S-T AUTHORIZATION WANG;

为用户WANG定义了一个模式S-T.

定义模式实际上定义了一个命名空间,在这个空间中可以进一步定义该模式包含的数据库对象,例如基本表、视图、索引等。

2.删除模式

DROP SCHEMA <模式名><CASCADE|RESTRICT>

其中CASCADE、RESTRICT两者必选一个

.选择CASCADE(级联),表示再删除模式的同时把该模式中所有的数据库对象全部一起删除

.选择RESTRICT(限制),表示如果该模式中已经定义了下属的数据库对象,则拒绝执行该删除语句。

例如:DROP SCHEMA S-T CASCADE;

      该语句删除了模式S-T。同时把该模式下的表、视图等删除。

二、基本表的定义、删除与修改

 1.定义基本表

CREATE TABLE <表名> (<列名> <数据类型> [列级约束条件],                     <列名> <数据类型> [列级约束条件],                     ……                                                                     [<表级约束条件>]);


建立一个"课程"表Course。
   CREATE TABLE Course(Cno CHAR(4) PRIMARY KEY,             /*列级完整性约束条件,Cno是主码*/                       Cname CHAR(40),                       Cpno CHAR(4),                                       /*Cpno的含义是先修课*/                       credit SMALLINT,                       FOREIGN KEY (Cpno) REFERENCES Course(Cno)         /*表级约束性条件,Cpno是外码,被参照表是Course,被参照列是Cno*/                   );

                              

2.修改基本表

 ALTER TABLE <表名> [ADD <新列名><数据类型>[完整性约束]] [DROP <完整性约束名>] [ALTER COLUMN <列名> <数据类型>];
向 Course表增加“开始时间”列,将其数据类型为日期型 
 ALTER TABLE Course ADD C_start DATE;
将Ccredit 分数的数据类型由短整数改为整数
ALTER TABLE Course ALTER COLUMN Ccredit INT ;
增加课程名称必须取唯一值得约束条件
ALTER TABLE Course ADD UNIQUE(Cname);

3.删除基本表

 DROP TABLE <表名> [RESTRICT|CASCADE]
   .选择RESTRICT :则该表的删除是有限制条件的。欲删除的基本表不能被其他表的约束所引用(如 CHECK,FOREIGN KEY等约束,不能有视图,不能有触发器,不能                       有存储过程或者函数等。如果存在这些依赖该表的对象,则此表不能被删除。
    .选择CASCADE:则该表的删除没有限制条件。在删除基本表的同时,相关的依赖对象,如视图,都被删除。
          不同的数据库在遵循SQL标准的基础上具体实现细节和处理策略会与标准有差别:

                                                                                 (该表取自《数据库系统概论 第四版》p89)

三、索引的建立与删除

 1、建立索引

CREATE  [UNIQUE] [CLUSTER] INDEX <索引名> ON <表名>(<列名>[<次序>],[,<列名>[<次序>]]……);
. 其中,<表名>是要建索引的基本表的名字。索引可以建立在该表的一列过着多列上,各列之间用逗号分隔。每个<列名>后面还可以用<次序>指定索引值的排列次                            序,可选用ASC(升序)或DESC(降序),缺省值为ASC。
.UNIQUE表明此索引的每一个索引值只对应唯一的数据记录。
.CLUSTER表示要建立的索引是聚簇索引。所谓的聚簇索引是指索引项的顺序与表中记录的物理顺序一致的索引组织。
   例如: CREATE CLUSTER INDEX Coursename ON Course(Cname);
          将会在Course表的Cname列上建立一个聚簇索引,而且Course表中的记录将按照Cname值得升序存放。

2、删除索引

  DROP INDEX <索引名>;
  例如: 删除Course表的Coursename索引
  DROP INDEX Coursename;
     删除索引的同时,系统会同时从数据字典中删去有关该索引的描述
1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 宝宝吃了润肤乳怎么办 奶瓶很难吸出奶怎么办 2个月宝宝奶睡怎么办 孕四个月轻度缺碘怎么办 宝宝吃了奶粉呕吐怎么办 宝宝吃奶只含乳头怎么办 母乳流的太快怎么办 两个月小孩乳头混淆了怎么办 喂奶期间乳房有肿块怎么办 宝宝只吃乳头不吃奶嘴怎么办 宝宝只吃一个乳头怎么办 宝宝只吃乳头不吃奶瓶怎么办 给泰迪奶狗喂奶呛到了怎么办 奶壶喂奶呛到了怎么办 宝宝喝奶瓶老是呛到怎么办 两个月宝宝睡偏头了怎么办 婴儿吐奶豆花状怎么办 吃母乳乳头破了怎么办 顺产后仰卧睡了怎么办 宝宝含着母乳睡怎么办 刚出生的孩子不吃母乳怎么办 月子里挤奶手痛怎么办 做完月子之后腿疼腰疼怎么办 腰疼引起的腿疼怎么办 上网上久了脑袋痛怎么办 莲花坐的脚麻怎么办 月子腿疼膝盖疼怎么办 做月子腿着凉了怎么办 出月子大腿根酸怎么办 出了月子腰酸痛怎么办 出了月子腿没劲怎么办 生完孩子后缺钙怎么办 生完孩子腿疼怎么办 生完孩子后腿疼怎么办 生完孩子肛门突出怎么办 生完孩子肋骨突出怎么办 蛙跳理蛙跳后腿疼怎么办 蛙跳两天后腿还疼怎么办 莲花菩提盘黑了怎么办 体育课蛙跳后肌肉拉伤怎么办 o型腿骨头弯了怎么办