SQLServer实训
2015-10-23 16:48
363 查看
一、数据库hngy由下面8张表组成,每张表的设计结果如表1至8所示:
表1 院系信息表(DepartInfo)
表2 专业信息表(SpecialtyInfo)
表3 学生信息表(StudentInfo)
表4 教师信息表(TeacherInfo)
表5 课程信息表(CourseInfo)
表6 课程状态表(CourseStatus)
表7 学生成绩表(SC)
表8 用户信息表(UserInfo)
二、样本数据
1.院系信息表(DepartInfo)
2.专业信息表(SpecialtyInfo)
3.学生信息表(StudentInfo)
4.教师信息表( TeacherInfo)
5.课程信息表(CourseInfo)
6.课程状态表(CourseStatus)
7.学生成绩表(SC)
8.用户信息表(UserInfo)
三、设计内容:(所有的内容用PL/SQL语句实现)
1、创建表空间。表空间名字为SOFT_1或 SOFT_2。
2、将上面的表结构+约束+完整性建好,数据添加完整。
3、查询:
1) 查询全部学生的学号、姓名、课程名称、成绩。
2) 查询教师编号、教师姓名、课程名称、平均成绩。
3) 查询至少选修两门课程的学生学号。
4) 查询全部学生都选修的课程的课程号与课程名称。
5) 统计选修数据结构课程的学生的平均年龄。
6) 统计某位老师的所授课程的平均成绩。
7) 查询软件技术专业的不及格学生信息及课程信息。
8) 查询学生某个学期的所有成绩。
9) 查询某专业的学生的成绩。
4、用户自定义函数:
根据老师编号,统计其所授课程的平均成绩及学生人数。
5、数据库的新建:
数据库新建
新建表格
插入数据
表1 院系信息表(DepartInfo)
字段名 | 中文名 | 数据类型 | 长度 | 约束 |
DepNO | 院系编号 | Char | 4 | 主键,首字母为‘D’,后面为3位数字 |
DepName | 院系名 | Varchar | 30 | 非空 |
字段名 | 中文名 | 数据类型 | 长度 | 约束 |
SpeNO | 专业编号 | Char | 5 | 主键,首字母为‘S’,后面为4位数字 |
SpeName | 专业名 | varchar | 20 | 非空 |
DepNO | 院系编号 | Char | 4 | 外键 |
字段名 | 中文名 | 数据类型 | 长度 | 约束 |
StuNO | 学号 | char | 12 | 主键,全为数字,长度为12 |
StuName | 姓名 | varchar | 20 | 非空 |
Sex | 性别 | char | 2 | 默认值’男’,只能为男,或女 |
Birth | 出生年月 | datetime | ||
EnterDate | 入学年份 | int | 4 | |
SpeNO | 专业编号 | char | 5 | 外键 |
Address | 家庭住址 | varchar | 50 |
字段名 | 中文名 | 数据类型 | 长度 | 约束 |
TNO | 教师编号 | char | 5 | 主键,字段值以‘T’开头,后面为4位数字 |
TName | 姓名 | varchar | 20 | 非空 |
Sex | 性别 | char | 2 | 默认值’男’ |
Birth | 出生年月 | datetime | ||
Position | 职称 | char | 8 | 默认值为‘讲师’ |
DepNO | 院系编号 | char | 4 | 外键 |
Phone | 办公电话 | char | 13 | |
Email | 电子邮箱 | varchar | 50 |
字段名 | 中文名 | 数据类型 | 长度 | 约束 |
CNO | 课程编号 | char | 8 | 主键,全为数字 |
CName | 课程名 | varchar | 50 | 非空 |
Credit | 学分 | int | 1 | 非空 |
ClassHour | 学时 | int | 1 | 非空 |
字段名 | 中文名 | 数据类型 | 长度 | 约束 |
CNO | 课程编号 | char | 8 | 组合主键,外键 |
SpeNO | 专业编号 | char | 5 | 组合主键,外键 |
Semester | 学期 | int | 1 | |
Ctype | 课程类别 | varchar | 10 | |
OrdinarySc | 选课状态 | bit | 1 | |
TNO | 教师编号 | char | 5 | 外键 |
字段名 | 中文名 | 数据类型 | 长度 | 约束 |
StuNo | 学号 | char | 12 | 组合主键,外键 |
CNO | 课程编号 | char | 8 | 组合主键,外键 |
OrdinarySc | 平时成绩 | Float | 8 | |
EndSc | 期末成绩 | Float | 8 | |
TotalSc | 总评成绩 | Float | 8 |
字段名 | 中文名 | 数据类型 | 长度 | 约束 |
UserID | 用户ID | varchar | 20 | 主键 |
Password | 用户密码 | varchar | 20 | 非空 |
Identity | 用户身份 | varchar | 20 | 非空 |
1.院系信息表(DepartInfo)
DepNO | Depname |
D001 | 软件学院 |
D002 | 信息工程系 |
D003 | 经贸商务系 |
SpeNO | SpeName | DepNO |
S0001 | 软件技术 | D001 |
S0002 | 商务英语 | D003 |
S0003 | 计算机网络 | D002 |
StuNO | StuName | Sex | Birth | EnterDate | SpeNO | Address |
200302303055 | 孙浩 | 男 | 1983/12/4 | 2003 | S0001 | 长沙 |
200403044011 | 陆颖 | 女 | 1985/6/5 | 2004 | S0002 | 上海 |
200504435001 | 王斌 | 男 | 1984/9/3 | 2005 | S0003 | 长沙 |
TNO | TName | Sex | Birth | Position | DepNO | Phone | Email |
T0001 | 黄刚 | 男 | 1970/4/22 | 副教授 | D001 | (0731)4614888 | HG@163.com |
T0002 | 周倩 | 女 | 1981/11/5 | 助教 | D003 | (0731)4614881 | ZQ@126.com |
T0003 | 李小双 | 男 | 1976/3/20 | 讲师 | D002 | (0731)4614884 | LXS@21cn.com |
CNO | Cname | Credit | ClassHour |
08013901 | 数据结构 | 4 | 54 |
03123803 | 计算机网络 | 2 | 40 |
00467108 | BEC | 4 | 60 |
CNO | SpeNO | Semester | CType | OrdinarySc (1表已选0表未选) | TNO |
08013901 | D001 | 3 | 必修 | 1 | T0001 |
03123803 | D002 | 2 | 必修 | 1 | T0002 |
00467108 | D003 | 1 | 必修 | 1 | T0003 |
StuNo | CNO | OrdinarySc | EndSc | TotalSc |
200302303055 | 08013901 | 63.0 | 80.0 | 75.0 |
200403044011 | 00467108 | 85.0 | 88.0 | 87.6 |
200504435001 | 03123803 | 30.0 | 50.0 | 44.0 |
用户ID UserID | 用户密码 Password | 用户身份 Identity |
admin | Admin | Administrator |
teacherA | TeacherA | Teacher |
studentA | StudentA | Student |
1、创建表空间。表空间名字为SOFT_1或 SOFT_2。
2、将上面的表结构+约束+完整性建好,数据添加完整。
3、查询:
1) 查询全部学生的学号、姓名、课程名称、成绩。
2) 查询教师编号、教师姓名、课程名称、平均成绩。
3) 查询至少选修两门课程的学生学号。
4) 查询全部学生都选修的课程的课程号与课程名称。
5) 统计选修数据结构课程的学生的平均年龄。
6) 统计某位老师的所授课程的平均成绩。
7) 查询软件技术专业的不及格学生信息及课程信息。
8) 查询学生某个学期的所有成绩。
9) 查询某专业的学生的成绩。
4、用户自定义函数:
根据老师编号,统计其所授课程的平均成绩及学生人数。
5、数据库的新建:
数据库新建
新建表格
插入数据
相关文章推荐
- 使用SparkSQL实现多线程分页查询并写入文件
- Redis: 使用Sorted Set 解决游戏中有关排行问题
- IOS-19-数据库操作之(SQLite)的基础入门使用及demo源码
- SQL
- SQL Server Management Studio的对象资源管理器的使用
- oracle定时任务更新数据
- [C++]linux下使用occi连接oracle遇到的两个错误
- 数据库新建
- MySQL 函数 存储过程 操作
- oracle 数据闪回
- Oracle 结合rollup生成报表
- 一个表t,有个日期列d。需要写SQL,输出日期d。排序要求:d大于当前日期的在小于的之前,距离当前日期越进的在远的之前 。
- 基于Oracle的EntityFramework的WEBAPI2的实现(四)——自动生成在线帮助文档
- linux问题-Redis的安装以及常用命令
- Redis KVStore 在阿里云环境下的性能报告及问题
- JBoss7.1配置Oracle11g数据源,详细图解
- oracle存储过程语法
- Oracle中TO_DATE格式
- Oracle 自动同步数据脚本
- 使用wget下载Oracle的JDK