【正文】
[PCTFREE integer][PCTUSED integer][INITRANS integer][MAXTRANS integer][STORAGE storage][BACKUP]ALTER TABLE 可以作的操作有:l 增加一個(gè)列(字段)寬度;l 減少一個(gè)列(字段)寬度(該列必須無(wú)數(shù)據(jù));l 增加一個(gè)列(字段)。xxxx39。INITRANS 指定一個(gè)在每一個(gè)數(shù)據(jù)塊中分配的事務(wù)入口的初始數(shù)1255,缺省為1,每一個(gè)更新塊的事務(wù)都需要在塊中有一個(gè)事務(wù)入口(大小依OS),一般不需要指此參。新羅區(qū)公安局39。339。139。其他39。喪偶39。未婚39。039。男39。當(dāng)每個(gè)value值被測(cè)試,如果value的值為if1,Decode 函數(shù)的結(jié)果是then1;如果value等于if2,Decode函數(shù)結(jié)果是then2;等等。它雖然不是SQL的標(biāo)準(zhǔn),但對(duì)于性能非常有用。(2) 合計(jì)視圖例:CREATE VIEW empvi AS SELECT DEPTNO,SUM(SAL),SUM(COMM)FROM EMP GROUP BY DEPTNO。,1,0) ) balance from per_fix_det where acc_no=as_acc_no union allselect sum(nvl(tran_val,0)*decode(db_cr_flag,39。Employees and their ManagersBLAKE works for KINGCLARK works for KINGJONES works for KINGFORD works for JONESSMITH works for FORDALLEN works for BLAKEWARD works for BLAKEMARTIN works for BLAKESCOTT works for JONESTURNER works for BLAKEADAMS works for SCOTTJAMES works for BLAKEMILLER works for CLARK連接條件是 = (4) UNION,INTERSECT及MINUS有時(shí)需要從多個(gè)表中組合具有一種相似類型的信息。l where中可以包含一個(gè)select語(yǔ)句子查詢;l where中可以包含IN, EXISTS 語(yǔ)句;l 最多可嵌套16層;l 層數(shù)過(guò)多會(huì)影響性能。 /* 如果SAMPLE還有數(shù)據(jù)就執(zhí)行刪除一組操作,即使不夠20條也不會(huì)出錯(cuò) */ DELETE FROM SAMPLE WHERE ROWNUM20。例1:DELETE FROM temp_assign。而無(wú)條件的全表刪除需要一定的技巧。INSERT INTO emp (empno, ename, job, sal, m, deptno)VALUES (7890, ‘LINKS’,’CLERK’, NULL, 40)。0609200039。,39。dd/mm/yyyy39。(1)INSERT命令語(yǔ)法:INSERT INTO [user.]table[db_link][(column1[,column2]...)]VALUES ( express1[,express2]...|subquery...)。 DEPTNO COUNT(*) SUM(SAL) 20 5 10875 30 6 9400SQL select deptno,count(*) ,sum(sal) from emp having count(*)=5 2 group by deptno。SQL l 1* select avg(sal) from empSQL / AVG(SAL)MAX( [ { DISTINCT | ALL}] )求最大值,ALL表示對(duì)所有求最大值,DISTINCT 只對(duì)不 同的求最大值,相同只取一個(gè)。yyyy/mm/dd hh24:mi:ss39。39。) mon_betw from dual。39。ADD_MO199801SQL select to_char(add_months(to_date(39。時(shí)間截?cái)酁?2 .(午夜,一天的開(kāi)始),否則進(jìn)到第二天。sign(123) sign(100) sign(0) 1 1 0SIN ( n )返回一個(gè)數(shù)字的正弦值。 ABS(100) ABS(100) 100 100CEIL( n )返回大于或等于給出數(shù)字的最小整數(shù)。SUBSTRB(string,start[,Count])對(duì)字串(或字段),從start字節(jié) 開(kāi)始,連續(xù)取 count 個(gè)字節(jié)并返回結(jié)果,如果沒(méi)有指count則一直取到尾。.39。set39。SQL select lower(39。C1: 被搜索的字符串C2: 希望搜索的字符串I: 搜索的開(kāi)始位置,缺省是1J: 出現(xiàn)的位置,缺省是1。趙39。) a,ascii(39。數(shù)據(jù)類型說(shuō)明Char定長(zhǎng)字符,≤2000個(gè)字符Varchar(同Varchar2)可變字符,≤4000個(gè)字符Varchar2變長(zhǎng)字符,≤4000個(gè)字符Date固定長(zhǎng)度(7字節(jié))的日期型Number數(shù)字型,可存放實(shí)型和整型Long可變字符,≤2GB個(gè)字符Raw可變二進(jìn)制數(shù)據(jù),≤4000字節(jié)Long raw可變二進(jìn)制數(shù)據(jù),≤2GBMLSLABEL僅Trusted Oracle 用長(zhǎng)度在2~5字節(jié)間Blob大二進(jìn)制對(duì)象,≤4GBClob大字符串對(duì)象,≤4GBNclob多字節(jié)字符集的Clob,≤4GBBfile外部二進(jìn)制文件,大小由OS決定例:SQL create table nchar_tst(name varchar2(10),addr varchar2(16),sal number(9,2))。 hh24:mi:ss39。簡(jiǎn)單查詢當(dāng)我們可以用SQL*PLUS登錄到SQL下后,我們可以用DESC 顯示某表的結(jié)構(gòu),也可以用select 語(yǔ)句簡(jiǎn)單查詢表中的一些列的內(nèi)容。OR 用于判斷兩個(gè)條件中是否有一個(gè)滿足。Select * from empWhere ename like ‘TH%’。Not in測(cè)試某值是否在一個(gè)指定的結(jié)果集中Select name,addr from expertwhere local not in(‘北京’,’上?!?。(3) 數(shù)據(jù)操制:包括對(duì)基本表和視圖的授權(quán)、完整性規(guī)則的描述和事務(wù)控制等。 SQL數(shù)據(jù)庫(kù)的體系統(tǒng)結(jié)構(gòu)(1) SQL數(shù)據(jù)庫(kù)是表的匯集;(2) SQL表由行集構(gòu)成,行是列的序列,每列對(duì)應(yīng)一個(gè)數(shù)據(jù)項(xiàng);(3) 表或者是基本表,或者是視圖;(4) 一個(gè)基本表可以跨一個(gè)或多個(gè)存儲(chǔ)文件,一個(gè)存儲(chǔ)文件也可存放一個(gè)或多個(gè)基本表。(6) SQL的用戶可以是應(yīng)用程序,也可以是終端用戶。!= 或或^=不等于測(cè)試Select * from emp where name !=’ 王五’。必須跟!=,=,=Select name,sal from empWhere sal= all ( 500,800,1200)。Not 對(duì)結(jié)果的否定。Select ename from emp unionSelect ename from emp。Oracle目前有以下的偽列:l CURRVAL and NEXTVAL 使用序列號(hào)的保留字l LEVEL 查詢數(shù)據(jù)所對(duì)應(yīng)的級(jí)l ROWID 記錄的唯一標(biāo)識(shí)l ROWNUM 限制查詢結(jié)果集的數(shù)量有關(guān)偽列的詳細(xì)解釋和使用見(jiàn)相關(guān)章節(jié)。YY 07:28:09例2:計(jì)算一下 5000+5000* 的結(jié)果是多少,則:SQL select 5000+5000* from DUAL。返回與指定的字符對(duì)應(yīng)的十進(jìn)制數(shù)。 39。如:SQL select chr(54740) zhao,chr(65) chr65 from dual。, 39。AABBCCDDaabbccddUPPER( c)與 LOWER 相反,將給出字符串變?yōu)榇髮?xiě)。]) RPAD在列的右邊粘貼字符; LPAD在列的左邊粘貼字符。填滿)LTRIM(左截?cái)?RTRIM(右截?cái)啵?函數(shù)LTRIM (string [,’set’])Left TRIM (左截?cái)?刪去左邊出現(xiàn)的任何set 字符。例子:將下面字符串中的前面和后面的‘0‘字符都去掉:SELECT TRIM (0 FROM 0009872348900) TRIM Example FROM DUAL。FLOOR() FLOOR() 123 45MOD( n1,n2 )SQL Select mod(10,3), mod(10,2), mod(10,4) from dual。 SIN(20) SINH(20) .912945251 242582598SQRT( n )返回 數(shù)字 n 的根,如:SQL select sqrt(64),sqrt(10) from dual。,39。yyyymm39。) 2 from dual。,39。ddmonyyyy day39。YY2001/05/18 23:05:36TO_DATE(string,’format’) 將一和字串轉(zhuǎn)換為ORACLE的日期。SQL select min(sal) from emp。比如按照部門(mén)代碼順序和員工的工資多少順序進(jìn)行輸出,需要命令:SQL select deptno,ename,sal from emp order by deptno,sal desc。,39。王五39。 INSERT into emp_house_fund(name,emp_acc_no,tran_date,tran_val)VALUES(39。),)。 UPDATE操作(1) UPDATE語(yǔ)法UPDATE [user.]table[db_link][alias]SET { column1=express1[,column2=experss2]...|(column1[,column2]...)=(subquery) }[WHERE condition|current of cursor]。這里的condition 可以復(fù)雜的表達(dá)式或子查詢。限制:l 不能使用并行或帶遠(yuǎn)程對(duì)象l 不能用LONG類型(3) 用delete分段刪除大量記錄有時(shí)我們需要?jiǎng)h除大塊的數(shù)據(jù),在環(huán)境比較差的情況下,往往由于回滾段不夠大而出現(xiàn)刪除失敗。 END?,F(xiàn)在要全部列出所有學(xué)生,如果某個(gè)學(xué)生在表student_skill 中有其特長(zhǎng)信息,就顯示特長(zhǎng)內(nèi)容,如果某個(gè)學(xué)生沒(méi)有特長(zhǎng)(在表student_skill 中無(wú)其特長(zhǎng)信息)就顯示特長(zhǎng)為空:SQLselect , name, age,skill from students a, student_skill bWhere =(+)Order by 。Minus 則返回只在一個(gè)表中出現(xiàn)的信息。039。當(dāng)該視圖不存在時(shí),我們可以在 FROM子句后寫(xiě)上該視圖即可。就像有些馬車制造商抱怨亨利。需要注意的是,這里的if、then及else 都可以是函數(shù)或計(jì)算表達(dá)式。,39。) as Csrq, 出生日期 39。,39。,39。,39。,39。) as Byzk, 兵役狀況 as Sg, 身高 substr(,1,40) as Zy, 職業(yè) substr(,1,80) as Fwcs, 服務(wù)處所 ||||||||||39。 ssxjgajgdm,所屬縣級(jí)公安機(jī)關(guān)機(jī)構(gòu)代碼 as pcsmc, 所屬派出所名稱 as pcsmcdm, 所屬派出所機(jī)構(gòu)代碼(公安標(biāo)準(zhǔn)要向公安局要) to_char(,39。如果缺省則表建在用戶缺省的表空間(如果建立用戶不指定表空間則該用戶的缺省表空間為system)。為了對(duì)該表能插入新數(shù)據(jù),需