試驗(yàn)一熟悉OracleSQL1309剖析_第1頁
試驗(yàn)一熟悉OracleSQL1309剖析_第2頁
試驗(yàn)一熟悉OracleSQL1309剖析_第3頁
試驗(yàn)一熟悉OracleSQL1309剖析_第4頁
試驗(yàn)一熟悉OracleSQL1309剖析_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí)驗(yàn)一 熟悉 Oracle SQL*PLUS 環(huán)境上機(jī)目的1 熟悉 Oracle的命令操作環(huán)境 SQL*PLUS 。2 熟悉并掌握一些 SQL*PLUS 命令。熟悉 Oracle 的基本知識(shí)預(yù)備知識(shí)SQL*PlusSQL 是一種能夠訪問關(guān)系數(shù)據(jù)庫(kù)(包括 Oracle 數(shù)據(jù)庫(kù))的語言。它能夠 用在每一個(gè) Oracle 工具中。SQL*Plus 是一個(gè) Oracle 的產(chǎn)品,有自己的命令語言。SQL*Plus 有許多命令,表 1-1 只是列舉了一部分常用命令。表 1-1 常用 SQL*Plus 命令SQL*Plus 命令縮寫意義APPEND textA text把字符串增加到當(dāng)前行的末尾CHANG

2、E /old/new/C/old/new/把當(dāng)前行的舊字符串替換成新字符串CHANGE /text/C/text/把當(dāng)前行中字符串刪除CLEAR BUFFERCL BUFF從 SQL 緩沖區(qū)中刪除所有行CONNECT userid/passwordCONN userid/passwor d在當(dāng)前的登錄下,擊活其它的 Oracle 用戶DEL刪除當(dāng)前行DESCRIBE tablenameDESC tablename顯示任何數(shù)據(jù)庫(kù)表的數(shù)據(jù)結(jié)構(gòu)ED filename用默認(rèn)的編輯器編輯保存的文件內(nèi)容EXIT退出 SQL*PlusGET filename把以 filename 為名字的文件內(nèi)容調(diào)入 SQ

3、L 緩沖區(qū)中INPUTI插入許多行INPUT textI text插入一個(gè)包含 text 字符串的行HELP擊活 Oracle 內(nèi)部的幫助部件HOST command在 SQL*Plus 中擊活一個(gè)操作系統(tǒng)命 令LISTL顯示 SQL 緩沖區(qū)的所有行LIST nL n顯示 SQL 緩沖區(qū)中的一行到 n行LIST m nL m nSQL 緩沖區(qū)中的從第 m 行顯示到第 n行PROMPT text當(dāng)運(yùn)行一個(gè)命令文件時(shí),顯示文本RUNR顯示并運(yùn)行在緩沖區(qū)中的當(dāng)前 SQL 命令RUNFORM filename從 SQL*Plus 中 運(yùn) 行 一 個(gè) Oracle Forms 應(yīng)用程序SAVE file

4、name把 SQL 緩沖區(qū)中的內(nèi)容保存到以 filename 為名字的文件中,默認(rèn)路徑 為 orawinbinSPOOL filename寫所有的后面的命令或者輸出到一 個(gè)已經(jīng)命名的文件中。 假脫機(jī)輸入輸 出文件的后綴為 .LISSPOOL OFF|OUTOFF 關(guān)閉假 脫機(jī)輸 入輸出文件;OUT 改變假脫機(jī)輸入輸出,送文件 到打印機(jī)上START filename filename運(yùn)行以前保存的命令文件三上機(jī)練習(xí)1 SQL*Plus 的啟動(dòng) 當(dāng)?shù)卿浀讲僮飨到y(tǒng)后,有三種方法啟動(dòng) SQL*Plus1) SQLPLUS(或 SQLPLUSW ,下同) 將看到如下的信息: SQL*Plus: Rele

5、ase (c) Copyright . All rights reserved. 請(qǐng)輸入用戶名: system 輸入你的用戶名字并按回車。SQL*Plus 將提示:請(qǐng)輸入口令: oracle 輸入你的密碼并按回車。那么,將看到 SQL*Plus 的提示符:SQL2) SQLPLUS Username 再提示你輸入密碼。 例如: SQLPLUS scott Enter Password: tigerSQL3) SQLPLUS username/password 例如:SQLPLUS scott/tigerSQL4)斷開與數(shù)據(jù)庫(kù)的連接SQLDISCONNECT5)退出 SQL*PlusSQLEXI

6、T或:SQLQuit 2建表練習(xí)用 ORACLE SQL*PLUS 創(chuàng)建學(xué)生選課數(shù)據(jù)庫(kù)、創(chuàng)建必要的完整性約束、插 入數(shù)據(jù)、體會(huì)完整性約束的意義,進(jìn)行簡(jiǎn)單的數(shù)據(jù)查詢。1) 、在桌面直接雙擊 SQL Plus圖標(biāo),進(jìn)入 ORACLE SQL Plus。2) 、輸入用戶名 /密碼,為 system/oracle或者 scott/tiger。主機(jī)字符串不用寫。3) 、創(chuàng)建學(xué)生表 S,如下所示:CREATE TABLE S(S# CHAR(4) NOT NULL,SNAME CHAR(8) NOT NULL,AGE SMALLINT,SEX CHAR(1),PRIMARY KEY(S#);結(jié)果如圖所示:

7、4) 、然后依次創(chuàng)建課程表 C 和選課關(guān)系表,如下所示: CREATE TABLE C(C# CHAR(4),CNAME CHAR(10) NOT NULL,TEACHER CHAR(8),PRIMARY KEY(C#);CREATE TABLE SC(S# CHAR(4),C# CHAR(4), GRADE SMALLINT,PRIMARY KEY(S#,C#),FOREIGN KEY(S#) REFERENCES S(S#),然后按 Ctrl+C 復(fù)制到記FOREIGN KEY(C#) REFERENCES C(C#), CHECK(GRADE BETWEEN 0 AND 100);提示:

8、如果輸入錯(cuò)誤, 可以把原先輸入的內(nèi)容選中, 事本中,修改后直接 Ctrl+V 粘貼到 SQL Plus 中。5) 、插入記錄:(1) 試著往 S 表中插入幾條記錄: INSERT INTO S(S#,SNAME,AGE,SEX) VALUES(S1, LI ,19, M);INSERT INTO S(S#,SNAME,AGE,SEX) VALUES( S2 , YANG ,19, F );INSERT INTO S(S#,SNAME,AGE,SEX) VALUES(S3, ZHANG ,18, F );如果插入的記錄的主鍵已存在,則違反了唯一性約束: SQLINSERT INTO S(S#,S

9、NAME,AGE,SEX)VALUES(S2,ZHOU,19,F);INSERT INTO S(S#,SNAME,AGE,SEX)ERROR 位于第 1 行:ORA-00001: 違反唯一約束條件 (SCOTT.SYS_C003007)SQL Plus 不支持連續(xù)插入記錄,如輸入: INSERT INTO S(S#,SNAME,AGE,SEX) VALUES(S5,SUN,19,F) VALUES(S6,QIAN,20,M); 則會(huì)報(bào)錯(cuò),大家可以試試。仿照上面的格式,自己再插入三行。(2) 向 C 表中插入記錄: 和上面一樣,插入幾條記錄: INSERT INTO C(C#,CNAME,TEA

10、CHER) VALUES(C1, MATHS , WANG ); INSERT INTO C(C#,CNAME,TEACHER) VALUES( C2 , ENGLISH , ZHAO ); INSERT INTO C(C#,CNAME,TEACHER) VALUES( C3 , COMPUTER, DING );(3) 往 SC 表中插入記錄: 先插入一條記錄:INSERT INTO SC(S#,C#,GRADE)VALUES(S2, C3 ,90); 再插入:INSERT INTO SC(S#,C#,GRADE) VALUES(S99, C33,90);則會(huì)報(bào)錯(cuò),由于在 S表中不存在 S#

11、為 S99的記錄,或者說 C 表中不存在 C#為 C33 的記錄,因此違反了完整性約束,如上圖所示。6)、查詢記錄查找 C 表中所有的記錄:SELECT * FROM C;查找 S 表中所有的女生的學(xué)號(hào)和姓名:SELECT S#,SNAME FROM SWHERE SEX=F;練習(xí):查找 S表中所有年齡小于 20 歲的男生的學(xué)號(hào)。7)、修改記錄把學(xué)號(hào)為 “S2的”學(xué)生的年齡改為 18。UPDATE SSET AGE=18WHERE S#= S2;練習(xí):把 C2 課程的任課教師改名為 “ZHU”8)、刪除記錄把課程名為 “MATH”S的記錄從 C 表中刪除。 DELETE FROM CWHERE

12、 CNAME=MATHS ;現(xiàn)在試著做如下的刪除: DELETE FROM C WHERE C#= C3; 會(huì)出現(xiàn)什么結(jié)果?想一想原因9)、撤消基本表SQL drop table C; drop table CERROR 位于第 1 行 :ORA-02449: 表中的唯一 /主鍵被外部關(guān)鍵字引用由于 C 表的主鍵被外部關(guān)鍵字( SC 表的關(guān)鍵字)引用,所以不允許刪除 C 表。 可采用如下方式在未刪除 SC 表的情況下刪除 C 表:drop table C cascade constraints也可以先刪除 SC表,再刪除 C 表。參考保存 SQL 語句1、使用 save 方法打開 SQL Pl

13、us,以 scott/tiger 登錄。 隨便輸入一條語句,注意要是正確的語句,如 select * from S; 再輸入:save d:1.sql; 可保存到指定路徑。用文本編輯工具打開該文件,可以看到 SQL 語句 再插入一條記錄,此時(shí)可以有兩種選擇:save d:1.sql append;save d:1.sql replace; 第一種是在原來的文件后面追加記錄,第二種是覆蓋原文件。 也可以直接在界面中操作,如圖所示:推薦大家每寫一條 SQL 語句,追加保存一次,下次要執(zhí)行該腳本時(shí),直接 輸入:start d:1.sql ; 或者 d:1.sql;即可。2、使用 spool 語句剛進(jìn)

14、入 SQL Plus 時(shí)輸入:spool d:a.txt;隨便寫幾個(gè)語句,然后輸入:spool off;然后打開 d:a.txt,你會(huì)發(fā)現(xiàn)剛才寫的語句和運(yùn)行結(jié)果都保存在文件d:a.txt中。同學(xué)們可以在 system用戶下輸入下面命令, 解鎖 scott 用戶,再以 scott 用戶登錄: SQLalter user scott account unlock;/ 解鎖 scott 用戶SQLconn scott/oracle;/ 以 scott 用戶登錄四上機(jī)作業(yè)1 用 SQL Plus 連接數(shù)據(jù)庫(kù)。2 用 Show 命令顯示當(dāng)前用戶 (scott/oracle) 。3 練習(xí) SQL命令:對(duì)

15、Oracle數(shù)據(jù)庫(kù)基本表 EMP和 DEPT操作:1)檢索 EMP 中所有的記錄。2)列出工資在 1000到 2000之間的所有員工的 ENAME ,DEPTNO,SAL。3)顯示 DEPT 表中的部門號(hào)和部門名稱,并按部門名稱排序。4)顯示所有不同的工作類型。5)列出部門號(hào)在 10到 20之間的所有員工,并按名字的字母排序。6)列出部門號(hào)是 20,工作是職員的員工。7)顯示名字中包含 TH 和 LL 的員工名字。8)顯示所有員工的名字( Ename)和報(bào)酬( Remuneration)。9)顯示在 1983 年中雇傭的員工。10)查詢每個(gè)部門的平均工資。11)查詢出每個(gè)部門中工資最高的職工。

16、12)查詢出每個(gè)部門比平均工資高的職工人數(shù)。4.生成一個(gè)數(shù)據(jù)表 PROJECTS,其字段定義如下,其中 PROJID 是主鍵并且要求P_END_DATE 不能比 P_START_DATE 早。字段名稱數(shù)據(jù)類型 長(zhǎng)度PROJIDNUMBER 4P_DESCVARCHAR2 20P_START_DATEDATEP_END_DATEDATEBUDGET_AMOUNTNUMBER 7,2MAX_NO_STAFFNUMBER 25.生成一個(gè)數(shù)據(jù)表 ASSIGNMENTS ,其字段定義如下, 其中 PROJID 是外鍵引自 PROJECTS數(shù)據(jù)表,EMPNO 是數(shù)據(jù)表 EMP 的外鍵,并且要求 PROJI

17、D 和 EMPNO不能為 NULL 。字段名稱數(shù)據(jù)類型長(zhǎng)度PROJIDNUMBER4EMPNONUMBER4A_START_DATEDATEA_END_DATEDATEBILL_RATENUMBER4,2ASSIGN_TYPEVARCHAR226.用 DESCRIBE命令查看 4和 5題定義的字段。7.給 4 題中的 PROJECTS數(shù)據(jù)表增加一個(gè) COMMENTS 字段,其類型為 LONG 給 5 題中的 ASSIGNMENTS 數(shù)據(jù)表增加一個(gè) HOURS 字段,其類型為 NUMBER8.在 PROJECTS數(shù)據(jù)庫(kù)表中增加下列記錄:PROJID12P DESCWRITE C030 COURSEPROOF READ NOTESP START DATE02-JAN-8801-JAN-89P END DATE07-JAN-8810-JAN-89BUDGET AMOUNT500600MAX NO STAFF11COMMENTSBR CREATIVEYOUR CHOICE9.在 ASSIGNMENT

溫馨提示

  • 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. 人人文庫(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論