<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 18,  comments - 1,  trackbacks - 0


    兩表沒有任何關(guān)聯(lián)時會產(chǎn)生迪卡爾機(jī):
    select first_name , name from s_emp , s_dept;
    等值連接:
    練習(xí)一:查看員工的姓名和員工部門號:(要考慮到表中實(shí)際數(shù)據(jù)中空值的影響)
    select first_name , name from s_emp, s_dept where s_emp.dept_id=s_dept.id;
     
    練習(xí)二:每個員工所在的部門和部門所在的地區(qū)
    select first_name , name from s_emp, s_dept, s_region where s_emp.dept_id=s_dept.id and s_dept.region_id=s_region.id;

    非等值連接
    練習(xí)三:查出每個員工和每個員工的工資級別)
    select a.ename , a.sal, b.grade from emp a , salgrade b where a.sal between b.losal and b.hisal;
    select a.ename , a.sal, b.grade from emp a , salgrade b where a.sal>=b.losal and a.sal<=b.hisal;

    自連接:
    select first_name , manager_id from s_emp;
    練習(xí)四:查出所有員工的部門領(lǐng)導(dǎo)的名稱:( 這種sql會少一條記錄,總經(jīng)理沒有被配置上)
    select e.first_name , m.first_name from s_emp e , s_emp m where e.manager_id=m.id;7fg
     
    外連接:(防止空值時,用(+)的一方會模擬一條記錄配置另一方)這就稱為外連接,一個記錄都不能少;
    select e.first_name , m.first_name from s_emp e , s_emp m where e.manager_id=m.id(+);

    練習(xí)五:查看員工分部的部門:
    select distinct(deptno) from emp ;
    找出沒有員工的部門:(很經(jīng)典的一個例子,用外連接來解決的標(biāo)準(zhǔn)做法,這是一種方式,用子查詢也可以實(shí)現(xiàn))
    第一步:
    select e.deptno , d.deptno from emp e , dept d where e.deptno(+)=d.deptno;
    第二步:(!L_=N
    select e.deptno , d.deptno from emp e , dept d where e.deptno(+)=d.deptno and e.deptno is null;

    練習(xí)六:查詢員工有多少人有提成:
    select count( commission_pct ) from s_emp ;
    select sum(commission_pct)/ count(*) from s_emp;
      
    練習(xí)七:員工分部在多少個不同的部門:
    select count(dept_id) from s_emp;
    select count(distinct dept_id) from s_emp;
     
    練習(xí)八:求各個部門的平均工資:
    select dept_id , avg(salary) aa from s_emp group by dept_id order by aa ;
    select dept_id , avg(salary) aa from s_emp group by dept_id ;
    //體會下句sql
    select region_id , count(*) from s_dept ****此句會有錯,請多體會********
    select max(region_id) , count(*) from s_dept; (強(qiáng)制語法上可以正確,但是不能保證結(jié)果也會正確)

    練習(xí)九:求各個部門不同工種的平均工資:
    select dept_id , title, avg(salary) from s_emp group by dept_id , title ;

    練習(xí)十:查詢哪些部門的平均工資比2000高:
    select dept_id, avg(salary) aa from s_emp group by (dept_id) having avg(salary)>2000;

    練習(xí)十一:除了42部門以外的部門的平均工資:
    select dept_id , avg(salary) from s_emp group by (dept_id ) having dept_id!=42;
    select dept_id , avg(salary) from s_emp where dept_id!=42 group by (dept_id ) ;(此種sql效率要高,先過濾再計(jì)算)

    練習(xí)十二:求各個部門的平均工資:
    //****這問題很經(jīng)典,為了過 oracle sql 語法關(guān)而寫max(d.name)
    select max(d.name) , avg(e.salary) , max(r.name) from s_emp e, s_dept d , s_region r where e.dept_id = d.id and

    d.region_id=r.id group by d.id ;

    關(guān)于子查詢: Subqueries
    練習(xí)十三:找出所有員工中,工資最低的那個員工:( 利用子查詢 )
    select first_name, salary from s_emp where salary = ( select min(salary) from s_emp) ;
    //這樣寫會出錯姓名和工資不一致
    select max(first_name), min(salary) from s_emp;

    練習(xí)十四:查詢誰跟Smith的工種一樣:
    select last_name from s_emp where last_name='Smith';
    //下種寫法可能還存在bug,沒有考慮到數(shù)據(jù)的全面性,有潛在性問題
    select last_name , title from s_emp where title =( select title from s_emp where last_name='Smith' )and

    last_name <> 'Smith' ;
    //這種寫法才考慮的比較全面
    select last_name , title from s_emp where title in ( select title from s_emp where last_name='Smith' ) and

    last_name <> 'Smith' ;
    使用子查詢時應(yīng)注意: 單行子查詢返回多個結(jié)果時會有錯誤 single-row subquery returns more than one value(
    練習(xí)十五:查出哪些員工的工資比平均工資低:
    select * from s_emp where salary < ( select avg(salary) from s_emp) ;
    哪些部門的平均工資比32部門的平均工資要低:
    第一步先查出各個部門的平均工資:
    select min(avg(salary ) ) from s_emp group by dept_id;
    第二步再查出哪個部門的工資是最低的:
    select dept_id, avg(salary) from s_emp group by dept_id having avg(salary) = (select min(avg(salary) ) from

    s_emp group by dept_id ) ;
    練習(xí)十六:哪個部門里沒有員工(用子查詢的方式來實(shí)現(xiàn)):
    select deptno from dept where deptno not in ( select deptno from emp );

    posted on 2007-03-20 12:48 sunny 閱讀(433) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    <2007年3月>
    25262728123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    相冊

    收藏夾

    朋友

    搜索

    •  

    最新評論

    評論排行榜

    主站蜘蛛池模板: 最近高清中文字幕无吗免费看| 一级毛片无遮挡免费全部| 日韩亚洲AV无码一区二区不卡| 亚洲va中文字幕无码久久| 国产精品美女久久久免费| 国产一卡2卡3卡4卡无卡免费视频| 在线观看免费亚洲| 亚洲日韩国产精品乱-久| 国产精品久久久久久久久久免费 | 97在线视频免费公开视频| 全免费a级毛片免费**视频| 亚洲色无码专区一区| 成人免费无码H在线观看不卡| 亚洲无线一二三四区手机| 亚洲av片不卡无码久久| 国产免费av片在线看| 日韩色视频一区二区三区亚洲 | 国产亚洲成AV人片在线观黄桃 | 韩国欧洲一级毛片免费| 亚洲sm另类一区二区三区| 9277手机在线视频观看免费| 亚洲AV无码成H人在线观看| 亚洲性色高清完整版在线观看| AA免费观看的1000部电影| 国产亚洲视频在线观看| 亚洲精品乱码久久久久久蜜桃不卡 | 亚洲一区二区三区高清| 国产成人免费网站| 美女视频黄频a免费| 亚洲人成在线播放网站| 成年人网站免费视频| 日韩精品亚洲专区在线影视| 亚洲无线码在线一区观看| 国产电影午夜成年免费视频| 精品久久亚洲一级α| 亚洲av无码专区在线播放| 成人性生活免费视频| 亚洲香蕉免费有线视频| 在线看片无码永久免费aⅴ| 91视频免费观看| 国产成人精品日本亚洲专区6|