内容发布更新时间 : 2025/1/6 17:06:55星期一 下面是文章的全部内容请认真阅读。
《数据库技术》上机实验
实验三 数据库及数据库表的创建与管理
一、实验目的
熟悉和掌握数据库的创建和连接方法; 熟悉和掌握数据表的建立、修改和删除;
加深对表的实体完整性、参照完整性和用户自定义完整性的理解。
二、实验软件平台
Windows XP/7/8/10操作系统; 安装了SQL SERVER
三、实验内容
背景材料:在以下实验中,使用学生-课程数据库(school),它描述了学生的基本信息、课程的基本信息及学生选修课程的基本信息。(要求使用命令的方式创建) 1. 创建学生-课程数据库 create database school 2. 创建学生关系表S: 学号 Sno 姓名 Sname 性别 Ssex 年龄 Sage 所在系 Sdept Sno:char(9) Sname: varchar(6) Ssex:char(2) Sage:tinyint Sdept:char(2) Sno为主键,姓名不能为空,性别只能取男或女,年龄大于等于0。 3. 创建课程关系表C: 课程号 Cno 课程名 Cname 先行课 Cpno 学分 Ccredit Cno:varchar(3) Cname:varcha(20) Cpno:varchar(3) Ccredit:tinyint Cno为主键,课程名不能为空,先行课可以为空,学分大于等于0 4. 创建课程关系表SC: 学号 Sno 课程号 Cno 成绩 grade Sno:char(9) Cno:varchar(3) grade: float
主键是课程号和学号 思考?成绩可以为空么?为什么?
5. 将以上创建表S、C、SC的SQL命令以.SQL文件的形式保存在磁盘上。[文件操作的方
式直接保存即可,这部分不用写在“四 实验结果”中]
温馨提示:到这部分内容做完为止,可以用数据库的备份功能将所建好的数据库及数据库表完全备份下来,下周的实验课程会利用这个表结构。或者直接保存题5的SQL语句也可以,下次课直接执行这些sql文件,也可以达到保存的目的。
6. 在表S上增加“出生日期”属性列。 7. 删除表S的“年龄”属性列。
8. 删除表SC,利用磁盘上保存的.SQL文件重新创建表SC。 9. 修改C表,将学分的约束改为0到5之间
10. 修改S表的性别的类型,设置为char(1),并将约束改为0和1
四 实验结果
1 create database school 2 create table s(
sno char(9) primary key, sname varchar(6) not null,
Ssex char(2) check([Ssex]='男'or[Ssex]='女'), sage tinyint check(sage>0), )
3 create table C(
cno varchar(3) primary key, cname varchar(20) not null, Cpno varchar(3),
Ccredit tinyint check(ccredit>0), )
4 create table SC(
sno char(9) primary key, Cno varchar(3) not null, Cpno varchar(3),
Ccredit tinyint check(ccredit>0), )
6 alter table s add bith varchar(15)
7 alter table S drop column Sage 8 drop table SC 9 alter table C Add constraint thjr
Check(Ccredit>=0 and Ccredit<=5)
10 alter table s
alter column ssex char(1) alter table s
add constraint lllll check(ssex=0 or ssex=1)
五 思考题
1、 定义表结构是对数据模型的哪个要素进行描述,对主属性有什么要求?
答:完整性约束
可以唯一标识一个元组的最少的属性
2、修改表结构时,能否修改已定义属性的参数?新增加的属性列能否定义为非空?为什么?
答:数据库表,修改表不能修改已经定义的属性参数,但是可以通过修改表的结构来修改已定义的性
参数。
不能
表中原本有数据(存在很多行),在你新增加非空字段后,原来存在的行中的数据本来为空,果又要求它非空,这样就矛盾了。
如