日期:2014-05-16 浏览次数:20482 次
SQL> select * from teachers 2 where (did,wage) in 3 (select did,min(wage) from teachers group by did); TID NAME TITLE HIREDATE BONUS WAGE DID ---------- -------- ------ -------------- ---------- ---------- ---------- 10128 王晓 05-9月 -07 1000 101 10328 张笑 29-9月 -07 1000 103 10228 赵天宇 18-9月 -07 1000 102
?一、记录排序
?
1.升序排序 按工资由小到大的顺序进行检索teachers表 SQL> select name,hiredate,title,wage from teachers order by wage; NAME HIREDATE TITLE WAGE -------- -------------- ------ ---------- 林飞 11-10月-07 1000 张笑 29-9月 -07 1000 王晓 05-9月 -07 1000 赵天宇 18-9月 -07 1000 韩冬梅 01-8月 -02 助教 1800 车东日 05-9月 -01 助教 1900 崔天 05-9月 -00 助教 1900 邹人文 21-1月 -96 讲师 2400 臧海涛 29-6月 -99 工程师 2400 孙晴碧 11-5月 -98 讲师 2500 赵昆 18-2月 -96 讲师 2700 张珂 16-8月 -97 讲师 2700 孔世杰 06-7月 -94 副教授 2700 王彤 01-9月 -90 教授 3000 杨文化 03-10月-89 教授 3100 齐沈阳 03-10月-89 高工 3100? 2.降序排序 按照学生姓名降序排序 SQL> select name,sex,dob from students order by 1 desc; NAME SE DOB ---------- -- -------------- 赵风雨 男 25-10月-90 赵迪帆 男 22-9月 -89 张杨 男 08-5月 -90 张冬云 女 26-12月-89 张纯玉 男 21-7月 -89 曾程程 男 王晓芳 女 07-5月 -88 王天仪 男 26-12月-89 王刚 男 03-4月 -87 欧阳春岚 女 12-3月 -89 刘春苹 女 12-8月 -91 林紫寒 女 李秋枫 男 25-11月-90 韩刘 男 03-8月 -91 高淼 男 11-3月 -87 高山 男 08-10月-90 白昕 男 白菲菲 女 07-5月 -88? 3.多列排序 按专业、姓名升序检索students表 SQL> select specialty,name from students order by 1,name asc; SPECIALTY NAME ---------- ---------- 机电工程 白菲菲 机电工程 高山 机电工程 曾程程 机电工程 张冬云 机电工程 张杨 机电工程 赵迪帆 计算机 白昕 计算机 韩刘 计算机 刘春苹 计算机 王天仪 计算机 王晓芳 计算机 张纯玉 自动化 高淼 自动化 李秋枫 自动化 林紫寒 自动化 欧阳春岚 自动化 王刚 自动化 赵风雨 按照专业升序、姓名降序检索students表SQL> select specialty,name from students order by 1,name desc; SPECIALTY NAME ---------- ---------- 机电工程 赵迪帆 机电工程 张杨 机电工程 张冬云 机电工程 曾程程 机电工程 高山 机电工程 白菲菲 计算机 张纯玉 计算机 王晓芳 计算机 王天仪 计算机 刘春苹 计算机 韩刘 计算机 白昕 自动化 赵风雨 自动化 王刚 自动化 欧阳春岚 自动化 林紫寒 自动化 李秋枫 自动化 高淼?? |
二、分组查询
?? ①计算teacher的平均工资
?
SQL> select avg(wage) 平均工资 from teachers; 平均工资 ---------- 2137.5
?
? ②求全体教师工资的方差
?
SQL> select variance(wage) from teachers; VARIANCE(WAGE) -------------- 614500
?
③查询每一个系教师的最大工资和最小工资
?
SQL> select did,max(wage) 最高工资,min(wage) 最低工资 from teachers group by did; DID 最高工资 最低工资 ---------- ---------- ---------- 102 3100 1000 101 3000 1000 103 3100 1000
?④将所平均工资高于2200的系,和平均工资
?
SQL> select did,avg(wage) 平均工资 from teachers group by did having avg(wage)>2200; DID 平均工资 ---------- ---------- 102 2240 103 2220
三、子查询
? ①查找工资低于平均工资的教师
?
SQL> select name,wage from teachers 2 where wage< 3 (select avg(wage) from teachers); NAME WAGE -------- ---------- 韩冬梅 1800 崔天 1900 车东日 1900 王晓 1000 张笑 1000 赵天宇 1000
?
?②未被学生选修的课程
?
SQL> select cid