计算机科学专业数据库实验的代码
需积分: 0 192 浏览量
更新于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
最新资源
- 基于蒙特卡洛模拟与半不变量法的电力系统概率潮流计算程序:考虑光伏不确定性,分析IEEE34节点系统电压与潮流概率特性 ,电力系统随机潮流计算MATLAB程序包含蒙特卡洛模拟法与半不变量法,在光伏不确定
- mysql-installer-community-8.0.18.0.msi
- 深度学习驱动的电动车头盔佩戴检测系统:完整源码与数据集的集成解决方案,深度学习驱动的电动车头盔佩戴检测系统:完整源码与数据集的集成解决方案,基于深度学习YOLOv8+Pyqt5的电动车头盔佩戴检测系统
- IMDb 韩国电视剧及用户评论数据集.zip
- 无功补偿仿真实例: 使用Simulink与MATLAB仿真无功补偿SVG,附有详细文档,基于Simulink与Matlab的无功补偿SVG仿真研究-完整仿真过程与说明文档,无功补偿仿真,simuli
- C++实现扩展卡尔曼滤波器估计移动物体的位置和速度源码+使用教程(自动驾驶汽车项目).zip
- 軟體比對參考腳本,輸出電腦中的軟件和系統信息
- 基于DH参数的UR5机械臂PID轨迹跟踪控制及Simscape物理仿真:角度、速度、加速度与力矩分析,误差曲线展示,UR5机械臂PID轨迹跟踪控制技术:六自由度Simscape物理仿真与DH参数分析的
- 基于卡尔曼滤波跟踪自由落体的速度matlab源码实现-高度曲线(课程作业).zip
- 最佳阿尔茨海默氏症MRI数据集(99%准确率).zip
- E000704金融股权投资类企业网站模板+PHP+Mysql+易优+CMS+建站模板
- 将 Linux 系统配置成为一台 IPv4 路由器 具备 RIP、OSPF(单区域)和路由重分配功能
- 中国地图GeoJSON
- 自动生成爱心,让你的三八节表达爱意有乐趣
- 1737773274623_ NOUV1WnbhDPACrd11NUVOb14GN4+AF+wJggYPBDWg.jpg
- 让你的三八节表达爱意有乐趣,自动生成会动的爱心