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

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

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

    隨筆-159  評論-114  文章-7  trackbacks-0

    db2

    ?select * from recruit fetch first 5 rows only

    經典oracle sql

    select ? * ? from ?( select ?newtable. * ,rownum?rownum_? from ?( select ? * ? from ?s_emp)?newtable? where ?rownum? <= ? 20 )? where ?rownum_? > ? 5

    rownum在用于大于號時,不可以,必須先造一個table把rownum這個偽列當作這個新造出的表中的一個字段,才能進行特定行之間的查詢。



    DML Data manipulation language
    ???insert update delete

    DDL Data definition language
    ???create alter drop rename trancate

    Transaction control
    ???commit rollback savepoint

    DCL
    ???GRANT REVOKE

    ==========================

    ?Name????????????????????????????????????? Null???? Type
    ?----------------------------------------- -------- ----------------------------
    ?ID??????????????????????????????????????? NOT NULL NUMBER(7)
    ?LAST_NAME???????????????????????????????? NOT NULL VARCHAR2(15)
    ?FIRST_NAME???????????????????????????????????????? VARCHAR2(15)
    ?USERID???????????????????????????????????????????? VARCHAR2(8)
    ?START_DATE???????????????????????????????????????? DATE
    ?COMMENTS?????????????????????????????????????????? VARCHAR2(15)
    ?MANAGER_ID???????????????????????????????????????? NUMBER(7)
    ?TITLE????????????????????????????????????????????? VARCHAR2(20)
    ?DEPT_ID??????????????????????????????????????????? NUMBER(7)
    ?SALARY???????????????????????????????????????????? NUMBER(11,2)
    ?COMMISSION_PCT???????????????????????????????????? NUMBER(4,2)

    select last_name,salary, 12*salary + 100 from s_emp;

    支持操作符

    支持別名

    select last_name ln from s_emp;

    支持Concatenation,級聯操作符

    select first_name||last_name from s_emp


    對于NULL值

    select ?last_name,title,salary * commission_pct / 100 ?COMM? from ?s_emp;

    這樣查詢會有很多NULL值

    有一個NVL函數,以便在NULL出現時,給予一個默認值。

    select ?last_name,title,?salary * NVL(commission_pct, 0 ) / 100 ?COMM? from ?s_emp;

    commission_pct,出現NULL,就會被0替換。

    Eliminate duplicate rows by using distinct in select clause;

    select ? distinct ?name? from ?s_dept;


    =============================================================

    SQL> select name,salary,deptno from ( select concat(last_name,first_name) name,salary,department_id deptno,rank() over (partition by department_id order by salary desc) rnk from employees) where rnk = 2 or rnk = 3;

    NAME????????????????????????????????????????????? SALARY???? DEPTNO
    --------------------------------------------- ---------- ----------
    FayPat????????????????????????????????????????????? 6000???????? 20
    KhooAlexander?????????????????????????????????????? 3100???????? 30
    BaidaShelli???????????????????????????????????????? 2900???????? 30
    WeissMatthew??????????????????????????????????????? 8000???????? 50
    KauflingPayam?????????????????????????????????????? 7900???????? 50
    ErnstBruce????????????????????????????????????????? 6000???????? 60
    AustinDavid???????????????????????????????????????? 4800???????? 60
    PataballaValli????????????????????????????????????? 4800???????? 60
    PartnersKaren????????????????????????????????????? 13500???????? 80
    ErrazurizAlberto?????????????????????????????????? 12000???????? 80
    KochharNeena?????????????????????????????????????? 17000???????? 90

    NAME????????????????????????????????????????????? SALARY???? DEPTNO
    --------------------------------------------- ---------- ----------
    De HaanLex???????????????????????????????????????? 17000???????? 90
    FavietDaniel??????????????????????????????????????? 9000??????? 100
    ChenJohn??????????????????????????????????????????? 8200??????? 100
    GietzWilliam??????????????????????????????????????? 8300??????? 110

    15 rows selected.

    SQL>

    SQL> desc employees;
    ?Name????????????????????????????????????? Null???? Type
    ?----------------------------------------- -------- ----------------------------
    ?EMPLOYEE_ID?????????????????????????????? NOT NULL NUMBER(6)
    ?FIRST_NAME???????????????????????????????????????? VARCHAR2(20)
    ?LAST_NAME???????????????????????????????? NOT NULL VARCHAR2(25)
    ?EMAIL???????????????????????????????????? NOT NULL VARCHAR2(25)
    ?PHONE_NUMBER?????????????????????????????????????? VARCHAR2(20)
    ?HIRE_DATE???????????????????????????????? NOT NULL DATE
    ?JOB_ID??????????????????????????????????? NOT NULL VARCHAR2(10)
    ?SALARY???????????????????????????????????????????? NUMBER(8,2)
    ?COMMISSION_PCT???????????????????????????????????? NUMBER(2,2)
    ?MANAGER_ID???????????????????????????????????????? NUMBER(6)
    ?DEPARTMENT_ID????????????????????????????????????? NUMBER(4)

    SQL?排名問題

    找出部門工資排名第二,三的員工

    =====================

    復習一下外連接Outer Join

    SQL> desc s_emp;
    ?Name????????????????????????????????????? Null???? Type
    ?----------------------------------------- -------- ----------------------------
    ?ID??????????????????????????????????????? NOT NULL NUMBER(7)
    ?LAST_NAME???????????????????????????????? NOT NULL VARCHAR2(15)
    ?FIRST_NAME???????????????????????????????????????? VARCHAR2(15)
    ?USERID???????????????????????????????????????????? VARCHAR2(8)
    ?START_DATE???????????????????????????????????????? DATE
    ?COMMENTS?????????????????????????????????????????? VARCHAR2(15)
    ?MANAGER_ID???????????????????????????????????????? NUMBER(7)
    ?TITLE????????????????????????????????????????????? VARCHAR2(20)
    ?DEPT_ID??????????????????????????????????????????? NUMBER(7)
    ?SALARY???????????????????????????????????????????? NUMBER(11,2)
    ?COMMISSION_PCT???????????????????????????????????? NUMBER(4,2)

    SQL> desc s_customer
    ?Name????????????????????????????????????? Null???? Type
    ?----------------------------------------- -------- ----------------------------
    ?NAME????????????????????????????????????? NOT NULL VARCHAR2(25)
    ?ZIP_CODE?????????????????????????????????????????? VARCHAR2(20)
    ?CREDIT_RA????????????????????????????????????????? VARCHAR2(25)
    ?SAL??????????????????????????????????????????????? NUMBER
    ?ID???????????????????????????????????????????????? NUMBER(5)

    客戶表里的SAL字段是s_emp的外鍵。表示該客戶的銷售代表。

    那么要想查出所有客戶(包括沒有銷售代表的)所對應的銷售代表記錄。

    ? 1? select e.last_name,e.id,c.name
    ? 2? from s_emp e,s_customer c
    ? 3? where e.id(+) = c.sal
    ? 4* order by e.id

    LAST_NAME?????????????? ID NAME
    --------------- ---------- -------------------------
    _dumas????????????????? 12 athletes attic
    _dumas????????????????? 12 great athletes
    _dumas????????????????? 12 bj athletics
    _dumas????????????????? 12 athletic for all
    _dumas????????????????? 12 sports,inc
    ?????????????????????????? athletics two
    ?????????????????????????? athletics one
    ?????????????????????????? shhes for sports
    ?????????????????????????? athletic attire
    ?????????????????????????? toms sporting goods

    可以看到相應的部分客戶并不存在銷售代表也出現在結果集中,而用等值鏈接是不能查出的。

    ? 1? select e.last_name,e.id,c.name
    ? 2? from s_emp e,s_customer c
    ? 3? where e.id = c.sal(+)
    ? 4* order by e.id

    查出所有銷售代表所對應的客戶。

    LAST_NAME?????????????? ID NAME
    --------------- ---------- -------------------------
    _dumas?????????????????? 8
    hui????????????????????? 8
    aaa???????????????????? 10
    %ss???????????????????? 11
    _dumas????????????????? 11
    _dumas????????????????? 12 sports,inc
    _dumas????????????????? 12 athletic for all
    _dumas????????????????? 12 bj athletics
    _dumas????????????????? 12 great athletes
    _dumas????????????????? 12 athletes attic
    _dumas????????????????? 13

    LAST_NAME?????????????? ID NAME
    --------------- ---------- -------------------------
    _dumas????????????????? 15
    _dumas????????????????? 16
    _dumas????????????????? 17
    _dumas????????????????? 18
    _dumas????????????????? 19
    _dumas????????????????? 21
    payn??????????????????? 23
    _dumas????????????????? 25
    _dumas????????????????? 47
    _dumas????????????????? 70
    _dumas????????????????? 76

    LAST_NAME?????????????? ID NAME
    --------------- ---------- -------------------------
    _dumas????????????????? 95
    liganfeng????????????? 112
    lgf??????????????????? 122
    lgf??????????????????? 134
    Biri?????????????????? 333
    qu???????????????????? 555
    _dumas??????????????? 2271
    tarena?????????????? 25999
    tarena?????????????? 26999

    空的舊更多了。

    也就是哪邊缺,哪邊方加號。

    這就是外連接。



    posted on 2006-03-30 23:46 北國狼人的BloG 閱讀(552) 評論(0)  編輯  收藏 所屬分類: 達內學習總結
    主站蜘蛛池模板: 久久精品国产亚洲精品| 午夜男人一级毛片免费| 亚洲性猛交XXXX| 一日本道a高清免费播放| 五月婷婷亚洲综合| 老司机午夜性生免费福利| 国产在线观看免费不卡| 亚洲1区2区3区精华液| 免费一级毛片免费播放| 香港经典a毛片免费观看看| 免费一看一级毛片人| 乱淫片免费影院观看| 国产av无码专区亚洲av果冻传媒 | 亚州**色毛片免费观看| 亚洲无线码一区二区三区| 中文字幕乱码一区二区免费| 久久91亚洲精品中文字幕| 91av在线免费视频| 亚洲视频在线观看2018| 国产又长又粗又爽免费视频 | 国产大片51精品免费观看| 一级黄色毛片免费看| 亚洲AV无码乱码国产麻豆穿越 | 免费一级毛片在级播放| 三上悠亚电影全集免费 | 国产精品成人免费一区二区| 亚洲最大av资源站无码av网址| 国产精品国产免费无码专区不卡 | 青青草国产免费久久久91 | 久久久久免费看黄a级试看| 亚洲AV无码一区二区三区人| 在线免费观看韩国a视频| 成在人线av无码免费高潮水| 亚洲网站免费观看| 国产大片免费观看中文字幕| 久久青青草原国产精品免费| 亚洲Av高清一区二区三区| 亚洲男人在线无码视频| 亚洲免费视频网址| 深夜特黄a级毛片免费播放| 久久久久亚洲AV无码麻豆|