计算机科学专业数据库实验的代码
需积分: 0 31 浏览量
更新于2011-06-16
收藏 55KB DOC 举报
【数据库实验】是计算机科学与技术学院数据库课程的重要实践环节,旨在帮助学生深入理解数据库管理系统(DBMS)的工作原理和SQL语言的使用。通过实验,学生可以掌握如何创建数据库、定义数据表,以及进行单表和多表的查询操作。
在实验一中,主要涉及数据库的创建和表的定义。例如,创建名为`StudentCouresYYXXXX`的数据库,以及`StudentsYYXXXX`和`CoursesYYXXXX`两张表。`StudentsYYXXXX`表用于存储学生信息,包含学号(Sno)、姓名(Sname)、性别(Ssex)、出生日期(Sbirthday)和所在系(Sdept)等字段,其中学号为主键。`CoursesYYXXXX`表则记录课程信息,包括课程编号(Cno)、课程名称(Cname)、前置课程编号(PreCno)和学分(Credit)。另外还有一张关联表`SCYYXXXX`,用来存储学生选课信息,即学生学号(Sno)和课程编号(Cno),同时定义了外键约束,关联到`StudentsYYXXXX`和`CoursesYYXXXX`表。
实验二主要讲解了SQL查询语言的使用,分为单表查询和多表查询两部分:
(1)单表查询:
- 查询计算机系所有学生信息,使用`SELECT * FROM StudentsYYXXXX WHERE Sdept='计算机'`。
- 查找姓“李”的学生学号和姓名,利用`LIKE`操作符,如`SELECT Sno, Sname FROM StudentsYYXXXX WHERE sname LIKE '李%'`。
- 显示课程表中无前置课程的课程名,通过`IS NULL`判断,如`SELECT cname FROM CoursesYYXXXX WHERE PreCno IS NULL`。
- 获取不及格学生的学号,使用条件`Grade<60`,如`SELECT sno FROM SCYYXXXX WHERE Grade<60`。
- 查询选修特定课程的学生学号及成绩,用`OR`操作符,如`SELECT sno, grade FROM SCYYXXXX WHERE Cno='c1' OR Cno='c2'`。
- 计算计算机系学生的姓名及年龄,如`SELECT Sname, Sbirthday FROM StudentsYYXXXX WHERE Sdept='计算机'`。
- 找出1986-1987年间出生的计算机系学生,结合`BETWEEN`关键字,如`SELECT sname FROM StudentsYYXXXX WHERE Sdept='计算机' AND year(Sbirthday) BETWEEN 1986 AND 1987`。
- 查询姓“李”的前两个学生学号和姓名,用`TOP`限制返回行数,如`SELECT TOP 2 Sno, Sname FROM StudentsYYXXXX WHERE sname LIKE '李%'`。
- 计算选修两门以上课程的学生学号和课程数,运用`GROUP BY`和`HAVING`,如`SELECT Sno, COUNT(*) 课程数 FROM SCYYXXXX GROUP BY Sno HAVING COUNT(Cno)>=2`。
(2)多表查询:
- 查询选修了“数据库原理”的计算机系学生学号和姓名,通过`JOIN`操作连接`StudentsYYXXXX`、`SCYYXXXX`和`CoursesYYXXXX`表,如`SELECT s.Sno, Sname FROM StudentsYYXXXX s JOIN SCYYXXXX sc ON s.Sno=sc.Sno JOIN CoursesYYXXXX c ON sc.cno=c.cno WHERE Sdept='计算机' AND Cname='数据库原理'`。
- 获取每门课的间接前置课,用`LEFT JOIN`查找,如`SELECT c1.Cname, c2.PreCno FROM CoursesYYXXXX c1 LEFT JOIN CoursesYYXXXX c2 ON c1.PreCno=c2.Cno`。
- 输出学生学号、姓名、所选课程名称和成绩,这同样涉及多表连接,如`SELECT s.Sno, s.Sname, c.Cname, sc.Grade FROM StudentsYYXXXX s JOIN SCYYXXXX sc ON s.Sno=sc.Sno JOIN CoursesYYXXXX c ON sc.cno=c.cno`。
这些实验涵盖了基本的数据库操作,包括数据的增、删、改、查,以及更复杂的联接查询、聚合函数、分组和过滤等,有助于提升学生对数据库系统的实际操作能力和SQL语言的应用水平。
HaHa_hahaha
- 粉丝: 0
- 资源: 1
最新资源
- 环境监测系统源代码全套技术资料.zip
- 前端分析-2023071100789
- 前端分析-2023071100789
- 基于springboot的调查问卷管理系统源代码全套技术资料.zip
- MATLAB代码:计及碳排放交易及多种需求响应的微网 电厂日前优化调度 关键词:碳排放交易 需求响应 空调负荷 电动汽车 微网 电厂优化调度 参考文档:计及电动汽车和需求响应的多类电力市场下
- 全国高校计算机能力挑战赛往届真题整理
- 小程序毕业设计项目-音乐播放器
- MATLAB代码:考虑多微网电能互补与需求响应的微网双层优化模型 关键词:多微网 电能互补 需求响应 双层优化 动态定价 能量管理 参考文档:《自编文档》 仿真平台:MATLAB+CPLEX 主要
- 智慧校园后勤管理系统源代码全套技术资料.zip
- MATLAB代码:含多种需求响应及电动汽车的微网 电厂日前优化调度 关键词:需求响应 空调负荷 电动汽车 微网优化调度 电厂调度 仿真平台:MATLAB+CPLEX 主要内容:代码主要做的是一