相克軍老師-sql從數(shù)據(jù)庫檢索信息_第1頁
相克軍老師-sql從數(shù)據(jù)庫檢索信息_第2頁
相克軍老師-sql從數(shù)據(jù)庫檢索信息_第3頁
相克軍老師-sql從數(shù)據(jù)庫檢索信息_第4頁
相克軍老師-sql從數(shù)據(jù)庫檢索信息_第5頁
已閱讀5頁,還剩43頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

SQL語言分類1、查詢語句 select2、數(shù)據(jù)操縱語言(DML) insert、update、delete3、數(shù)據(jù)定義語言(DDL) create、alter、drop、rename、truncate4、事務(wù)控制語言(TCL) commit、rollback、savepoint5、數(shù)據(jù)控制語言 grant、revoke創(chuàng)建store模式 SQLPLUS/ASSYSDBA SQL>@store_schema.sql列名全部轉(zhuǎn)換為大寫字符日期是左對(duì)齊數(shù)字是右對(duì)齊從表中取出指定的列從表中取出所有的列Oracle數(shù)據(jù)庫中的每一行都有一個(gè)唯一的行標(biāo)識(shí)符,或稱為rowid。執(zhí)行算術(shù)運(yùn)算日期運(yùn)算可以對(duì)日期進(jìn)行加法和減法運(yùn)算列運(yùn)算使用列別名列名中間有空格。使用串連操作來合并列的輸出結(jié)果這樣的輸出更加友好First_name和Last_name之間多了一個(gè)空格。理解空值Oracle使用空值來表示一個(gè)未知的值NVL()函數(shù)接受兩個(gè)參數(shù),第一個(gè)參數(shù)是列,第二個(gè)參數(shù)是如果為空,那么轉(zhuǎn)換為這個(gè)值禁止顯示重復(fù)行使用where子句進(jìn)行過濾行使用比較運(yùn)算符= 等于<>或!= 不等于< 小于> 大于<= 小于等于>= 大于等于ANY 與列表中的任何值進(jìn)行比較ALL 與列表中的所有值進(jìn)行比較使用SQL操作符LIKE:匹配字符串IN:匹配值列表BETWEEN:匹配值范圍ISNULL:匹配空值ISNAN:NAN表示非數(shù)字ISINFINITE:匹配無窮值(BINARY_FLOAT、BINARY_DOUBLE)另外還可以匹配NOTNOTLIKENOTINNOTBETWEENISNOTNULLISNOTNANISNOTINFINITE使用LIKE操作符使用LIKE來匹配字符串。_:匹配指定位置上的一個(gè)字符%:匹配從指定位置開始的任何字符匹配a_product。需要使用escape轉(zhuǎn)義字符。使用IN操作符使用BETWEEN操作符使用邏輯操作符 xANDy:當(dāng)x和y都為true時(shí),返回true xORy:當(dāng)x和y中有一個(gè)是true時(shí),返回true NOTx:如果x為false,則返回true,如果x為true,返回false理解操作符的優(yōu)先級(jí)AND操作符的優(yōu)先級(jí)高于OR比較操作符的優(yōu)先級(jí)高于AND我們通常使用()來改變優(yōu)先級(jí)使用orderby子句對(duì)行進(jìn)行排序默認(rèn)使用升序進(jìn)行排序。DESC使用降序進(jìn)行排序。ASC使用升序進(jìn)行排序。使用1表示使用第一個(gè)列進(jìn)行排序。執(zhí)行使用兩個(gè)表的select語句知道產(chǎn)品名稱的同時(shí)需要知道產(chǎn)品類別名稱。使用表別名笛卡爾積如果在多表查詢中不指定連接條件,就會(huì)導(dǎo)致將一個(gè)表中的所有行都連接到另外一個(gè)表中的所有行上,這種情況就是笛卡爾積?!?兩個(gè)表的行數(shù)的乘積就是笛卡爾積的行數(shù)。執(zhí)行使用多于兩個(gè)表的select語句連接可以用于連接任意多個(gè)表,where子句中需要的連接的個(gè)數(shù)

查詢中使用的表的總個(gè)數(shù)-1多表連接的書寫方法1、首先確定需要查詢什么2、需要查詢這些內(nèi)容時(shí),涉及的表有哪些3、這些表之間的主外鍵關(guān)系以及連接條件一個(gè)涉及4個(gè)表的例子1、已經(jīng)購買過產(chǎn)品的顧客2、顧客的姓名3、顧客購買過的產(chǎn)品名4、產(chǎn)品類型名根據(jù)需要查詢的內(nèi)容,涉及的表分別是:customers、purchases、products、product_type。主外鍵和關(guān)聯(lián)關(guān)系確定如下1、要獲得曾經(jīng)購買過產(chǎn)品的顧客,需要使用customers和purchases表中的customers_id列將兩個(gè)表連接起來。2、要獲得顧客購買的產(chǎn)品,需要使用purchases和products表中的product_id列將這兩個(gè)表連接起來。3、要獲得產(chǎn)品類型名,需要使用products和product_type表中的product_type_id列將這兩個(gè)表連接起來。selectc.first_name,c.last_name,asPRODUCT,asTYPEfromcustomersc,purchasespr,productsp,product_typesptwherec.customer_id=pr.customer_duct_id=duct_duct_type_id=duct_type_id理解連接條件和連接類型等連接:=不等連接:<、>、BETWEEN、等內(nèi)連接(innerjoin)外連接(outerjoin)自連接(selfjoin)理解不等連接在連接中使用除等于操作符之外的操作符包括<>、<、>、<=、>=、LIKE、IN、BETWEEN需要看表結(jié)構(gòu)才能夠理解不等連接條件。理解外連接即使連接中的列包含空值,外連接也會(huì)返回一行。

例如一個(gè)表中的連接列中的值在另外一個(gè)表的連接列中沒有值

一個(gè)表的連接列中有空值如果p中有空值,那么這樣的行也顯示。+放在想顯示空值的相反的一方。+放在另外一端,顯示的效果不同。左外連接和右外連接左外連接(+放在右邊):那么左邊的表中所有的行都會(huì)顯示,即使左邊的表中的行的連接列上有空值,或者左邊的表中的連接列上的值右邊沒有。右外連接(+放在左邊):那么右邊的表中的所有的行都會(huì)顯示,即使右邊的表中的行的連接列上有空值,或者右邊的表中的連接列上的值左邊沒有。外連接的限制1、不能在兩端同時(shí)使用+2、不能同時(shí)使用外連接和IN操作符3、不能同時(shí)使用外連接條件和OR條件理解自連接自連接是對(duì)同一個(gè)表進(jìn)行的連接,要執(zhí)行一個(gè)自連接,必須使用不同的表別名來標(biāo)識(shí)在查詢中每次對(duì)表的引用。表employees保存了員工的信息,同時(shí)保存了部門經(jīng)理的信息,部門經(jīng)理同時(shí)也是一個(gè)員工。使用自連接來顯示每個(gè)員工及其管理者的名字。使用SQL/92語法執(zhí)行連接前面的oracle語法是基于ANSISQL/86標(biāo)準(zhǔn)。在開發(fā)oracle9i的時(shí)候,數(shù)據(jù)庫實(shí)現(xiàn)了ANSISQL/92標(biāo)準(zhǔn)的連接語法。同樣對(duì)于多個(gè)表的連接可以歸納為:join一個(gè)表,on一個(gè)條件。使用using關(guān)鍵字簡化連接1、查詢必須是等價(jià)連接2、等價(jià)連接中的列必須同名所執(zhí)行的大部分連接都是等價(jià)連接,如果主外鍵總是使用相同的名字,那么就可以使用using關(guān)鍵字。只能使用列名,不能加上表的名字、也不能使用列別名。使用SQL/92執(zhí)行多于兩個(gè)以上表的內(nèi)連接使用SQL/92執(zhí)行多列的內(nèi)連接 select… fromtable1jointable2 ontable1.column1=table2.column1 andtable1.column2=table2.column2 sel

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論