溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

從數(shù)據(jù)表中檢索信息

發(fā)布時(shí)間:2020-07-04 02:43:11 來(lái)源:網(wǎng)絡(luò) 閱讀:371 作者:kuchensheng 欄目:關(guān)系型數(shù)據(jù)庫(kù)

本章內(nèi)容包括:

  • 使用SELECT語(yǔ)句從一個(gè)或多個(gè)數(shù)據(jù)庫(kù)表中檢索信息

  • 使用算術(shù)表達(dá)式進(jìn)行計(jì)算

  • 使用WHERE子句對(duì)行進(jìn)行過(guò)濾

  • 對(duì)從表中檢索到的行進(jìn)行排序

一、單表查詢(xún)數(shù)據(jù)

  1. SELECT語(yǔ)句用于從數(shù)據(jù)庫(kù)表中檢索信息。

    select * from customers;    //選擇一個(gè)表中所有的列

    select c.name from cutomers c;   //選擇表中的某一列

  2. 使用WHERE子句過(guò)濾行

    在查詢(xún)中可以使用WHERE子句來(lái)指定想要檢索的行。

    select * from customers where customer_id = 2;

  3. 理解行標(biāo)識(shí)符

    oracle數(shù)據(jù)庫(kù)中的每一行都有一個(gè)唯一的行標(biāo)識(shí)符ROWID。Oracle數(shù)據(jù)庫(kù)內(nèi)部使用行標(biāo)識(shí)符來(lái)存儲(chǔ)行的物理位置。rowid通常被稱(chēng)為偽列。不會(huì)出現(xiàn)在表結(jié)構(gòu)中

  4. 理解行號(hào)

    oracle的另一個(gè)偽列是ROWNUM,它返回每一行在結(jié)果集中的行號(hào)

  5. SQL> select rowid,rownum,f.serial_no,f.code_id from fault_barrier_base_code f where rownum < 20;
    ROWID                                                                                ROWNUM SERIAL_NO CODE_ID
    -------------------------------------------------------------------------------- ---------- --------- ----------------------------------------
    AAGlTlAAOAAJEhUAAA                                                                        1         5 YJ_SOAP
    AAGlTlAAOAAJEhUAAB                                                                        2         6 SC_SOAP
    AAGlTlAAOAAJEhUAAC                                                                        3         9 88
    AAGlTlAAOAAJEhUAAD                                                                        4        22 12
    AAGlTlAAOAAJEhUAAE                                                                        5        23 52
    AAGlTlAAOAAJEhUAAF                                                                        6        24 82
    AAGlTlAAOAAJEhUAAG                                                                        7        25 94
    AAGlTlAAOAAJEhUAAH                                                                        8        29 21
    AAGlTlAAOAAJEhUAAI                                                                        9        30 REPLACE_NOCHECK_SECROSCODE
    AAGlTlAAOAAJEhVAAA                                                                       10        10 89
    AAGlTlAAOAAJEhVAAB                                                                       11        13 RECORD_MONITOR_LOG
    AAGlTlAAOAAJEhVAAC                                                                       12        14 92
    AAGlTlAAOAAJEhVAAD                                                                       13        15 DEFAULT_URL_FALG
    AAGlTlAAOAAJEhVAAE                                                                       14        32 98
    AAGlTlAAOAAJEhVAAF                                                                       15        37 CHECK_DEFAULT_SECRESCODE_DESC
    AAGlTlAAOAAJEhVAAG                                                                       16        38 NOT_FAULT_BARRIER_ENABLE
    AAGlTlAAOAAJEhVAAH                                                                       17        39 NO_FAULT_BARRIER_CRON
    AAGlTlAAOAAJEhVAAI                                                                       18        40 GROUP_SPECIAL_MSISDN
    AAGlTlAAOAAJEhVAAJ                                                                       19        41 GROUP_SPECIAL_BIPCODE_ACTIVECODE
    19 rows selected
  6.  執(zhí)行算術(shù)運(yùn)算

    Oracle在SQL語(yǔ)句中使用算術(shù)表達(dá)式來(lái)進(jìn)行算術(shù)運(yùn)算,包括+、-、*、/

    日期運(yùn)算:在2016年6月6日上加上一天

  7. SQL> select to_date(sysdate) + 7  as "one week later" from dual;
    one week later
    --------------
    2016/6/13
    SQL> select to_date(sysdate) - 7  as "one week ago" from dual;
    one week ago
    ------------
    2016/5/30
  8. 算術(shù)運(yùn)算中也支持表的列操作。

  9. 禁止顯示重復(fù)行 關(guān)鍵字DISTINCT

  10. 比較值,用 =、<>或!=、<、>、<=,>=,ANY(與任何值比較),ALL

  11. 使用SQL操作符,LIKE(模糊查詢(xún)),IN(范圍查詢(xún)),BETWEEN(范圍查詢(xún)),IS NULL,IS NAN(非數(shù)字),IS INFINITE

  12. 使用邏輯操作符 x AND y(當(dāng)x和y都為true時(shí),返回true),x OR y(當(dāng)x和y中有一個(gè)為true,就返回true),NOT x(如果x為false,則返回true);

  13. 使用ORDER BY 子句對(duì)行進(jìn)行排序

    使用ORDER BY子句可以對(duì)查詢(xún)檢索出來(lái)的行進(jìn)行排序。ORDER BY子句必須位于FROM或WHERE子句(如果提供了WHERE子句)之后。

二、執(zhí)行兩個(gè)表的SELECT語(yǔ)句

  1. 連接可以用于連接任意多個(gè)表。連接數(shù) = 查詢(xún)中使用的表的總數(shù) - 1

  2. select * from fault_barrier_code;
    select * from fault_barrier_sec_rspcode sec,fault_barrier_code fc
     where sec.bip_code = fc.bip_code
     and sec.act_code = fc.act_code
     and sec.plat_code = fc.plat_code;

3.  連接條件和連接類(lèi)型

    根據(jù)連接中使用的操作符的不同,連接條件(join condition)可以分為兩類(lèi):

  •     等連接(equijion)在連接中使用操作符。

  •     不等連接(non-equijoin)在連接中使用除等號(hào)之外的操作符如,<,>,BETWEEN

    連接有3中類(lèi)型

  •     內(nèi)連接(inner join)只有當(dāng)連接中的列包含滿足連接條件的值時(shí)才會(huì)返回一行。

  •      外連接(outer join)即使連接條件中的一列包含空值也會(huì)返回一行

  •    自連接(self join)返回連接到同一張表中的行












向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI