版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 修改記錄表
- 質(zhì)量手冊修改記錄
- 后臺(tái)樣式修改記錄.txt
- 前端開發(fā)修改記錄.txt
- 0.2質(zhì)量手冊修改記錄
- 管理手冊文件修改記錄
- 質(zhì)量手冊修改記錄(附錄2)
- 作業(yè)批改記錄
- c#數(shù)據(jù)庫編程添加刪除記錄
- c#數(shù)據(jù)庫編程_添加刪除記錄
- 碩士學(xué)位論文盲審修改記錄表
- 作業(yè)批改記錄表
- 作業(yè)批改記錄數(shù)學(xué)
- 文件更改記錄表
- 如何刪除上網(wǎng)記錄
- 小學(xué)作業(yè)批改記錄(上)
- 小學(xué)數(shù)學(xué)作業(yè)批改記錄
- 年級(jí) 班作業(yè)批改記錄
- 安全檢查和整改記錄
- 記錄的刪除與恢復(fù)
評論
0/150
提交評論