logo资料库

数据库原理实验指导书及.sql源文件.doc

第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
资料共18页,剩余部分请下载后查看
实验一 SQL Server环境、数据定义与数据更新
实验二 数据查询
实验三 数据安全性
课程设计
辽东学院自编教材 《数据库原理》实验指导书 鲁琴 李荣霞 编 (信息管理与信息系统专业用) 信息技术学院 2011 年 1 月
目 录 实验一 SQL SERVER 环境、数据定义与数据更新............. 1 实验二 数据查询........................................................................6 实验三 数据安全性..................................................................10 课程设计...................................................................................... 12 1
实验一 SQL Server 环境、数据定义与数据更新 实验类型: 验证 实验课时: 2 指导教师: 时 间:20 年 月 日 课 次:第 节 教学周次:第 周 实验分室: 一、 实验目的 实验台号: 实 验 员: 1. 熟悉 SQL Server 2000 开发环境,了解各常用工具的使用。 2. 掌握数据库服务器的本机注册,熟悉网络中其他数据库服务器的注册。 3. 掌握数据库的创建、删除。 4. 熟练掌握命令方式下各种难度表的创建。 5. 掌握命令方式下不同类型索引的创建与删除。 6. 熟练掌握命令方式下对表中数据的增、删、改。 二、 实验内容及要求 要将所有实验内容写在“实验结果”,并在本实验完成时完成实验报告并上交。 1. 创建数据库 要求: (1) 创建的数据库名为你的姓名。 (2) 在默认路径下建库,能指出这个默认的路径。 (3) 会在某一盘符下以你的班级姓名学号命名的文件夹中创建数据库。 2. 定义基本表 要求: (1) 在建好的数据库中用命令方式创建三个关系,分别为学生关系 student、课程关系 course、 选课关系 sc。 (2) 学生关系的关系模式为:student(sid,sname,ssex,sage, sdept),各字段分别代表学号、姓名、 性别、年龄、所在系。sid 设为主键。 (3) 课程关系的关系模式为:course(cid,cname,credit),各字段分别代表课程号、课程名、学 分。cid 设为主键。 (4) 选课关系的关系模式为:sc(sid,cid,score), 各字段分别代表学号、课程号、成绩。cid 和 sid 为复和主键,sid 和 cid 为外键。 (5) 各字段数据类型要设置恰当,并对 ssex、score 设置合理的约束。 (6) 将建表命令存成脚本文件,可存为一个文件也可存为独立的多个脚本文件。 3. 修改基本表 要求: (1) 向 student 表增加“入学时间”列,其数据类型为日期型。 (2) 将 course 表中的 cname 列加宽到 60 个字符。 (3) *在 student 表中增加完整性约束定义,使 sage 取值在 15-40 之间。 (4) *增加课程名称必须取唯一值的约束条件。
(5) 删除 student 表中“入学时间”列。 4. 删除基本表 要求: *删除 sc 表。 5. 索引的建立、删除 要求: (1) 为表 sc 按学号升序和课程号降序建唯一索引 sci。 (2) *在实例数据库 pubs 中,为表 authors 在 au_id 上建立聚集索引。 (3) 删除表 sc 的索引 sci。 6. 插入数据 要求: 在建好的 3 个表 student,course,sc 中各插入 2 条记录,要求内容如下。用命令方式写出 相关命令(注意顺序): credit 3 4 score 54 70 sage 22 21 sdept 国际贸易 Course cid C801 C802 Sc sid 0009001 0009002 student sid 0009001 cname 高等数学 C++语言 cid C801 C802 sname 葛文卿 ssex 女 男 郑秀丽 0009002 7. 修改数据 要求: (1) 将“郑秀丽”的系改为“国际贸易”系。 (2) 将所有学生的成绩提高到原来的 1.1 倍。 (3) 将所有学生的年龄加 1 岁。 (4) 将“国际贸易”系所有学生的成绩置零。 8. 删除数据 要求: (1) 删除学号为“0009002”的学生记录。 (2) 删除所有学生选课记录。 (3) 删除计算机科学系所有学生的选课记录。 三、 实验结果 --创建基本表 --建立学生表 2
create table Student( sid char(7) not null primary key, sname char(5), ssex char(1), sage int, sdept char(20)); --建立课程表 create table Course( cid char(4) not null primary key, cname char(20), credit float,); --成绩表 create table Sc( sid char(7), cid char(4), score int, primary key(sid,cid), foreign key(sid)references Student(sid), foreign key(cid)references Course(cid)); --修改Course的cid长度,失败 alter table Course alter column cid char(4); --删除course表 drop table Course; --3.修改基本表 --向student表增加“入学时间”列,其数据类型为日期型 alter table Student add 入学时间 date; --将course表中的cname列加宽到个字符 alter table Course alter column cname varchar(60); --*在student 表中增加完整性约束定义,使sage取值在-之间 alter table Student --*增加课程名称必须取唯一值的约束条件 --删除student表中“入学时间”列 alter table Student drop column 入学时间; --5.索引的建立,删除 --为表sc按学号升序和课程号降序建唯一索引sci create unique index sci on Sc(sid asc,cid desc); --*在实例数据库pubs中,为表authors在au_id上建立聚集索引 --删除表sc的索引sci drop index Sc.sci; --6.插入数据 /*在建好的个表student,course,sc中各插入条记录 Course cid cname C801 高等数学 3 credit 3
C801 C802 54 70 C++语言 4 C802 Sc sid cid score 0009001 0009002 student sid sname 0009001 0009002 */ insert into Course(cid,cname,credit)values('C801','高等数学',3); insert into Course values('c802','c++语言',4); ssex 葛文卿 女 22 国际贸易 郑秀丽 男 21 sage sdept insert into Student(sid,sname,ssex,sage,sdept)values('0009001','葛文卿','女 ',22,'国际贸易'); insert into Student (sid,sname,ssex,sage,sdept)values('0009002','郑秀丽','男 ',21); --7.修改数据 --() 将“郑秀丽”的系改为“国际贸易”系es update Student set sdept='国际贸易' where sname='郑秀丽'; --() 将所有学生的成绩提高到原来的.1倍 update Sc set score=score*1.1; --() 将所有学生的年龄加岁 update Student set sage=sage+1; --() 将“国际贸易”系所有学生的成绩置零 update Sc set score=0 where sid in (select sid from Student where sdept='国际 贸易'); --8.删除数据 --(1) 删除学号为“0009002”的学生记录 DELECT FROM Student WHERE sid=’0009002’; --(2) 删除所有学生选课记录 Delect from Sc; --(3) 删除计算机科学系所有学生的选课记录 Delect from Sc where (select cid from Course where cname=’计算机科学’); 四、 实验中遇到的问题及解决方法 4
实验操作 报告书写 出勤和课堂纪律 课堂提问 (40%) (40%) (10%) (10%) 本次 实验 成绩 项目及比例 得分 成绩合计 教师签字: 批改日期: 5
实验二 数据查询 实验类型: 设计 实验课时: 2 指导教师: 时 间:20 年 月 日 课 次:第 节 教学周次:第 周 实验台号: 实 验 员: 实验分室: 一、 实验目的 1. 掌握查询的基本语法格式。 2. 熟练掌握单表查询。 3. 掌握连接查询。 4. 熟悉嵌套查询。 二、 实验内容及要求 要求将所有实验内容写在“实验结果”,并在本实验完成时完成实验报告并上交。 对实验一所创建的数据库中的三个表:student、course 和 sc,用 SQL 完成下面的操作。 1. 简单查询 (1) 查询全体学生的学号与姓名。 (2) *查询全体学生的姓名及其出生年份。 (3) *查询选修了课程的学生学号。 (4) 查询平均成绩大于 60 分的课程号和平均成绩。 (5) 查询考试成绩有不及格的学生的学号。 (6) 查询年龄不在 20-25 岁之间的学生学号、姓名和年龄。 (7) *查询计算机系、国际贸易系、数学系学生的姓名和性别。 (8) *查询有多少学生专业不确定。 (9) *查询所有姓刘的学生的姓名、学号和性别。 (10) 查询名字中第 2 个字为“阳”字的学生的学号、姓名。 (11) 查询所有不姓张的学生姓名。 (12) *查询选修课程号为“c801”或“c802”且分数不低于 90 分的学生的学号、课程号和成 绩。 (13) *查询没有考试成绩的学生的学号和课程号。 (14) *查询选修课程号为“c801”的学生的学号及成绩,按成绩降序排列。 (15) 查询选修了课程的学生人数。 (16) 查询各个课程号及相应的选课人数。 (17) 查询选修了 3 门以上课程的学生学号。 2. 复杂检索 (1) *查询单科成绩不及格的学生的学号、姓名、课程名、系别及成绩。 (2) *查询选修了 2 门以上课程的学生学号。 6
分享到:
收藏