《数据库原理》实验报告
专 业 信息管理与信息系统
班 级
学 号
信息 1001
20100594
姓 名
彭振宇
指导教师
冯国奇
东北大学工商管理学院
二 OO 五年九月
实验一 数据库的建立与完整性
实验目的:熟悉网络和数据库环境;了解 SQL Server 的各组件的基本功能;掌握
如何在 SQL Server 中建立数据库及数据表;熟悉 SQL Server 数据表中可用的数据
类型;掌握数据库完整性的基本知识,以及如何在 SQL Server 中建立各种完整性。
实验内容:
(1) 熟悉 SQL Server 各组件的作用和使用方法;
(2) 在 SQL Server 中建立数据库及数据表;
(3) 在 SQL Server 中建立各种完整性约束。
实验记录:
1. 简述 SQL Server 2000 的组件及其功能。
SQL 查询分析器
使用 SQL 语句对本地或远程计算机数据库进行查询和修改。只要通过数据库
的身份认证,就可以对数据库进行该身份具有的权限的命令。企业管理器只能管
理本机上的 SQL 数据库,要想对远程计算机的数据库进行查询或修改就需要查询
分析器,通过身份认证登录远程计算机,发送 SQL 语句进行相应的数据查询与修
改。
SQL 企业管理器
对于数据库中的各种资源进行管理的一个操作界面
SQL 服务管理器
选择 SQL Sever 的相关服务器选项
—1—
2. 写出利用企业管理器建立学生成绩数据库的基本步骤。该数据库包括以下三个
表 格 : (1) 学 生 表 student (sno,sname,sage,sgender,sdept) ; (2) 课 程 表 course
(cno,cname,ccredit,cpno);(3) 选课表 sc (sno,cno,grade)。请为上述表格的各字段
指定合适的数据类型并写在下面。
—2—
3. 在数据库中有哪几种完整性约束,请简述如何利用企业管理器在学生成绩数据
库中建立各种完整性约束。(每种完整性约束举一例)
(1) 实体完整性
—3—
(2) 参照完整性
—4—
(3) 自定义完整性
—5—
实验二 结构化查询语言(SQL)基础
实验目的:通过实验了解 SQL 语言的分类;熟悉如何利用 SQL 语句建立和删除各
种数据库对象;掌握采用 SQL 进行数据表的查询和更新操作。
实验内容:
(1) 利用 SQL 语句建立数据表;
(2) 利用 SQL 语句进行数据库的查询和更新操作
实验记录:
1. SQL 语句有哪几种类型,各类型的主要作用是什么?
添加语句 INSERT INTO table_or_view [(column_list)] data_values
将新元组插入指定表中。
删除语句 DELETE FROM table_name WHERE search_condition
从指定表中删除满足 WHERE 子句条件的所有元组。
修 改 语 句 UPDATE
table_name SET column_name = { expression | DEFAULT |
NULL }[ ,...n ] [ FROM table_name [ ,...n ] ] WHERE searchcondition
修改指定表中满足 WHERE 子句条件的元组,如果省略元组则修改表中所有元组。
查询语句 SELECT select_list
FROM table_source
[ WHERE search_condition ]
[ GROUP BY group_by_expression ]
[ HAVING search_condition ]
[ ORDER BY order_expression [ ASC | DESC ] ]
从 FROM 子句指定的基本表或者视图中找出满足条件的元组,再按 SELECT 子
句中的目标列表达式,选出元组中的属性值形成结果表。
—6—
2. 学生--课程数据库中包括三个表。① 学生表:Student(Sno, Sname, Ssex, Sage,
Sdept);② 课程表:Course(Cno, Cname, Ccredit);③ 选课表:SC(Sno, Cno,
Grade)。请按照要求写出相应的 SQL 语句。
(1)查询计算机系年龄在 20 岁以下的学生的姓名
select sname
from student
where sage<20 and sdept='计算机'
(2)查询姓刘且全名为三个汉字的学生的姓名
select sname from student where student.sname like '刘____'
(3)查询选修了 3 号课程的学生的学号及其成绩,查询结果按分数的降序排列。
select sno,grade
from sc
where cno='3'
order by grade desc
(4)查询选修了 3 门以上课程的学生的学号
Select sno
From sc
Group by sno
Having count(*)>3
(5)查询选修 2 号课程且成绩在 90 分以上的学生学号和姓名
Select student.sno,sname
From student,sc
Where student.sno=sc.sno and
Sc.cno=’2’ and sc.grade>90
(6)查询与刘晨在同一个系学习的学生的学号、姓名(要求用子查询实现)。
Select student.sno,sname,sdept
—7—