SQL 实验一

实验内容

 本节的主要内容是 :  

  1.  使用 CREATE 语句创建基本表 ; 
  2. 更改基本表的定义 ,增加列 ,删除列 ,修改列的数据类型 . 
  3. 创建表的升降序索引 . 
  4. 取消表,表的索引或表的约束. 

实验步骤 : 

  (1)  使用SQL 语句创建关系数据库表: 人员表 PERSON(P# ,Pname ,Page ,Pgender) 
                                                              房间表 ROOM (R#,Rname , Rarea) 
                                                              P-R (P#,R# ,Date)   
                其中P# 是表PERSON 的主建,具有唯一性约束 ; 大于18 
                R# 是 ROOM 的主建 ,具有唯一性约束
                P-R 表中 P#,R#是外键  ; 

CREATE TABLE PERSON
(P# CHAR(8) NOT NULL UNIQUE ,
Pname CHAR(20) NOT NULL UNIQUE,
Page INT, 
Pgender CHAR(8),
PRIMARY KEY(P#),CHECK(Page>18))

CREATE TABLE ROOM
(R# CHAR(8) NOT NULL UNIQUE , 
Rname CHAR(20),
Rarea CHAR(10),
PRIMARY KEY(R#))

CREATE TABLE PR
(P# CHAR(8) NOT NULL UNIQUE ,
 R# CHAR(8) NOT NULL UNIQUE ,
 Date Datetime,
 PRIMARY KEY(P#,R#),
 FOREIGN KEY(P#) REFERENCES PERSON ON DELETE CASCADE,   /*外键 */
 FOREIGN KEY(R#) REFERENCES ROOM ON DELETE CASCADE
 )

(2)更改表 PERSON , 增加属性Ptype (类型是 CHAR ,长度 10 ) , 取消 Page 大于18的约束. 把表 ROOM 中的属性Rname 的数据类型长度改成 30 ; 

ALTER TABLE PERSON ADD Rtype CHAR(10)  /* 增加Rtype属性*/  
ALTER TABLE PERSON DROP CK__PERSON__Page__51BA1E3A
ALTER TABLE ROOM ALTER COLUMN Rname CHAR(30)

 

这里在 取消page 大于18 这个约束的时候 , 由于我在定义约束时没有指定约束的名称,但是数据库会为这个约束起一个名称 .不同的时候创建名称可能不同. 要找到这个名字 在系统表约束里面找到 如上图 . 

修改完 : 

 

(3) 删除表 ROOM 的一个属性 Rarea  . 

ALTER TABLE ROOM DROP COLUMN Rarea 

(4) 取消表 PR 

DROP TABLE PR

(5) 为ROOM 表创建按 R# 降序排列的索引 , 

CREATE INDEX XCNO ON ROOM(R# DESC) /* 索引的名称 XCNO   DESC 是降序   ASC是升序*/

 在本例子中, 创建的索引名称为XCNO , 排列方式之一ASC(升序), DESC(降序) 两种 ,缺省为 ASC . 

(6) 为PERSON 表创建按 P# 升序排列的索引

CREATE INDEX XSNO ON PERSON(P#) 

(7) 创建表 Person 按P# 升序的唯一性索引 

CREATE UNIQUE INDEX RNUA ON PERSON(Pname ASC)

缺省值为CLUSTER   

(8) 取消PERSON 表P# 升序索引  

DROP INDEX PERSON.XSNO

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值