ORACLE 實驗二,oracle實驗
實驗二:資料操縱
實驗學時:4學時
實驗類型:綜合型
實驗要求:必修
一、實驗目的
1、掌握SQL資料查詢語句;
2、掌握SQL聚集合函式的使用;
3、掌握SQL插入、修改、刪除語句的使用。
二、實驗內容
1.工程項目採購資料庫,在實驗3.2的基礎上插入範例資料並完成下列操作:
(1) 求向工程J1提供零件的供應商的編號。
(2) 求向工程J1提供零件P1的供應商的編號。
(3) 求向工程J1提供紅色零件的供應商的編號。
(4) 求沒有使用天津供應商提供的紅色零件的工程號。
(5) 求至少使用了供應商S1所提供的全部零件的工程號。
(6) 統計各個供應商供應的零件總數。
(7) 求至少使用了3種以上零件的工程號。
(8) 把所有紅色零件的顏色改為粉紅色。
(9) 將向工程J1提供零件P1的供應商S1改為S2提供。
(10) 刪除全部紅色零件以及相應的供應-使用記錄。
2.產品價格資料庫,在實驗3.3的基礎上插入範例資料並完成下列操作
(1) 列出速度至少是150的那些PC機的型號。
(2) 哪些廠家生產的LAPTOP配置的硬碟不低於1。
(3) 找出由生產廠B所生產的全部產品的型號和價格。
(4) 找出所有的彩色雷射印表機的型號。
(5) 找出生產運行速度至少是450MC的PC的廠商。
(6) 找出價格最高的印表機。
(7) 找出每一個生產廠商的PC機的最高價格。
(8) 找出至少生產三種不同型號PC機的廠商。
(9) 廠商A兼并廠商B,把所有B廠商生產的產品改成由廠商A生產。
(10) 刪除所有不生產印表機的廠商生產的LAPTOP機。
三、實驗原理、方法和手段
在實驗3定義的關係模式的基礎上,使用SQL資料動作陳述式完成資料的查詢和更新操作。在查詢和更新時要注意查詢的最佳化策略。
四、實驗組織運行要求
本實驗為綜合型實驗,採用集中授課形式,學生集中上機操作。具體要求如下:
1、學生在進行實驗前必須進行充分的預習,熟悉實驗內容;
2、教師在學生實驗過程中予以必要的輔導,學生獨立完成實驗。
五、實驗條件
1、提供一台具有WINDOWS 98/2000/NT/XP作業系統的電腦;
2、Oracle8.0以上設計環境。
六、實驗步驟
類同實驗三。
七、思考題
實驗比較IN與Exists兩種子查詢的區別。
八、實驗報告
1.實驗預習
在實驗前每位同學都需要對本次實驗進行認真的預習,並寫好預習報告,在預習報告中要寫出實驗目的、要求、簡要的實驗步驟,形成一個操作提綱。
2.實驗記錄
學生開始實驗時,應該將記錄本放在近旁,將實驗中所做的每一步操作、所得結果及相關條件如實地記錄下來。
3.實驗報告
主要內容包括實驗中的查詢語句、資料更新語句、運行結果以及對操作過程中出現錯誤的分析總結,回答思考題,給出實驗結論。
九、其它說明
學生嚴格遵守實驗室的各項規章制度,配合和服從實驗室人員管理。
經過實驗 我們也得到了實驗的結果
注意這個兩個SQL實驗指令碼是基於實驗一中的兩個資料庫的
代碼如下,進過驗證 實驗沒有錯誤 主要的是雙NOT EXISTS 詳細的解答見我的部落格另一章節
--2.1---------------------------------------------------------------------------------------select SNO FROM SPJWHERE JNO='J1';select SNO FROM SPJWHERE JNO='J1'AND PNO='P1';select SPJ.SNO FROM SPJ,PWHERE SPJ.JNO='J1'AND SPJ.PNO=P.PNO AND COLOR='紅';SELECT DISTINCT SPJ.JNO FROM SPJ,S,PWHERE SPJ.SNO=S.SNO AND SPJ.PNO=P.PNO AND S.CITY!='天津' AND P.COLOR!='紅'; SELECT DISTINCT JNOFROM JWHERE NOT EXISTS ( SELECT * FROM SPJ SPJ1 WHERE SPJ1.sno='S1' AND NOT EXISTS ( SELECT * FROM SPJ SPJ2 WHERE SPJ2.pno= SPJ1.pno AND SPJ1.jno= J.jno ) ); SELECT SPJ.SNO,COUNT(*) FROM SPJGROUP BY SPJ.SNO;SELECT SPJ.JNO FROM SPJGROUP BY SPJ.JNOHAVING COUNT(*) >=3;UPDATE PSET COLOR='粉紅'WHERE COLOR='紅';UPDATE SPJSET SNO='S2'WHERE SNO='S1' AND JNO='J1' AND PNO='P1';DELETE SPJWHERE SPJ.PNO IN ( SELECT P.PNO FROM p WHERE P.COLOR='紅' ); DELETE PWHERE P.COLOR='紅';--2.2---------------------------------------------------------------------------------SELECT MODELFROM PCWHERE SPEED >= 150;SELECT DISTINCT PRODUCT.MAKER FROM PRODUCT,LAPTOPWHERE PRODUCT.MODEL=LAPTOP.MODEL AND LAPTOP.HD >= 1.0;SELECT MAKER,PRODUCT.MODEL,PRICEFROM PRODUCT,PCWHERE PRODUCT.MAKER='B' AND PRODUCT.model=PC.modelUNION(SELECT MAKER,PRODUCT.MODEL,PRICEFROM PRODUCT,LAPTOPWHERE PRODUCT.MAKER='B' AND PRODUCT.model=LAPTOP.model)UNION(SELECT MAKER,PRODUCT.MODEL,PRICEFROM PRODUCT,PRINTERWHERE PRODUCT.MAKER='B' AND PRODUCT.model=PRINTER.model);SELECT MODEL FROM PRINTERWHERE COLOR='TRUE';SELECT DISTINCT PRODUCT.MAKERFROM PRODUCT,PCWHERE TYPE='PC' AND PRODUCT.MODEL=PC.MODEL AND SPEED>450;SELECT * FROM PRINTER WHERE PRICE >= ALL( SELECT PRICE FROM PRINTER);SELECT MODEL,PRICE FROM PRINTERWHERE PRICE= ( SELECT MAX(PRICE) FROM PRINTER);SELECT DISTINCT MAKER,MAX(PRICE)FROM PRODUCT ,PCWHERE PRODUCT.MODEL=PC.MODEL AND TYPE='PC'GROUP BY MAKER;SELECT DISTINCT MAKER,COUNT(*) FROM PRODUCTWHERE TYPE='PC'GROUP BY MAKERHAVING COUNT(*)>=3;UPDATE PRODUCTSET MAKER='B'WHERE MAKER='A';DELETE PRODUCT P1WHERE P1.TYPE='LAPTOP' AND EXISTS ( SELECT * FROM PRODUCT P2 WHERE P2.TYPE='Printer' AND P1.MODEL=P2.MODEL);ROLLBACK;
如有不當之處還請多多指教...
本人勞動成果,還請轉載署名出處。。。
做實驗用的 oracle 個
Oracle Database 快捷版 11g 第 2 版
www.oracle.com/...x.html
因為只是做實驗用,只需下載快捷版就夠了!
找了一點10G 快捷版的介紹,但10G官方已經無下載了,希望對你有協助
Oracle 資料庫 10g 快捷版
免費開發、部署和分發
Oracle 資料庫 10g 快捷版(Oracle 資料庫 XE)是一款基於 Oracle 資料庫 10g 第 2 版程式碼程式庫的小型入門級資料庫,它具備以下優點:免費進行開發、部署和分發;下載速度快;並且管理簡單。Oracle 資料庫 XE 是一款優秀的入門級資料庫,可供以下使用者使用:
致力於 PHP、Java、.NET、XML 和開放原始碼應用程式的開發人員
需要免費的入門級資料庫進行培訓和部署的 DBA
需要入門級資料庫進行免費分發的獨立軟體廠商 (ISV) 和硬體供應商
需要在課程中使用免費資料庫的教育機構和學生
現在,利用 Oracle 資料庫 XE,您可以使用強大的、公認的、行業領先的基礎架構來開發和部署應用程式,然後在必要時進行升級而不必進行昂貴和複雜的移植。閱讀使用者對 Oracle 資料庫 XE 的評價。
Oracle 資料庫 XE 對安裝到的主機的規模和 CPU 數量不作限制(每台電腦一個資料庫),但 XE 將最多儲存 4GB 的使用者資料,最多使用 1GB 記憶體,並在主機上使用一個 CPU。
Oracle網上實驗室在哪可以找到?
做了好幾年的ORACLE,沒聽說有這樣的環境。
現在記憶體很便宜,加到1G就可以跑ORACLE了,我當初還用256跑過呢。
另外oracle學習中要涉及到oracle的一些檔案,所以還是自己本地安裝一個吧