2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、添加記錄刪除記錄修改記錄,第3章數(shù)據(jù)庫的操作,第3章數(shù)據(jù)庫的操作,3.1操作表數(shù)據(jù) 3.1.1插入表記錄 語法格式: INSERT INTO table_name[column_list] VALUES(constant1,constant2,…) 該語句的功能是向由table_name指定的表中加入一行,由VALUES指定的各列值。

2、 (1) 在插入時(shí),列值表必須與列名表順序和數(shù)據(jù)類型一致。 (2) VALUES中描述的值可以是一個(gè)常量、變量或一個(gè)表達(dá)式。 (3) 如果列值為空,則值必須置為NULL。如果列值指定為該列的默認(rèn)值,則用DEFAULT。,3.1.1插入表記錄,【例3.1】向XSCJ數(shù)據(jù)庫的表XS中插入如下的一行:061101 王林 計(jì)算機(jī) 男 19870201 50可以使用如下的PL/SQL語句:

3、 INSERT INTO XS(XH,XM,ZYM,XB,CSSJ,ZXF) VALUES('061101','王林', '計(jì)算機(jī)','男',TO_DATE('19860210','YYYYMMDD'),50); select TO_DATE('19860210','YYYYMMDD') from dua

4、l,3.1.1插入表記錄,show all,圖3.1插入新數(shù)據(jù)后查詢的結(jié)果,3.1.1插入表記錄,【例3.2】建立了表test。 CREATE TABLE test ( xm char(20) NOT NULL, zy varchar(30) DEFAULT(‘計(jì)算機(jī)’), nj number NOT NULL ); 用I

5、NSERT向test表中插入一條記錄: INSERT INTO test(xm,nj) VALUES(‘王林’,3); 則插入到test表中的記錄為:王林 計(jì)算機(jī) 3,3.1.1插入表記錄,語法格式: INSERT INTO table_name derived_table derived_table是一個(gè)由SELECT語句查詢所得到的結(jié)果

6、集。利用該參數(shù),可把一個(gè)表中的部分?jǐn)?shù)據(jù)插入到表table_name中。,3.1.1插入表記錄,【例3.3】用如下的CREATE語句建立表XS1: CREATE TABLE XS1 ( num char(6) NOT NULL, name char(8) NOT NULL, speiality char(10) NULL );用如下的INSERT語

7、句向XS1表中插入數(shù)據(jù): INSERT INTO XS1 SELECT XH,XM,ZYM FROM XS WHERE ZYM=’計(jì)算機(jī)’;,Merge 用法,對于特定的數(shù)據(jù),在一次批量操作過程中,如果數(shù)據(jù)已經(jīng)存在,則對存在的數(shù)據(jù)按照現(xiàn)有情況進(jìn)行更新,如果不存在,則需要加入數(shù)據(jù)庫。可以采用 Oracle 的 MERGE.,3.1.1插入表記錄(p63),語法格式: M

8、ERGE INTO table_name USING table_name ON (join_condition) WHEN MATCHED THEN UPDATE SET… WHEN NOT MATCHED THEN INSERT(…) VALUES(…) Join_condition:連接條件。,3.1.1插入表記錄,【例3.4】 檢查表XS_JSJ中的數(shù)據(jù)是否和表XS的數(shù)據(jù)相匹配,

9、如果匹配則使用INSERT子句執(zhí)行插入數(shù)據(jù)行。INSERT INTO scott.XS2(XH,XM,ZYM,XB,CSSJ,ZXF) VALUES(‘101112’,’張亮', '計(jì)算機(jī)','女',TO_DATE('19860130','YYYYMMDD'),36); 使用MERGE語句XS_JSJ表中新增的數(shù)據(jù)插入表XS中: MERGE

10、 INTO scott.XS a USING scott.XS2 b ON(a.XH=b.XH) WHEN NOT MATCHED THEN INSERT(a.xh,a.xm,a.zym,a.xb,a.cssj,a.zxf) Values(b.xh,b.xm,b.zym,b.xb,b.cssj,b.zxf);,MERGE INT

11、O tdest dUSING tsrc sON (s.srckey = d.destkey)WHEN MATCHED THENUPDATE SET d.destdata = d.destdata + s.srcdataWHEN NOT MATCHED THENINSERT (destkey, destdata) VALUES (srckey, srcdata),3.1.1插入表記錄,3.1.2刪除表記錄,1. 使用 DEL

12、ETE刪除數(shù)據(jù) 在PL/SQL語言中,刪除行可以使用DELETE語句。 語法格式: DELETE FROM table_name∣view_name [WHERE condition] 若省略該條件,表示刪除所有的行。 【例3.5】將XSCJ數(shù)據(jù)庫的XS表中總學(xué)分小于39的行刪除 DELETE FROM XS WHERE ZXF<

13、;39;,3.1.2刪除表記錄,2.如果確實(shí)要?jiǎng)h除一個(gè)大表里的全部記錄, 可以用TRUNCATE命令---TRUNCATE TABLE, 它可以釋放占用的數(shù)據(jù)塊表空間。此操作不可回退。 語法格式: TRUNCATE TABLE table_name 使用TRUNCATE TABLE刪除了指定表中的所有行,但表的結(jié)構(gòu)及其列、約束等保持不變,3.1.2刪除表記錄,2. TRUNCATE TABLE注意問題

14、TRUNCATE TABLE在功能上與不帶WHERE子句的DELETE語句相同,二者均刪除表中的全部行。但TRUNCATE TABLE執(zhí)行速度比DELETE快。 對于由外鍵(FOREIGN KEY)約束引用的表不能使用TRUNCATE TABLE刪除數(shù)據(jù),而應(yīng)使用不帶WHERE子句的DELETE語句。TRUNCATE TABLE也不能用于索引視圖的表。,3.1.3修改表記錄,在PL/SQL語言中,UPDATE語句可以用來修改表中的

15、數(shù)據(jù)行。 語法格式: UPDATE table_name∣view_name SET column_name=expression,[…n] [WHERE condition] 【例3.6】 將XSCJ數(shù)據(jù)庫的XS表中學(xué)號(hào)為“061110”的學(xué)生備注列值改為“三好學(xué)生”,使用如下PL/SQL語句: UPDATE XS SET BZ=’三好學(xué)生

16、’ WHERE XH=’061110’;,3.2默認(rèn)值約束,1. 默認(rèn)值約束的定義 在使用OEM或SQL命令定義表或修改表時(shí),可定義一個(gè)字段的默認(rèn)值約束。 默認(rèn)值約束定義的一般格式為:CREATE TABLE table_name (column_name datatype NOT NULL | NULL [DEFAULT constraint_exp

17、ression] /*默認(rèn)值約束的表達(dá)式*/) table_name為創(chuàng)建的表名;column_name為列名;datatype為對應(yīng)列的數(shù)據(jù)型;,3.2默認(rèn)值約束,【例3.10】在定義表時(shí)定義一個(gè)字段的默認(rèn)值約束。 CREATE TABLE XS ( 學(xué)號(hào) char(6) NOT NULL, 姓名 char(8) NOT NULL, 專業(yè)名 c

18、har(10) NULL, 性別 char(2) NOT NULL, 出生時(shí)間 date NOT NULL, 總學(xué)分 number DEFAULT 0,/*定義默認(rèn)值約束*/ 備注 varchar2(200) NULL ) 【例3.11】在修改表時(shí)定義一個(gè)字段的默認(rèn)值約束。 ALTER TABLE XS ADD(Addcolu

19、mn number(2) DEFAULT 0);,oracle集合操作,集合操作符專門用于合并多條select 語句的結(jié)果,包括:UNION, UNION ALL, INTERSECT , MINUS。 UNION (無重并集):當(dāng)執(zhí)行UNION 時(shí),自動(dòng)去掉結(jié)果集中的重復(fù)行,并以第一列的結(jié)果進(jìn)行升序排序。UNION ALL (有重并集):不去掉重復(fù)行,并且不對結(jié)果集進(jìn)行排序。INTERSECT  (交集):取兩個(gè)

20、結(jié)果集的交集,并且以第一列的結(jié)果進(jìn)行升序排列。MINUS  (差集):只顯示在第一個(gè)集合中存在,在第二個(gè)集合中不存在的數(shù)據(jù)。并且以第一列的結(jié)果進(jìn)行升序排序。,除了union all之外的所有集合操作符號(hào)都會(huì)進(jìn)行默認(rèn)排序和去除重復(fù)行,這需要占用一定的資源,只有union all回將數(shù)據(jù)以原始的方式呈現(xiàn)出來。所以在對oracle中進(jìn)行性能優(yōu)化時(shí)盡量使用union all 而不是 union。 對于每一個(gè)查詢中,必須要具有相同的

21、列的數(shù)目和列的類型,但沒有必要使列名相同。 select   id,name,job   from worker       INTERSECT      select  empno,ename,job  from emp;,oracle集合操作,select ename

溫馨提示

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

評論

0/150

提交評論