c 数据库上机实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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表中的全部数据。