




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、實(shí)驗(yàn)一 熟悉 Oracle SQL*PLUS 環(huán)境上機(jī)目的1 熟悉 Oracle的命令操作環(huán)境 SQL*PLUS 。2 熟悉并掌握一些 SQL*PLUS 命令。熟悉 Oracle 的基本知識預(yù)備知識SQL*PlusSQL 是一種能夠訪問關(guān)系數(shù)據(jù)庫(包括 Oracle 數(shù)據(jù)庫)的語言。它能夠 用在每一個 Oracle 工具中。SQL*Plus 是一個 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ù)庫表的數(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插入一個包含 text 字符串的行HELP擊活 Oracle 內(nèi)部的幫助部件HOST command在 SQL*Plus 中擊活一個操作系統(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)行一個命令文件時,顯示文本RUNR顯示并運(yùn)行在緩沖區(qū)中的當(dāng)前 SQL 命令RUNFORM filename從 SQL*Plus 中 運(yùn) 行 一 個 Oracle Forms 應(yīng)用程序SAVE file
4、name把 SQL 緩沖區(qū)中的內(nèi)容保存到以 filename 為名字的文件中,默認(rèn)路徑 為 orawinbinSPOOL filename寫所有的后面的命令或者輸出到一 個已經(jīng)命名的文件中。 假脫機(jī)輸入輸 出文件的后綴為 .LISSPOOL OFF|OUTOFF 關(guān)閉假 脫機(jī)輸 入輸出文件;OUT 改變假脫機(jī)輸入輸出,送文件 到打印機(jī)上START filename filename運(yùn)行以前保存的命令文件三上機(jī)練習(xí)1 SQL*Plus 的啟動 當(dāng)?shù)卿浀讲僮飨到y(tǒng)后,有三種方法啟動 SQL*Plus1) SQLPLUS(或 SQLPLUSW ,下同) 將看到如下的信息: SQL*Plus: Rele
5、ase (c) Copyright . All rights reserved. 請輸入用戶名: system 輸入你的用戶名字并按回車。SQL*Plus 將提示:請輸入口令: oracle 輸入你的密碼并按回車。那么,將看到 SQL*Plus 的提示符:SQL2) SQLPLUS Username 再提示你輸入密碼。 例如: SQLPLUS scott Enter Password: tigerSQL3) SQLPLUS username/password 例如:SQLPLUS scott/tigerSQL4)斷開與數(shù)據(jù)庫的連接SQLDISCONNECT5)退出 SQL*PlusSQLEXI
6、T或:SQLQuit 2建表練習(xí)用 ORACLE SQL*PLUS 創(chuàng)建學(xué)生選課數(shù)據(jù)庫、創(chuàng)建必要的完整性約束、插 入數(shù)據(jù)、體會完整性約束的意義,進(jì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、如果輸入錯誤, 可以把原先輸入的內(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); 則會報錯,大家可以試試。仿照上面的格式,自己再插入三行。(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);則會報錯,由于在 S表中不存在 S#
11、為 S99的記錄,或者說 C 表中不存在 C#為 C33 的記錄,因此違反了完整性約束,如上圖所示。6)、查詢記錄查找 C 表中所有的記錄:SELECT * FROM C;查找 S 表中所有的女生的學(xué)號和姓名:SELECT S#,SNAME FROM SWHERE SEX=F;練習(xí):查找 S表中所有年齡小于 20 歲的男生的學(xué)號。7)、修改記錄把學(xué)號為 “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; 會出現(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 語句 再插入一條記錄,此時可以有兩種選擇:save d:1.sql append;save d:1.sql replace; 第一種是在原來的文件后面追加記錄,第二種是覆蓋原文件。 也可以直接在界面中操作,如圖所示:推薦大家每寫一條 SQL 語句,追加保存一次,下次要執(zhí)行該腳本時,直接 輸入:start d:1.sql ; 或者 d:1.sql;即可。2、使用 spool 語句剛進(jìn)
14、入 SQL Plus 時輸入:spool d:a.txt;隨便寫幾個語句,然后輸入:spool off;然后打開 d:a.txt,你會發(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ù)庫。2 用 Show 命令顯示當(dāng)前用戶 (scott/oracle) 。3 練習(xí) SQL命令:對
15、Oracle數(shù)據(jù)庫基本表 EMP和 DEPT操作:1)檢索 EMP 中所有的記錄。2)列出工資在 1000到 2000之間的所有員工的 ENAME ,DEPTNO,SAL。3)顯示 DEPT 表中的部門號和部門名稱,并按部門名稱排序。4)顯示所有不同的工作類型。5)列出部門號在 10到 20之間的所有員工,并按名字的字母排序。6)列出部門號是 20,工作是職員的員工。7)顯示名字中包含 TH 和 LL 的員工名字。8)顯示所有員工的名字( Ename)和報酬( Remuneration)。9)顯示在 1983 年中雇傭的員工。10)查詢每個部門的平均工資。11)查詢出每個部門中工資最高的職工。
16、12)查詢出每個部門比平均工資高的職工人數(shù)。4.生成一個數(shù)據(jù)表 PROJECTS,其字段定義如下,其中 PROJID 是主鍵并且要求P_END_DATE 不能比 P_START_DATE 早。字段名稱數(shù)據(jù)類型 長度PROJIDNUMBER 4P_DESCVARCHAR2 20P_START_DATEDATEP_END_DATEDATEBUDGET_AMOUNTNUMBER 7,2MAX_NO_STAFFNUMBER 25.生成一個數(shù)據(jù)表 ASSIGNMENTS ,其字段定義如下, 其中 PROJID 是外鍵引自 PROJECTS數(shù)據(jù)表,EMPNO 是數(shù)據(jù)表 EMP 的外鍵,并且要求 PROJI
17、D 和 EMPNO不能為 NULL 。字段名稱數(shù)據(jù)類型長度PROJIDNUMBER4EMPNONUMBER4A_START_DATEDATEA_END_DATEDATEBILL_RATENUMBER4,2ASSIGN_TYPEVARCHAR226.用 DESCRIBE命令查看 4和 5題定義的字段。7.給 4 題中的 PROJECTS數(shù)據(jù)表增加一個 COMMENTS 字段,其類型為 LONG 給 5 題中的 ASSIGNMENTS 數(shù)據(jù)表增加一個 HOURS 字段,其類型為 NUMBER8.在 PROJECTS數(shù)據(jù)庫表中增加下列記錄: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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二年級音樂課堂互動學(xué)習(xí)計(jì)劃
- 企業(yè)食堂管理新模式:厲行節(jié)約減少食品浪費(fèi)
- 酒店托管經(jīng)營合同
- 智能景區(qū)管理系統(tǒng)開發(fā)合作協(xié)議
- 生態(tài)旅游景區(qū)開發(fā)建設(shè)合同
- 2025年ACCA國際注冊會計(jì)師考試真題卷:財(cái)務(wù)會計(jì)準(zhǔn)則解讀與應(yīng)用試題
- 基于本地模型偏差值聚類的聯(lián)邦遺忘算法研究
- 基于二維MXene材料的異質(zhì)結(jié)構(gòu)設(shè)計(jì)及其在電磁波吸收中的應(yīng)用
- 2025-2030中國椰子汁行業(yè)營銷效益分析與投資盈利性研究研究報告
- 2025-2030中國棉花行業(yè)市場發(fā)展分析及發(fā)展趨勢與投資風(fēng)險研究報告
- GB/T 44273-2024水力發(fā)電工程運(yùn)行管理規(guī)范
- DB65-T 4765-2024 農(nóng)牧區(qū)標(biāo)準(zhǔn)化羊場建設(shè)規(guī)范
- 城軌行車課程設(shè)計(jì)
- 2024年南京市中考?xì)v史試題及答案
- 2024羽毛球教案36課時
- A類供應(yīng)商績效評價表
- 攝影攝像知識競賽考試題庫500題(含答案)
- 2024至2030年中國丹參行業(yè)市場發(fā)展監(jiān)測及投資潛力預(yù)測報告
- GB/T 44218-2024微型揚(yáng)聲器測量方法
- (正式版)JB∕T 14666-2024 鋼質(zhì)汽車轉(zhuǎn)向節(jié)臂鍛件 工藝規(guī)范
- AQ/T 9009-2015 生產(chǎn)安全事故應(yīng)急演練評估規(guī)范(正式版)
評論
0/150
提交評論