數(shù)據(jù)庫實驗4(共13頁)_第1頁
數(shù)據(jù)庫實驗4(共13頁)_第2頁
數(shù)據(jù)庫實驗4(共13頁)_第3頁
數(shù)據(jù)庫實驗4(共13頁)_第4頁
數(shù)據(jù)庫實驗4(共13頁)_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、大連海事大學數(shù)據(jù)庫原理課程實驗報告(2016-2017學年第二學期)實驗四 數(shù)據(jù)更新班 級: 智能科學與技術1班 學 號: 2220152937 姓 名: 劉宇軒 指導教師: 謝兄 成 績: 大連海事大學數(shù)據(jù)庫原理課程實驗大綱實驗名稱: 實驗四 數(shù)據(jù)更新 實驗學時: 2 適用專業(yè): 智能科學與技術 實驗環(huán)境: SQL.serve2008 執(zhí) 筆 者: 劉宇軒 編寫日期: 2017-5-29 1 實驗目的(1) 掌握SQL數(shù)據(jù)更新語句的基本使用方法,如UPDATE、DELETE、INSERT。(2) 掌握更新語句條件中的嵌套查詢使用方法。2 實驗內(nèi)容2.1 掌握SQL更新語句的基本使用方法(1)

2、 INSERT基本語句。(2) UPDATE基本語句。(3) DELETE基本語句。2.2 掌握SQL更新語句的高級使用方法(1) INSERT批量插入語句。(2) UPDATE語句使用嵌套子查詢。(3) DELETE語句使用嵌套子查詢。3 實驗要求(1) 深入復習教材第三章SQL有關更新語句。(2) 根據(jù)書上的例子,針對TPCH數(shù)據(jù)庫模式設計各種更新語句,每種類型更新語句至少要設計一個,描述清楚數(shù)據(jù)更新要求,運行你所設計的更新語句,并截圖相應的實驗結果,每幅截圖并要有較為詳細的描述。也可以按照附1所列示例查詢做實驗。(3) 實驗步驟和實驗總結中要詳細描述實驗過程中出現(xiàn)的問題、原因和解決方法。

3、4 實驗步驟4.1 掌握SQL更新語句的基本使用方法(1) INSERT基本語句(插入全部列的數(shù)據(jù))。 插入一個新顧客的記錄,要求每列都給一個合理的值插入一條訂單明細記錄,要求每列都給一個合理的值INSERT INTO CUSTOMER(CUSTKEY,NAME,ADDRESS,NATIONKEY,PHONE,ACCTBAL,MKTSEGMENT,COMMENT)VALUES(8,'劍心','北海道',5,594579,13.3,'同心','無')原圖插入后圖(2) INSERT基本語句(插入部分列的數(shù)據(jù),要求隨機生成某些數(shù)字列或

4、者字符列的數(shù)據(jù))。插入一條訂單記錄,可以只給出必要的幾個字段的值,其中數(shù)值字段可以用RANDOM函數(shù)隨機生成數(shù)值INSERTINTO ORDERS(ORDERKEY,CUSTKEY,ORDERSTATUS,TOTALPRICE,ORDERDATE,ORDERPRIORITY,CLERK,SHIPPRIORITY,COMMENT)VALUES(8,3,RAND()*10,10000,'2015-4-4',RAND()*1000,RAND()*1000,RAND()*1000,'無')原圖更新圖(3) UPDATE基本語句(修改所有記錄的某些列的值)。修改所有零件的

5、零售價,使其價格上浮10% UPDATE PARTSET retailprice=retailprice*1.1原圖更新圖(4) UPDATE基本語句(修改部分記錄的某些列的值)。修改顧客張三的國籍UPDATE CUSTOMERSET NATIONKEY=2WHERE NAME='張三'原圖更新后圖(5) DELETE基本語句(刪除所有記錄)。刪除所有訂單記錄DELETE FROM lineitemWHERE orderkey IN(SELECT orderKEYFROM orders)DELETE FROM ORDERS(6) DELETE基本語句(刪除部分記錄)。刪除201

6、6年1月1日之前訂單記錄DELETE FROM lineitemWHERE orderkey IN(SELECT orderKEYFROM ordersWHEREORDERDATE<'2016-1-1')DELETE FROM ORDERSWHERE ORDERDATE<'2016-1-1'4.2 掌握SQL更新語句的高級使用方法(7) INSERT基本語句(插入全部列的數(shù)據(jù))。 插入一個新顧客的記錄,要求每列都給一個合理的值插入一條訂單明細記錄,要求每列都給一個合理的值INSERT INTO CUSTOMER(CUSTKEY,NAME,ADDRES

7、S,NATIONKEY,PHONE,ACCTBAL,MKTSEGMENT,COMMENT)VALUES(8,'劍心','北海道',5,594579,13.3,'同心','無')原圖插入后圖(8) INSERT基本語句(插入部分列的數(shù)據(jù),要求隨機生成某些數(shù)字列或者字符列的數(shù)據(jù))。插入一條訂單記錄,可以只給出必要的幾個字段的值,其中數(shù)值字段可以用RANDOM函數(shù)隨機生成數(shù)值INSERTINTO ORDERS(ORDERKEY,CUSTKEY,ORDERSTATUS,TOTALPRICE,ORDERDATE,ORDERPRIORITY,

8、CLERK,SHIPPRIORITY,COMMENT)VALUES(8,3,RAND()*10,10000,'2015-4-4',RAND()*1000,RAND()*1000,RAND()*1000,'無')原圖更新圖(9) UPDATE基本語句(修改所有記錄的某些列的值)。修改所有零件的零售價,使其價格上浮10% UPDATE PARTSET retailprice=retailprice*1.1原圖更新圖(10) UPDATE基本語句(修改部分記錄的某些列的值)。修改顧客張三的國籍UPDATE CUSTOMERSET NATIONKEY=2WHERE NA

9、ME='張三'原圖更新后圖(11) DELETE基本語句(刪除所有記錄)。刪除所有訂單記錄DELETE FROM lineitemWHERE orderkey IN(SELECT orderKEYFROM orders)DELETE FROM ORDERS(12) DELETE基本語句(刪除部分記錄)。刪除2016年1月1日之前訂單記錄DELETE FROM lineitemWHERE orderkey IN(SELECT orderKEYFROM ordersWHEREORDERDATE<'2016-1-1')DELETE FROM ORDERSWHER

10、E ORDERDATE<'2016-1-1'(13) INSERT批量插入語句(把一個查詢結果插入到另外一個表中)。創(chuàng)建一個顧客購物統(tǒng)計表,記錄每個顧客及其購物總數(shù)和總價等信息CREATE TABLE CUSTORDER( CUSTKEY INT, NAME VARCHAR(25), QUANTITY REAL,TOTALPRICE REAL)INSERT INTO CUSTORDER(CUSTKEY,NAME,QUANTITY,TOTALPRICE)SELECT C.CUSTKEY,C.NAME,L.QUANTITY,O.totalpriceFROM CUSTOMER

11、C,ORDERS O,LINEITEM LWHERE C.CUSTKEY=O.CUSTKEY AND L.ORDERKEY=O.ORDERKEY (14) INSERT批量插入語句(使某個表的數(shù)據(jù)量倍增)。 把零件表的數(shù)據(jù)插入零件表中,多次重復執(zhí)行,知道總記錄數(shù)達到50萬為止,記錄下你執(zhí)行了多少次?執(zhí)行過程中你是如何保證實體完整性約束的INSERTINTO PART(PARTKEY,NAME,SIZE,RETAILPRICE)SELECT PARTKEY+(SELECT COUNT(*) FROM PART),NAME,SIZE,RETAILPRICE FROM PART每次把PART加原表元

12、組數(shù),保證完整性約束(15) UPDATE語句使用嵌套子查詢(利用一個表中的數(shù)據(jù)來判斷是否修改另外一個表中的數(shù)據(jù))。修改顧客張三的訂單明細記錄中111號零件的折扣UPDATE LINEITEMSET DISCOUNT=0.90WHERE ORDERKEY IN(SELECT ORDERKEYFROM ORDERS O,CUSTOMER CWHERE O.CUSTKEY=C.CUSTKEY ANDC.NAME='張三')原表如圖更新之后張三的折扣為0.90(16) UPDATE語句使用嵌套子查詢(利用一個表中的數(shù)據(jù)修改另外一個表中的數(shù)據(jù))。利用LINEITEM表中的詳細信息修改對

13、應訂單中的totalprice利用PARTSUPP 表中的供應價格來修改LINEITEM中的EXTENDEDPRICE,假設:UPDATE LINEITEM SET EXTENDEDPRICE= PS.SUPPLYCOST*lineitem.QUANTITY * LINEITEM.DISCOUNTFROM PARTSUPP PSWHERE PS.PARTKEY=lineitem.partkey AND PS.SUPPKEY=lineitem.suppkey原圖更新之后圖UPDATE ORDERSSET ORDERS.TOTALPRICE=PS.SUPPLYCOST*QUANTITYFROM L

14、INEITEM L,PARTSUPP PSWHERE L.ORDERKEY IN(SELECT L2.ORDERKEYFROM LINEITEM L2,ORDERS O,PARTSUPP PS2WHERE O.ORDERKEY=L2.ORDERKEY AND PS2.SUPPKEY=L2.partkey AND PS2.SUPPKEY=L2.suppkey)原圖更新之后圖(17) DELETE語句使用嵌套子查詢(利用一個表中的數(shù)據(jù)來判斷是否刪除另外一個表中的數(shù)據(jù))。刪除顧客張三的訂單記錄DELETE FROM lineitemWHERE orderkey IN(SELECT ORDERKEYF

15、ROM ORDERSWHERE ORDERKEY IN(SELECT ORDERKEYFROM CUSTOMER CWHERE C.NAME='張三' AND C.CUSTKEY=ORDERS.CUSTKEY)DELETE FROM ORDERSWHERE ORDERKEY IN(SELECT ORDERKEYFROM CUSTOMER CWHERE C.NAME='張三' AND C.CUSTKEY=ORDERS.CUSTKEY)原圖更新圖5 總結與體會5.1 實驗中出現(xiàn)的問題及其解決方案相對于上一次,這次實驗難度比較大。首先出現(xiàn)的問題是因為沒有復習,知識點大量遺忘,后經(jīng)過復習終于想起來了這些知識點。另一個問題是不知道數(shù)據(jù)庫怎么備份還原。在計算機科學與技術某葛優(yōu)同學的幫助我找到了處理方法,解決了問題。還有就是批量插入數(shù)據(jù)那里。我不得不在網(wǎng)上查了很多資料,找到了處理這類問題的方法。使用RAND()函數(shù)也費了我很多時間。網(wǎng)

溫馨提示

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

評論

0/150

提交評論