<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)  編輯  收藏 所屬分類: 達內學習總結
    主站蜘蛛池模板: 免费人人潮人人爽一区二区| 亚洲精品人成网线在线播放va| 18禁无遮挡无码网站免费| 亚洲综合AV在线在线播放| 乱淫片免费影院观看| 亚洲高清无码综合性爱视频| 亚洲第一se情网站| 国产免费小视频在线观看| 国产精品成人亚洲| 亚洲日韩VA无码中文字幕 | 亚洲色图视频在线观看| 性无码免费一区二区三区在线| 日日麻批免费40分钟日本的| 亚洲欧洲精品在线| 成年在线观看免费人视频草莓| 国产猛烈高潮尖叫视频免费| 色屁屁在线观看视频免费| 国产精品免费综合一区视频| 国产亚洲综合视频| 亚洲宅男天堂在线观看无病毒| 亚洲最大无码中文字幕| 国产性生交xxxxx免费| 一级毛片免费观看不收费| 亚洲日韩精品一区二区三区无码| 亚洲av成人综合网| 性做久久久久免费观看| 美女巨胸喷奶水视频www免费| 性一交一乱一视频免费看| 特级aaaaaaaaa毛片免费视频| 99久久99这里只有免费费精品| 亚洲欧洲日本在线| 国产一区二区三区免费观在线 | 亚洲va中文字幕无码| 免费成人在线电影| 中文无码亚洲精品字幕| 国产亚洲人成A在线V网站| 最刺激黄a大片免费网站| 亚洲码和欧洲码一码二码三码| 国产精品永久免费10000| 亚洲.国产.欧美一区二区三区| 成人网站免费观看|