实验1 数据库定义

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验1 数据库定义

实验目的

1、掌握SQL数据定义功能:数据库定义、表的定义、索引定义。实验内容

1、创建spj数据库

CREATE DATABASE SPJ;

CREATE TABLE S(

SNO CHAR(6) PRIMARY KEY,

SNAME VARCHAR(20) NOT NULL,

STATUS VARCHAR(50),

CITY VARCHAR(50)

);

CREATE TABLE P(

PNO CHAR(6) PRIMARY KEY,

PNAME VARCHAR(20) NOT NULL,

COLOR VARCHAR(2),

WEIGHT NUMERIC(9,2) CHECK(WEIGHT>0 AND WEIGHT<=100) );

(3) 工程项目表J

JNO CHAR(6) PRIMARY KEY,

JNAME VARCHAR(20) NOT NULL,

CITY VARCHAR(50)

);

SNO CHAR(6) NOT NULL,

PNO CHAR(6) NOT NULL,

JNO CHAR(6) NOT NULL,

QTY SMALLINT DEFAULT 100

);

2、创建school数据库

CREATE DATABASE SCHOOL;

CREATE TABLE Student(

SNO CHAR(7) PRIMARY KEY,

SNAME CHAR(10) NOT NULL,

SSEX CHAR(2) CHECK(SSEX=’男’ OR SSEX=’女’ ),

SAGE SMALLINT CHECK(SAGE>’15’ AND SAGE<’45’),

SDEPT VCGHAR(20) DEFAULT '计算机系'

);

CNO CHAR(10) PRIMARY KEY,

CNAME VARCHAR(20) NOT NULL,

CCREDIT SMALLINT CHECK(CCREDIT>’0’ ),

SEMSTER SMALLINT CHECK(SEMSTER>’0’),

PERIOD SMALLINT CHECK(PERIOD>’0’)

);

CREATE TABLE SC(

SNO CHAR(7),

CNO CHAR(10),

Grade SMALLINT CHECK(GRADE>’0’),

PRIMARY KEY (SNO,CNO), ,

FOREIGN KEY (SNO) REFERENCES Student(SNO),

FOREIGN KEY (CNO) REFERENCES Course(CNO)

);

3、对表结构进行修改

(1) 为零件表P增加一个规格列,数据类型为字符,长度50;

Alter Table P Add GUIGE char(50);

(2) 修改课程表Course的CNAME属性列的类型为V ARCHAR(30);

Alter Table Course COLUMN CNAME V ARCHAR(30);

(3) 为供应情况表SPJ添加参照完整性约束;

SPJ的SNO列参照S表SNO列

Alter Table SPJ Add Foreign Key (SNO) References S(SNO);

SPJ的PNO列参照P表PNO列

Alter Table SPJ Add Foreign Key (PNO) References P(PNO);

SPJ的JNO列参照J表JNO列

Alter Table SPJ Add Foreign Key (JNO) References J(JNO);

(4) 删除零件表P的规格列;

Alter Table P Drop Column GUIGE;

4、索引创建

(1) 在学生表Student的学号sno上建立聚簇索引;

create clustered index stuSno on Student(Sno)

(2) 在学生表Student中,为姓名sname建立非聚簇索引;

create index stuSname on Student(Sname)

(3) 在课程表的课程号Cno上建立唯一索引;

create unique index CoCno on Course(Cno)

(4) 在选课表的学号sno、成绩Grade上建立复合索引,要求学号为升序,学

号相同时成绩为降序;

create index SCsg on SC(Sno ASC,grade DESC)

(5) 用drop删除学生表Student的索引

drop index student.stuSno

drop index student.stuSname

实验总结

数据库的创建:create database 数据库名

创建表:create table 表名( 属性名数据类型[完整性约束条件])

修改表的属性列的类型:Alter Table 表名COLUMN 属性名数据类型;

为表添加参照完整性约束:

Alter Table 表名Add Foreign Key (属性名) References 表名(属性名);

删除表的列:alter table 表名drop column 属性名

在表的属性列上建立聚簇索引:create clustered index索引名on 表名(属性名)

在表的属性列上建立建立非聚簇索引:create index索引名on 表名(属性名)

在表的属性列上建立唯一索引:create unique index索引名on 表名(属性名)

在表的属性列上建立复合索引:create index 索引名on on 表名(属性名desc/asc)

删除表的索引:drop index 表名.索引名

相关文档
最新文档