您好,登錄后才能下訂單哦!
本章內(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ù)
SELECT語(yǔ)句用于從數(shù)據(jù)庫(kù)表中檢索信息。
select * from customers; //選擇一個(gè)表中所有的列
select c.name from cutomers c; //選擇表中的某一列
使用WHERE子句過(guò)濾行
在查詢(xún)中可以使用WHERE子句來(lái)指定想要檢索的行。
select * from customers where customer_id = 2;
理解行標(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)中
理解行號(hào)
oracle的另一個(gè)偽列是ROWNUM,它返回每一行在結(jié)果集中的行號(hào)
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
執(zhí)行算術(shù)運(yùn)算
Oracle在SQL語(yǔ)句中使用算術(shù)表達(dá)式來(lái)進(jìn)行算術(shù)運(yùn)算,包括+、-、*、/
日期運(yùn)算:在2016年6月6日上加上一天
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
算術(shù)運(yùn)算中也支持表的列操作。
禁止顯示重復(fù)行 關(guān)鍵字DISTINCT
比較值,用 =、<>或!=、<、>、<=,>=,ANY(與任何值比較),ALL
使用SQL操作符,LIKE(模糊查詢(xún)),IN(范圍查詢(xún)),BETWEEN(范圍查詢(xún)),IS NULL,IS NAN(非數(shù)字),IS INFINITE
使用邏輯操作符 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);
使用ORDER BY 子句對(duì)行進(jìn)行排序
使用ORDER BY子句可以對(duì)查詢(xún)檢索出來(lái)的行進(jìn)行排序。ORDER BY子句必須位于FROM或WHERE子句(如果提供了WHERE子句)之后。
二、執(zhí)行兩個(gè)表的SELECT語(yǔ)句
連接可以用于連接任意多個(gè)表。連接數(shù) = 查詢(xún)中使用的表的總數(shù) - 1
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)返回連接到同一張表中的行
免責(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)容。