c 数据库上机实验

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

附录C 上机实验

第4章上机实验

----------------------陈宇超,仅供参考------------------------------

下列实验均使用SQL Server 的SSMS工具实现。

1.用图形化方法创建符合如下条件的数据库(创建数据库的方法可参见本书附录A):数据库名为:学生数据库

主要数据文件的逻辑文件名为:Students_data,存放在D:\Data文件夹下(若D:盘中

无此文件夹,请先建立此文件夹,然后再创建数据库。),初始大小为:5MB,增

长方式为自动增长,每次增加1MB。

日志文件的逻辑文件名字为:Students_log,也存放在D:\Data文件夹下,初始大小

为:2MB,增长方式为自动增长,每次增加10%。

2.选用已建立的“学生数据库”,写出创建满足表C-1到4-4条件的表的SQL语句,并执行所写代码。(注:“说明”部分不作为表定义内容)

列名说明数据类型约束Sno学号普通编码定长字符串,长度为7主键

Sname姓名普通编码定长字符串,长度为10非空

Ssex性别普通编码定长字符串,长度为2取值范围:{男,女}

Sage年龄微整型(tinyint)取值范围:15-45

Sdept所在系普通编码不定长字符串,长度为20默认值为“计算机系”

Sid身份证号普通编码定长字符串,长度为10取值不重

Sdate入学日期日期默认为系统当前日期

列名说明数据类型约束Cno课程号普通编码定长字符串,长度为10主键

Cname课程名普通编码不定长字符串,长度为20非空

Credit学时数整型取值大于0

Semester学分小整型

列名说明数据类型约束Sno学号普通编码定长字符串,长度为7主键,引用Student的外键Cno课程号普通编码定长字符串,长度为10主键,引用Course的外键Grade成绩小整型取值范围为0-100

表C-4 Teacher表结构

列名说明数据类型约束Tno教师号普通编码定长字符串,长度为8非空

Tname教师名普通编码定长字符串,长度为10非空

Salary工资定点小数,小数点前4位,小数点后2位

3. 写出实现如下功能的SQL语句,并执行所写代码,查看执行结果。

(1)在Teacher表中添加一个职称列,列名为:Title,类型为nchar(4)。

ALTER TABLE Teacher ADD Title VARCHAR(4)

(2)为Teacher表中的Title列增加取值范围约束,取值范围为:{教授,副教授,讲师}。

ALTER TABLE Teacher ADD CONSTRAINT Title CHECK(Title IN('教授','副教授','讲师'))

(3)将Course表中Credit列的类型改为:tinyint。

注意:这里首先需要先删除Credit的约束,修改完数据类型后再重新添加约束项

ALTER TABLE Course DROP CONSTRAINT CK__Course__Credit__2B3F6F97

ALTER TABLE Course ALTER COLUMN Credit TINYINT

ALTER TABLE Course ADD CONSTRAINT Credit CHECK (Credit>0)

(4)删除Student表中的Sid和Sdate列。

注意:这里首先需要先删除约束

ALTER TABLE Student DROP CONSTRAINT

UQ__Student__CA1E5D79B3204FCF

ALTER TABLE Student DROP CONSTRAINT DF__Student__Sdate__3B75D760 ALTER TABLE Student DROP COLUMN Sdate,Sid

(5)为Teacher表添加主键约束,其主键为:Tno。

ALTER TABLE Teacher ADD PRIMARY KEY(Tno)

※建立数据库主要文件和日志文件

※我们可以看到D盘增加了主要数据文件.mdf和日志文件.ldf

※给students_data建立表格

create table Student(

Sno char(7),

Sname char(10)not null,

Ssex char(2)check(Ssex='男'or Ssex='女'),

Sage tinyint check(Sage>14 AND Sage<46),

Sdept varchar(20)default'计算机系',

Sid char(10)unique,--身份证号

Sdate date default getdate()

primary key(Sno)

)

create table Course(

Cno char(10)primary key,

Cname varchar(20)not null,

Credit int check (Credit>0),

Semester tinyint,

)

create table SC(

Sno char(7),

Cno char(10),

Grade tinyint check(Grade>=0 AND Grade<=100)

foreign key(Sno)references Student(Sno),

foreign key(Cno)references Course(Cno)

)

create table Teacher(

Tno char(8)not null,

Tname char(10)not null,

Salary decimal(6,2)

)

第5章上机实验

本实验均在SQL Server 的SSMS工具中实现。首先在已创建的“学生数据库”中创建本章表5-1~5-3所示的Student、Course和SC表,并插入表5-4~5-6所示数据,然后编写实现如下操作的SQL语句,执行所写的语句,并查看执行结果。

有关建表及所需要的数据,见本章末尾

1.查询SC表中的全部数据。

相关文档
最新文档