新项目即将开始...还得把sql抓抓

来源:互联网 发布:游戏编程精粹 pdf 云盘 编辑:程序博客网 时间:2024/06/08 13:13

TL几个下午培训了一下sql基础和pl/sql基础,讲了一下项目规范。

出了一些练习题,搜了一下,sql部分网上都有原题。

原题是:

练习     
1、环境创建     
要求:     
           通过下记对表及数据的描述,做成DDL,和数据做成语句(INSERT)。     
           表名前加自己的姓名缩写,以免跟他人冲突。     
*在之后的练习所需要的表及其中的数据在本练习中创建。     
学生表:student     
主键 列汉字名 列物理名 类型 长度 
○ 学生编号 sno varchar2 10 
 学生姓名 sname varchar2 20 
 学生年龄 sage number 2 
 学生性别 ssex varchar2 5 
     
教师表:teacher     
主键 列汉字名 列物理名 类型 长度 
○ 教师编号 tno varchar2 10 
 教师姓名 tname varchar2 20 
     
课程表:course     
主键 列汉字名 列物理名 类型 长度 
○ 课程编号 cno varchar2 10 
 课程名 cname varchar2 20 
 教师编号 tno varchar2 20 
     
成绩表:sc     
主键 列汉字名 列物理名 类型 长度 
○ 学生编号 sno varchar2 10 
 课程编号 cno varchar2 20 
 成绩 score number 4,2 
     
     
数据:     
学生表     
学生编号 学生姓名 学生年龄 学生性别  
s001 张三 23 男  
s002 李四 23 男  
s003 吴鹏 25 男  
s004 琴沁 20 女  
s005 王丽 20 女  
s006 李波 21 男  
s007 刘玉 21 男  
s008 萧蓉 21 女  
s009 陈萧晓 23 女  
s010 陈美 22 女  
     
教师表     
教师编号 教师姓名    
t001 刘阳    
t002 谌燕    
t003 胡明星    
     
     
课程表     
课程编号 课程名 教师编号   
c001 J2SE t002   
c002 Java Web t002   
c003 SSH t001   
c004 Oracle t001   
c005 SQL SERVER 2005 t003   
c006 C# t003   
c007 JavaScript t002   
c008 DIV+CSS t001   
c009 PHP t003   
c010 EJB3.0 t002   
     
成绩表     
学生编号 课程编号 成绩   
s001 c001 78.9   
s002 c001 80.9   
s003 c001 81.9   
s004 c001 60.9   
s001 c002 82.9   
s002 c002 72.9   
s003 c002 81.9   
s001 c003 59   
     
     
2 查询“c001”课程比“c002”课程成绩高的所有学生的学号;                                                     
3 查询所有同学的学号、姓名、选课数、总成绩;                                                                 
4 查询姓“刘”的老师的个数;                                                                                 
5 查询没学过“谌燕”老师课的同学的学号、姓名;                                                               
6 查询学过“c001”并且也学过编号“c002”课程的同学的学号、姓名;                                             
7 把“SC”表中“谌燕”老师教的课的成绩都更改为此课程的平均成绩;                                            
8 查询和“s001”号的同学学习的课程完全相同的其他同学学号和姓名;                                            
9 删除学习“谌燕”老师课的SC 表记录;                                                                       
10 向SC 表中插入一些记录,这些记录要求符合以下条件:没有上过编号“c002”课程的同学学号、“c002”             
  号课的平均成绩;                                                                                          
11 查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分                                        
12 按各科平均成绩从低到高和及格率的百分数从高到低顺序                                                        
13 "统计列印各科成绩,各分数段人数:课程ID,课程名称,[100-85],[85-70],[70-60],[ <60]                         "    
14 查询各科成绩前三名的记录:(不考虑成绩并列情况)                                                             
15 查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列                          


其中第8题想了有一会,写出来但比较复杂,不知看读者有好方法的没?

原创粉丝点击