




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Oracle數(shù)據(jù)庫(kù)客戶端鏈接服務(wù)器前,服務(wù)器要啟動(dòng)監(jiān)聽(tīng)服務(wù),并且客戶端工具要安裝Oracle客戶端,并且在客戶端要建立本地網(wǎng)絡(luò)服務(wù)名。Oracle服務(wù)和監(jiān)聽(tīng)啟動(dòng)后才能對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。一:打開(kāi)服務(wù) 啟動(dòng)OracleOraDb10g_home1TNSListener服務(wù)或者二:進(jìn)入命令行輸入:lsnrctl start 即可啟動(dòng)lsnrctl stop 停止服務(wù)lsnrctl status 查看狀態(tài)在SQL*Plus中,啟動(dòng)Oracle必須是sys用戶,命令格式是:startupopen圖24Oracle服務(wù)啟動(dòng)Oracle服務(wù)關(guān)閉用命令:shutdownimmediate圖25Oracle服務(wù)
2、關(guān)閉6.Oracle用戶和權(quán)限Oracle中,一般不會(huì)輕易在一個(gè)服務(wù)器上創(chuàng)建多個(gè)數(shù)據(jù)庫(kù),在一個(gè)數(shù)據(jù)庫(kù)中,不同的項(xiàng)目由不同的用戶訪問(wèn),每一個(gè)用戶擁有自身創(chuàng)建的數(shù)據(jù)庫(kù)對(duì)象,因此用戶的概念在Oracle中非常重要。Oracle的用戶可以用CREATEUSER命令來(lái)創(chuàng)建。其語(yǔ)法是:語(yǔ)法結(jié)構(gòu):創(chuàng)建用戶CREATEUSER用戶名IDENTIFIEDBY口令A(yù)CCOUNTLOCK|UNLOCK在Oracle開(kāi)發(fā)中,客戶端把SQL語(yǔ)句發(fā)送給服務(wù)器,服務(wù)器對(duì)SQL語(yǔ)句進(jìn)行編譯、執(zhí)行,把執(zhí)行的結(jié)果返回給客戶端。OracleSQL語(yǔ)句由如下命令組成:數(shù)據(jù)定義語(yǔ)言(DDL),包括CREATE(創(chuàng)建)命令、ALTER(
3、修改)命令、DROP(刪除)命令等。數(shù)據(jù)操縱語(yǔ)言(DML),包括INSERT(插入)命令、UPDATE(更新)命令、DELETE(刪除)命令、SELECTFORUPDATE(查詢)等。數(shù)據(jù)查詢語(yǔ)言(DQL),包括基本查詢語(yǔ)句、OrderBy子句、GroupBy子句等。事務(wù)控制語(yǔ)言(TCL),包括COMMIT(提交)命令、SAVEPOINT(保存點(diǎn))命令、ROLLBACK(回滾)命令。數(shù)據(jù)控制語(yǔ)言(DCL),GRANT(授權(quán))命令、REVOKE(撤銷)命令。Oracle的查詢中,必須使用“select列from表”的完整語(yǔ)法,當(dāng)查詢單行函數(shù)的時(shí)候,from后面使用DUAL表,dual表在系統(tǒng)中只
4、有一行一列,該表在輸出單行函數(shù)時(shí)為了selectfrom的語(yǔ)法完整性而使用我現(xiàn)在有兩張表結(jié)構(gòu)一莫一樣的表,表中的主要字段信息也是一樣的,主鍵信息業(yè)一樣,就是后面的有個(gè)別字段中的值不同,怎么能查找對(duì)比出來(lái)呢?SELECT ID=CASE WHEN(B.ID=A.ID)THEN LTRIM(B.ID) ELSE LTRIM(B.ID)+不同 END, 姓名=CASE WHEN(B.姓名=A.姓名) THEN B.姓名 ELSE B.姓名+不同 END, 年齡=CASE WHEN(B.年齡=A.年齡)THEN LTRIM(B.年齡) ELSE LTRIM(B.年齡)+不同 END, 學(xué)業(yè)=CASE
5、WHEN(B.學(xué)業(yè)=A.學(xué)業(yè)) THEN B.學(xué)業(yè) ELSE B.學(xué)業(yè)+不同 END, 身高=CASE WHEN(B.身高=A.身高) THEN LTRIM(B.身高) ELSE LTRIM(B.身高)+不同 END, 體重=CASE WHEN(B.體重=A.體重) THEN LTRIM(B.體重) ELSE LTRIM(B.體重)+不同 ENDFROM A JOIN B ON A.ID=B.ID將兩個(gè)不同數(shù)據(jù)庫(kù)的兩張不同表的字段值做對(duì)比,如果相同則不顯示,否則顯示出來(lái):select id, a as memo from a where id not in (select id from b)
6、union allselect id, b from b where id not in (select id from a) 比較數(shù)據(jù)表的數(shù)據(jù)是否一樣select from formula A where not exists (select from formula B where A。formulaNameB。formulaName and A。formulaContentB。formulaContent and A。formulaTypeB。formulaType)對(duì)比查詢顯示兩張表:select * from aminusselect * from b查找出b表中沒(méi)有的,但是a表中存
7、在的數(shù)據(jù)select a.* where a.id not in (select b.id from b)二、使用表的別名進(jìn)行多表查詢?nèi)?SELECTa.id,,a.address,b.math,b.english,b.chinese FROM tb_demo065 a, tb_demo065_tel b WHERE a.id=b.id AND b.id=$_POSTtextidSQL語(yǔ)言中,可以通過(guò)兩種方式為表指定別名 第一種是通過(guò)關(guān)鍵字AS指定,如SELECT a.id,,a.address,b.math,b.english,b.chinese FROM tb_de
8、mo065 AS a,tb_demo065_tel AS b WHERE a.id=b.id第二種是在表名后直接加表的別名實(shí)現(xiàn)SELECT a.id,,a.address,b.math,b.english,b.chinese FROM tb_demo065 a,tb_demo065_tel b WHERE a.id=b.id 使用表的別名應(yīng)注意幾下幾點(diǎn)(1)別名通常是一個(gè)縮短了的表名,用于在連接中引用表中的特定列,如果連接中的多個(gè)表中有相同的名稱列存在,必須用表名或表的別名限定列名(2)如果定義了表的別名就不能再使用表名合并多個(gè)結(jié)果集SQL語(yǔ)言中,可以通過(guò)UNION 或 ALL將多
9、個(gè)SELECT語(yǔ)句的查詢結(jié)果合并輸出,這兩個(gè)關(guān)鍵字的使用說(shuō)明如下:UNION:利用該關(guān)鍵字可以將多個(gè)SELECT 語(yǔ)句的查詢結(jié)果合并輸出,并刪除重復(fù)行ALL:利用該關(guān)鍵字可以將多個(gè)SELECT 語(yǔ)句的查詢結(jié)果合并輸出,但不會(huì)刪除重復(fù)行在使用UNION或ALL關(guān)鍵字將多個(gè)表合并輸出時(shí),查詢結(jié)果必須具有相同的結(jié)構(gòu)并且數(shù)據(jù)類型必須兼容,另外使用UNION時(shí)兩張表的字段數(shù)量也必須相同,否則會(huì)提示SQL語(yǔ)句有錯(cuò)誤。e.x:SELECT id,name,pwd FROM tb_demo067 UNION SELECT uid,price,date FROM tb_demo067_tel簡(jiǎn)單嵌套查詢子查詢:
10、子查詢是一個(gè)SELECT查詢,返回單個(gè)值且嵌套在SELECT、INSERT、UPDATE和DELETE語(yǔ)句或其它查詢語(yǔ)句中,任何可以使用表達(dá)式的地方都可以使用子查詢.SELECT id,name,sex,date FROM tb_demo068 WHERE id in(SELECT id FROM tb_demo068 WHERE id=$_POSTtest)內(nèi)連接:把查詢結(jié)果作為WHERE子句的查詢條件即稱為內(nèi)連接五、復(fù)雜的嵌套查詢多表之間的嵌套查詢可以通過(guò)謂詞IN實(shí)現(xiàn),語(yǔ)法格式如下:test_expressionNOT IN subquery參數(shù)說(shuō)明:test_expression指SQL
11、表達(dá)式,subquery包含某結(jié)果集的子查詢多表嵌套查詢的原理:無(wú)論是多少?gòu)埍磉M(jìn)行嵌套,表與表之間一定存在某種關(guān)聯(lián),通過(guò)WHERE子句建立此種關(guān)聯(lián)實(shí)現(xiàn)查詢六、嵌套查詢?cè)诓樵兘y(tǒng)計(jì)中的應(yīng)用實(shí) 現(xiàn)多表查詢時(shí),可以同時(shí)使用謂詞ANY、SOME、ALL,這些謂詞被稱為定量比較謂詞,可以和比較運(yùn)算符聯(lián)合使用,判斷是否全部返回值都滿足搜索條 件.SOME和ANY謂詞是存在量的,只注重是否有返回值滿足搜索條件,這兩個(gè)謂詞的含義相同,可以替換使用;ALL謂詞稱為通用謂詞,它只關(guān)心是否有謂 詞滿足搜索要求.SELECT * FROM tb_demo069_people WHERE uid IN(SELECT de
12、ptID FROM tb_demo069_dept WHERE deptName=$_POSTselect)SELECT a.id, FROM tb_demo067 AS a WHERE idANY 大于子查詢中的某個(gè)值 =ANY 大于等于子查詢中的某個(gè)值 =ANY 小于等于子查詢中的某個(gè)值 =ANY 等于子查詢中的某個(gè)值 !=ANY或ANY 不等于子查詢中的某個(gè)值 ALL 大于子查詢中的所有值 =ALL 大于等于子查詢中的所有值 =ALL 小于等于子查詢中的所有值 =ALL 等于子查詢中的所有值 !=ALL或ALL 不等于子查詢中的所有值七、使用子查詢作派生的表在實(shí)際項(xiàng)目開(kāi)發(fā)過(guò)程
13、中經(jīng)常用到從一個(gè)信息較為完善的表中派生出一個(gè)只含有幾個(gè)關(guān)鍵字段的信息表,通過(guò)子查詢就可以來(lái)實(shí)現(xiàn)這一目標(biāo),如SELECT ,people.chinese,people.math,people.english FROM (SELECT name,chinese,math,english FROM tb_demo071) AS people注:子查詢應(yīng)遵循以下規(guī)則:(1)由比較運(yùn)算符引入的內(nèi)層子查詢只包含一個(gè)表達(dá)式或列名,在外層語(yǔ)句中的WHERE子句內(nèi)命名的列必須與內(nèi)層子查詢命名的列兼容(2)由不可更改的比較運(yùn)算符引入的子查詢(比較運(yùn)算符后面不跟關(guān)鍵字ANY或ALL)不包括GR
14、OUP BY 或 HAVING子句,除非預(yù)先確定了成組或單個(gè)的值(3)用EXISTS引入的SELECT列表一般都由*組成,不必指定列名(4)子查詢不能在內(nèi)部處理其結(jié)果使用子查詢作表達(dá)式SELECT (SELECT AVG(chinese)FROM tb_demo071),(SELECT AVG(english)FROM tb_demo071),(SELECT AVG(math)FROM tb_demo071) FROM tb_demo071注:在使用子查詢時(shí)最好為列表項(xiàng)取個(gè)別名,這樣可以方便用戶在使用mysql_fetch_array()函數(shù)時(shí)為表項(xiàng)賦值,如SELECT (SELECT AVG
15、(chinese) FROM tb_demo071) AS yuwen ,(SELECT AVG(english) FROM tb_demo071) AS yingyu,(SELECT AVG(math) FROM tb_demo071) AS shuxue FROM tb_demo071使用子查詢關(guān)聯(lián)數(shù)據(jù)SELECT * FROM tb_demo072_student WHERE id=(SELECT id FROM tb_demo072_class WHERE className = $_POSTtext)多表聯(lián)合查詢利用SQL語(yǔ)句中的UNION,可以將不同表中符合條件的數(shù)據(jù)信息顯示在同一
16、列中。e.x:SELECT * FROM tb_demo074_student UNION SELECT * FROM tb_demo074_fasten注:使用UNION時(shí)應(yīng)注意以下兩點(diǎn):(1)在使用UNION運(yùn)算符組合的語(yǔ)句中,所有選擇列表的表達(dá)式數(shù)目必須相同,如列名、算術(shù)表達(dá)式及聚合函數(shù)等(2)在每個(gè)查詢表中,對(duì)應(yīng)列的數(shù)據(jù)結(jié)構(gòu)必須一樣。十一、對(duì)聯(lián)合后的結(jié)果進(jìn)行排序?yàn)榱薝NION的運(yùn)算兼容,要求所有SELECT語(yǔ)句都不能有ORDER BY語(yǔ)句,但有一種情況例外,那就是在最后一個(gè)SELECT語(yǔ)句中放置ORDER BY 子句實(shí)現(xiàn)結(jié)果的最終排序輸出。e.x:SELECT * FROM tb_de
17、mo074_student UNION SELECT * FROM tb_demo074_fasten ORDER BY id使用UNION條件上相對(duì)比較苛刻,所以使用此語(yǔ)句時(shí)一定要注意兩個(gè)表項(xiàng)數(shù)目和字段類型是否相同十二、條件聯(lián)合語(yǔ)句SELECT * FROM tb_demo076_BEIJING GROUP BY name HAVING name=人民郵電出版社 OR name=機(jī)械工業(yè)出版社 UNION SELECT * FROM tb_demo076_BEIJING GROUP BY name HAVING name 人民郵電出版社 AND name 機(jī)械工業(yè)再版社 ORDER BY i
18、d上面語(yǔ)句應(yīng)用了GROUP BY分組語(yǔ)句和HAVING語(yǔ)句實(shí)現(xiàn)條件聯(lián)合查詢。其實(shí)現(xiàn)目的是先保證將人民郵電出版社和機(jī)械工業(yè)出版社始終位于名單最前列,然后再輸出其它的出版社簡(jiǎn)單內(nèi)連接查詢SELECT filedlist FROM table1 INNER JOIN table2 ON table1.column1 = table2.column1其中,filedlist是要顯示的字段,INNER表示表之間的連接方式為內(nèi)連接,table1.column1=table2.column1用于指明兩表間的連接條件,如:SELECT ,a.address,a.date,b.chinese,b.m
19、ath,b.english FROM tb_demo065 AS a INNER JOIN tb_demo065_tel AS b on a.id=b.id復(fù)雜內(nèi)連接查詢復(fù)雜的內(nèi)連接查詢是在基本的內(nèi)連接查詢的基礎(chǔ)上再附加一些查詢條件,如:SELECT ,a.address,a.date,b.chinese,b.math,b.english FROM tb_demo065 AS a INNER JOIN tb_demo065_tel AS b on a.id=b.id WHERE b.id=(SELECT id FROM tb_demo065 WHERE tb_demo065.nam
20、e=$_POSTtext)總之,實(shí)現(xiàn)表與表之間的關(guān)聯(lián)的本質(zhì)是兩表之間存在共同的數(shù)據(jù)項(xiàng)或者相同的數(shù)據(jù)項(xiàng),通過(guò)WHERE 子句或內(nèi)連接INNER JOIN ON 語(yǔ)句將兩表連接起來(lái),實(shí)現(xiàn)查詢使用外連接實(shí)現(xiàn)多表聯(lián)合查詢(1)LEFT OUTER JOIN表示表之間通過(guò)左連接方式相互連接,也可簡(jiǎn)寫(xiě)成LEFT JOIN,它是以左側(cè)的表為基準(zhǔn)故稱左連接,左側(cè)表中所有信息將被全部輸出,而右側(cè)表信息則只會(huì)輸出符合條件的信息,對(duì)不符合條件的信息則返回NULLe.x:SELECT ,a.address,b.math,b.english FROM tb_demo065 AS A LEFT OUTER JOIN tb_demo065_tel AS b ON a.id=b.id(2)RIGHT OUT
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 聚氨酯管材及管件購(gòu)銷合同協(xié)議
- 二手家具購(gòu)買合同協(xié)議
- 股權(quán)回購(gòu)合同法律效力分析
- 權(quán)益合同協(xié)議書(shū)模板
- 林州建筑職業(yè)技術(shù)學(xué)院《第二外語(yǔ)英語(yǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 供應(yīng)鏈合作協(xié)議書(shū)
- 南京醫(yī)科大學(xué)《康復(fù)醫(yī)學(xué)基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津市達(dá)標(biāo)名校2025屆初三下學(xué)期第三次(4月)月考數(shù)學(xué)試題含解析
- 燕京理工學(xué)院《現(xiàn)代推銷學(xué)實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 防火安全產(chǎn)品供貨合同格式
- 北京市2024年中考?xì)v史真題試卷(含答案)
- 職業(yè)技能大賽-鴻蒙移動(dòng)應(yīng)用開(kāi)發(fā)賽初賽理論知識(shí)考試及答案
- 2024年全國(guó)高考日語(yǔ)試卷(新題型)(含答案與解析)
- 部編版六年級(jí)下冊(cè)《第14課 文言文二則》2024年同步練習(xí)卷
- 報(bào)銷單據(jù)明細(xì)表Excel模板
- 2024-2030年中國(guó)低空監(jiān)視雷達(dá)行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 學(xué)習(xí)《吳軍閱讀與寫(xiě)作》 (50講 )
- 12J003《室外工程圖集》
- JGJ196-2010建筑施工塔式起重機(jī)安裝、使用、拆卸安全技術(shù)規(guī)程
- 檔案學(xué)概論-馮惠玲-筆記
- 2024至2030年中國(guó)桌上游戲(桌游)行業(yè)市場(chǎng)調(diào)查研究及投資潛力預(yù)測(cè)報(bào)告
評(píng)論
0/150
提交評(píng)論