1.职工表:Employee:
ID   Name   Department Job Email Password
10000 李明   SBB
10001 李筠平 LUK
11045 李洁   SBB
10044 胡斐   MTD
10009 徐仲刚 SBB
10023 李燕   SBB
20460 陆明生 MTD
20078 张青   MMM
20001 李立   LUK

2.培训表:Train:
CourseID ID    Course  Grade TOrder
1        10001  T-SQL   60
3        11045  Oracle  71
2        20460  Java    34
1        10003  T-SQL   59
3        10001  Oracle  90
2        20001  Java    12
2        20078  Java    78
2        10003  Java    78
3        30001  Oracle  71
3        20048  Oracle  36

1、建表Employee与Train,分析这两个表的结构,自行设置主键。
create table employee(
                      ID int primary key,
                      name varchar2(30),
                      department char(10),
                      job varchar2(20),
                      Email varchar2(30),
                      Password varchar2(10));
create table Train (
                    courseID int,
                    ID int,
                    course varchar2(10),
                    grade int,
                    Torder char(10));

2、用Insert SQL语句把上述两表的数据分别插入建好的表。
insert into employee values(10000 ,'李明','SBB',' ',' ',' ');
insert into employee values(10001,'李筠平','LUK',' ',' ',' ');
insert into employee values(11045,'李洁','SBB',' ',' ',' ');
insert into employee values(11044,'胡斐','MTD',' ',' ',' ');
insert into employee values(10009,'徐仲刚','SBB',' ',' ',' ');
insert into employee values(10023,'李燕','SBB',' ',' ',' ');
insert into employee values(20460,'陆明生','MTD',' ',' ',' ');
insert into employee values(20078,'张青','MMM',' ',' ',' ');
insert into employee values(20001,'李立','LUK',' ',' ',' ');

insert into Train values(1,10001,'T-SQL',60,' ');
insert into Train values(3,11045,'Oracle',71,' ');
insert into Train values(2,20460,'Java',34,' ');
insert into Train values(3,10001,'Oracle',90 ,' ');
insert into Train values(1,10003,'T-SQL',59,' ');
insert into Train values(2,20001,'Java',12,' ');
insert into Train values(2,20078,'Java',78 ,' ');
insert into Train values(2,10003,'Java',78 ,' ');
insert into Train values(3,30001,'Oracle',71 ,' ');
insert into Train values(3,20048,'Oracle',36 ,' ');

3、统计出各部门的人数和各部门姓“李”的人数,用一条SQL语句完成。

select a.dept,a.sum,b.Li
from ( select department dept,count(id) sum
       from employee
       group by department) a left join (select department dept,count(id) Li
          from employee
          where name like '李%'
          group by department) b on a.dept=b.dept;
4、列出所有员工参加培训的情况,要求显示ID、Name、Department、Course,用一条SQL语句完成。
select a.ID,a.name,a.department,b.course from employee a,Train b where a.ID=b.ID;

5、筛选出未参加培训的人员名单,按职工表的格式显示,用一条SQL语句完成。
select *
from employee
where employee.ID not in(select ID from Train);

6、更新员工的Email,规则为:员工所在部门名称加员工姓名再加“@163.com”,用一条SQL语句完成。
oracle:select department||name||'@163.com' as email from employee;
mysql:select concar(department,name,'@51testing.com') as email from employee;

7、列出所有各课成绩最高的员工信息,要求显示EID、Name、Department、Course、Grade,用一条SQL语句完成。
select E.ID EID,E.name,E.department,T.course,T.grade

from employee E, Train T,(select ID,course from Train

where  not exists(select ID from Train t2

where Train.course=t2.course and Train.grade <t2.grade)) as A

where A.ID=T.ID and E.ID =A.ID and A.course=T.course;
或者
select T.ID,M.course,T.grade,E.name,E.department
from employee E,Train T,(select course,max(grade) maxgrade                         
                        from Train
                        group by course) M
where M.course=T.course and T.grade =M.maxgrade and T.ID=M.ID;

8、把所有Train有但Employee没有的员工编号插入到职工表中,用一条SQL语句完成。
oracle:
insert into employee(ID)
select t2.ID from employee t1,Train t2
where t2.ID not in(select t1.ID 
                   from employee t1);
Mysql:
replace employee(ID)
select t2.ID from employee t1,Train t2
where t2.ID not in(select t1.ID 
                   from employee t1);
9、分析Train与Employee的关系,建立表1与表2之间的引用关系并实现级联操作。
oracle:
alter table Train
add constraint fk_train ID references employee(ID) on delete cascade;
Mysql:              
alter table Train add constraint fk_train foreign key(ID) references employee(ID)
on delete cascade;
10、统计列印各门课程成绩各分数段人数:
    课程ID,课程名称,[100-85],[84-70],[69-60],[<60]
select distinct T.course, T.courseID,A.[100-85]
from Train T,(select ID,count(ID) as [100-85]
              from Train              
              where grade between 85 and 100 group by ID) A
where T.ID=A.ID;

select distinct T.course, T.courseID,A.[84-70]
from Train T,(select ID,count(ID) as [84-70]
              from Train              
              where grade between 70 and 84 group by ID) A
where T.ID=A.ID;

select distinct T.course, T.courseID,A.[69-60]
from Train T,(select ID,count(ID) as [69-60]
             from Train            
             where grade between 60 and 69 group by ID) A
where T.ID=A.ID;

select distinct T.course, T.courseID,A.[<60]
from Train T,(select ID,count(ID) as [<60] 
            from Train
            where grade < 60  group by ID) A
where T.ID=A.ID;

11、按各科不及格率的百分数从低到高和平均成绩从高到低顺序,统计并列印各科平均成绩和不及格率的百分数(用"N行"表

示): (就是分析哪门课程难)
    课程ID,课程名称,平均成绩,不及格百分数

select distinct T.course, T.courseID,average,A.HC/C.count as failrate
from Train T,(select ID,count(ID) as HC
             from Train where grade  < 60  group by ID) A,
            (select courseID,avg(grade) average,count(ID) as count
            from Train group by courseID) C
where T.ID=A.ID and T.courseID=C.courseID;

数据库实例(统计最高分学生信息,不及格率等等)相关推荐

  1. C语言链接mysql数据库实现简易的学生信息增删改查

    添加学生信息: 查看学生信息: 学生信息删除: 学生信息更新: #define _CRT_SECURE_NO_DEPRECATE  /*   if (!mysql_real_connect(& ...

  2. 基于python和MySQL数据库开发应用程序:学生信息成绩管理系统1.0版本

    目录: 前言 一,需求分析 二,前期准备 三,编写代码 1.app.py 2.__init__.py 3.models.py 四,功能描述 1.界面展示 2.系统流程图介绍 3.功能介绍 系统优缺点 ...

  3. 数组统计问题(统计各学生的优秀率及格率)C语言

    保存N个学生的C语言程序设计的期末成绩,查看每个分数段学生的人数,计算出优秀率和及格率,同时输出所有的学生成绩,并对不及格的学生成绩作出标记. 分数段的要求如下: 85-100 优秀 70-84 良好 ...

  4. 查询选修c语言课程的学生学号和姓名,数据库实验(学生信息表)

    目录 数据库实验(学生信息表) 实验一 实验二 实验三 实验四 数据库实验(学生信息表) 实验一 创建数据库以及学生信息表.课程信息表.选课表 create Table student (Sno ch ...

  5. mysql实验学生表_数据库实验(学生信息表)

    数据库实验(学生信息表) 实验一 创建数据库以及学生信息表.课程信息表.选课表 create Table student (Sno char(9) primary key, Sname char(20 ...

  6. 基于JavaSwing开发学生信息管理系统(SQLServer数据库版本) 毕业设计 课程设计 大作业

    基于JavaSwing开发学生信息管理系统(SQLServer数据库版本):   (大作业) 开发环境: Windows操作系统 开发工具: MyEclipse+Jdk+SQLServer数据库 运行 ...

  7. Access教程 第六章 数据库实例分析

    本章内容 ◆ 数据库总体分析和设计 ◆ 数据库的建立 ◆ 数据库对象的完善 本章是对前面学习的回顾.联系和巩固,通过建立一个微型的学生信息数据库实例,来灵活运用前面的知识. 一.数据库功能分析 所建立 ...

  8. 基于C++实现的学生信息管理系统

    点击获取(源码+课程设计报告文档+截图) 摘要 学生信息管理系统是针对学校人事处的大量业务处理工作而开发的管理软件,主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化.科学化.规范化和自动化 ...

  9. c语言学生信息系统 完整版,C语言 学生信息管理系统(完整版).docx

    C语言 学生信息管理系统(完整版) 电子科技大学成都学院 程序综合设计论文 论文题目 学生信息管理系统 学生姓名 魏国 学 号 1340840625 专 业 机械设计制造及其自动化 系(分院) 电子工 ...

最新文章

  1. vue bind绑定this上下文
  2. 服务器连接kvm不显示,kvm切换器使用中易出现问题及简单解决方式
  3. MariaDB [Warning] Could not increase number of max_open_files to more than 1024
  4. kubernetes mysql pxc_K8S使用operator部署和管理Percona - PXC集群
  5. dobbo 简单框架
  6. 万万没想到,我的炼丹炉玩坏了
  7. 理解JS的6种继承方式
  8. vba monthview控件64位_VBA学习
  9. python使用小记2-csv文件处理
  10. 在eclipse中创建web项目
  11. 【电子科技大学-微电子技术导论】学习笔记
  12. 汽车软件常用名称缩写
  13. XJOI一级一段题解(g++,即C++),也可视作C++算法竞赛教程
  14. HTTP详解(更新完结)
  15. Python学习笔记-数据分析-Pandas02-Dataframe
  16. 瑞红淘宝商城旗舰店开张 正式进军B2C市场
  17. 你可知道,让你发胖的食物不是高脂肪食物,而是高碳水化合物
  18. 使用Bootstrap框架写的一个小实例
  19. 【论文】Oriented R-CNN for Object Detection
  20. 为什么敏捷方法能在软件开发中行之有效

热门文章

  1. 使用文件给swap增加空间
  2. KVM精简教程(一):安装KVM
  3. 气泡图在开源监控工具中的应用效果
  4. 1675: [Usaco2005 Feb]Rigging the Bovine Election 竞选划区(题解第二弹)
  5. Django的第二次尝试
  6. python post与get的区别_python中get和post有什么区别
  7. c语言数组本质,c语言数组的本质
  8. win7无法连接打印机拒绝访问_win7系统连接XP网络打印机无法连接到打印机拒绝访问的解决方法...
  9. 青少年python编程课_青少年之Python编程课程安排第一季
  10. 如何选择容器注册表?这里给出九个选项