




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、一。Pl/sql界面的簡(jiǎn)單介紹Recent object 最近訪問過的文件Recycle binFunctions 函數(shù)Procedures
2、160; 過程Packages Package bodies TypesType bodiesTriggers 觸發(fā)器Java sourcesJobs
3、60; 定時(shí)任務(wù)QueuesQueue tablesLibrariesDirectoriesTables 表Views &
4、#160; 視圖Materialized views 實(shí)體化視圖Sequences 序列(偽列) 序列名.NEXTVALUsersProfilesRolesSynonymsDatabase links
5、160; 連接到其它數(shù)據(jù)庫(kù)Tablespaces Clusters二、建表Oracle不區(qū)分大小寫; 或 / 表示結(jié)束 1.CREATE (創(chuàng)建表, 索引, 視圖, 同義詞, 過程, 函數(shù), 數(shù)據(jù)庫(kù)鏈接等) ORACLE常用的字段類型有 CHAR 固定長(zhǎng)度的字符串 VARCHAR2 可變長(zhǎng)度的字符串 NUM
6、BER(M,N) 數(shù)字型M是位數(shù)總長(zhǎng)度, N是小數(shù)的長(zhǎng)度 DATE 日期類型 創(chuàng)建表時(shí)要把較小的不為空的字段放在前面, 可能為空的字段放在后面 創(chuàng)建表時(shí)可以用中文的字段名, 但最好還是用英文的字段名 創(chuàng)建表時(shí)可以給字段加上默認(rèn)值, 例如 DEFAULT SYSDATE 這樣每次插入和修改時(shí), 不用程序操作這個(gè)字段都能得到動(dòng)作的時(shí)間 創(chuàng)建表時(shí)可以給字段加上約束條件例如 不允許重復(fù) UNIQUE, 關(guān)鍵字 PRIMARY KEY2.ALTER (改變
7、表, 索引, 視圖等) 改變表的名稱 ALTER TABLE 表名1 RENAME TO 表名2; 在表的后面增加一個(gè)字段 ALTER TABLE表名 ADD 字段名 字段名描述; 修改表里字段的定義描述 ALTER TABLE表名 MODIFY字段名 字段名描述; 給表里的字段加上約束條件 ALTER TABLE 表名 ADD CONSTRAINT 約束名 PRIMARY KEY
8、160;(字段名); ALTER TABLE 表名 ADD CONSTRAINT 約束名 UNIQUE (字段名); 把表放在或取出數(shù)據(jù)庫(kù)的內(nèi)存區(qū) ALTER TABLE 表名 CACHE; ALTER TABLE 表名 NOCACHE; 3.DROP (刪除表, 索引, 視圖, 同義詞, 過程, 函數(shù), 數(shù)據(jù)庫(kù)鏈接等) 刪除表和它所有的約束條件 DROP TABLE 表名
9、160;CASCADE CONSTRAINTS; 4.TRUNCATE (清空表里的所有記錄, 保留表的結(jié)構(gòu)) TRUNCATE 表名; 三、語(yǔ)法注釋:”-” pl/sql語(yǔ)句塊:DECLARE /* Declare variables which will be used in SQL statements */ v_NewMajor VARCHAR2(10) := 'History' v_FirstName VARCHAR2(10) := 'Scott' v_L
10、astName VARCHAR2(10) := 'Urman'BEGIN /* Update the students table. */ UPDATE students SET major = v_NewMajor WHERE first_name = v_FirstName AND last_name = v_LastName; /* Check to see if the record was found. If no
11、t, then we need to insert this record. */END;1、基礎(chǔ)語(yǔ)法SelectSelect 字段 (into 變量名) from tableName where 條件Insertinsert into tableName (字段列表) values(對(duì)應(yīng)的值列表)other:insert into tableName (字段列表) select 字段列表(要跟前面的目的表的列表匹配)updateupdate tableName set 字段名=值, 字段名=值, where 條件deletedelete fro
12、m tableName where 條件2、復(fù)雜where條件以及多表sql用法用and, or這兩個(gè)布爾運(yùn)算符來連接。給表或字段起別名 2.1.INSERT (往數(shù)據(jù)表里插入記錄的語(yǔ)句) INSERT INTO 表名(字段名1, 字段名2, ) VALUES ( 值1, 值2, ); INSERT INTO 表名(字段名1, 字段名2, ) SELECT (字段名1, 字段名2,
13、 ) FROM 另外的表名; 字符串類型的字段值必須用單引號(hào)括起來, 例如: GOOD DAY 如果字段值里包含單引號(hào) 需要進(jìn)行字符串轉(zhuǎn)換, 我們把它替換成兩個(gè)單引號(hào). 字符串類型的字段值超過定義的長(zhǎng)度會(huì)出錯(cuò), 最好在插入前進(jìn)行長(zhǎng)度校驗(yàn). 日期字段的字段值可以用當(dāng)前數(shù)據(jù)庫(kù)的系統(tǒng)時(shí)間SYSDATE, 精確到秒 或者用字符串轉(zhuǎn)換成日期型函數(shù)TO_DATE(2001-08-01,YYYY-MM-DD) TO_DATE()還有很多種日期格式, 可以參看ORACLE DOC
14、. 年-月-日 小時(shí):分鐘:秒 的格式Y(jié)YYY-MM-DD HH24:MI:SS INSERT時(shí)最大可操作的字符串長(zhǎng)度小于等于4000個(gè)單字節(jié), 如果要插入更長(zhǎng)的字符串, 請(qǐng)考慮字段用CLOB類型.INSERT時(shí)如果要用到從1開始自動(dòng)增長(zhǎng)的序列號(hào), 應(yīng)該先建立一個(gè)序列號(hào) CREATE SEQUENCE 序列號(hào)的名稱 (最好是表名 序列號(hào)標(biāo)記) INCREMENT BY 1 START WITH 1&
15、#160; MAXVALUE 99999 CYCLE NOCACHE; 其中最大的值按字段的長(zhǎng)度來定, 如果定義的自動(dòng)增長(zhǎng)的序列號(hào) NUMBER(6) , 最大值為999999 INSERT 語(yǔ)句插入這個(gè)字段值為: 序列號(hào)的名稱.NEXTVAL2.2.DELETE (刪除數(shù)據(jù)表里記錄的語(yǔ)句) DELETE FROM表名 WHERE 條件; 注意:刪除記錄并不能釋放ORACLE里被占用的數(shù)據(jù)塊表空間. 它只把那
16、些被刪除的數(shù)據(jù)塊標(biāo)成unused. 如果確實(shí)要?jiǎng)h除一個(gè)大表里的全部記錄, 可以用 TRUNCATE 命令, 它可以釋放占用的數(shù)據(jù)塊表空間 TRUNCATE TABLE 表名; 此操作不可回退. 2.3.UPDATE (修改數(shù)據(jù)表里記錄的語(yǔ)句) UPDATE表名 SET 字段名1=值1, 字段名2=值2, WHERE 條件; 如果修改的值N沒有賦值或定義時(shí), 將把原來的記錄內(nèi)容清為NULL, 最好在修改前進(jìn)行非空校驗(yàn);
17、160; 值N超過定義的長(zhǎng)度會(huì)出錯(cuò), 最好在插入前進(jìn)行長(zhǎng)度校驗(yàn). 注意事項(xiàng): A. 以上SQL語(yǔ)句對(duì)表都加上了行級(jí)鎖, 確認(rèn)完成后, 必須加上事物處理結(jié)束的命令 COMMIT 才能正式生效, 否則改變不一定寫入數(shù)據(jù)庫(kù)里. 如果想撤回這些操作, 可以用命令 ROLLBACK 復(fù)原. B. 在運(yùn)行INSERT, DELETE 和 UPDATE 語(yǔ)句前最好估算一下可能操作的記錄范圍, 應(yīng)該把它限定在較小 (一萬(wàn)條記
18、錄) 范圍內(nèi),. 否則ORACLE處理這個(gè)事物用到很大的回退段. 程序響應(yīng)慢甚至失去響應(yīng). 如果記錄數(shù)上十萬(wàn)以上這些操作, 可以把這些SQL語(yǔ)句分段分次完成, 其間加上COMMIT 確認(rèn)事物處理. 2.4.SELECT(查詢數(shù)據(jù)庫(kù)里的語(yǔ)句)SELECT字段名1, 字段名2, FROM 表名1, 表名2, WHERE 條件; 字段名可以帶入函數(shù) 例如: COUNT(*),
19、MIN(字段名), MAX(字段名), AVG(字段名), DISTINCT(字段名), TO_CHAR(DATE字段名,YYYY-MM-DD HH24:MI:SS) NVL(EXPR1, EXPR2)函數(shù) 解釋: IF EXPR1=NULL RETURN EXPR2 ELSE RETURN EXPR1 DECODE(AAV1R1V2R2.)函數(shù) 解釋:
20、0; IF AA=V1 THEN RETURN R1 IF AA=V2 THEN RETURN R2 . ELSE RETURN NULL LPAD(char1,n,char2)函數(shù) 解釋: 字符char1按制定的位數(shù)n顯示,不足的位數(shù)用char2字符串替換左邊的空位字段名之間可以進(jìn)行算術(shù)運(yùn)算 例如: (字段名1*字段名1)/3查詢語(yǔ)句可以嵌套 例如: SELECT FROM (SELECT FROM表名1,
21、;表名2, WHERE 條件) WHERE 條件2; 兩個(gè)查詢語(yǔ)句的結(jié)果可以做集合操作 例如: 并集UNION(去掉重復(fù)記錄), 并集UNION ALL(不去掉重復(fù)記錄), 差集MINUS, 交集INTERSECT 分組查詢 SELECT字段名1, 字段名2, FROM 表名1, 表名2, GROUP BY字段名1 HAVING 條件 兩個(gè)以上表之間的連接查詢 SE
22、LECT字段名1, 字段名2, FROM 表名1, 表名2, WHERE 表名1.字段名 = 表名2. 字段名 AND SELECT字段名1, 字段名2, FROM 表名1, 表名2, WHERE 表名1.字段名 = 表名2. 字段名( ) AND 有( )號(hào)的字段位置自動(dòng)補(bǔ)
23、空值查詢結(jié)果集的排序操作, 默認(rèn)的排序是升序ASC, 降序是DESC SELECT字段名1, 字段名2, FROM 表名1, 表名2, ORDER BY字段名1, 字段名2 DESC; 字符串模糊比較的方法 INSTR(字段名, 字符串)>0 字段名 LIKE 字符串% %字符串% 每個(gè)表都有一個(gè)隱含的字段ROWID, 它標(biāo)記著記錄的唯一性. 四、內(nèi)置sql
24、函數(shù) Oracle中有許多預(yù)定義函數(shù)供我們使用,預(yù)定義函數(shù)就是我們說得內(nèi)置函數(shù)。 1.CONCAT連接兩個(gè)字符串; select concat('010-','88888888')|'轉(zhuǎn)23' 高乾競(jìng)電話 from dual; 2.INSTR(C1,C2,I,J)在一個(gè)字符串中搜索指定的字符,返回發(fā)現(xiàn)指定的字符的位置;C1 被搜索的字符串C2 希望搜索的字符串I 搜索的開始位置,默認(rèn)為1J 出現(xiàn)的位置,默認(rèn)為1 select instr('oracle traning','
25、ra',1,2) instring from dual; 3.LENGTH返回字符串的長(zhǎng)度; select name,length(name),addr,length(addr),sal,length(to_char(sal) from gao.nchar_tst; 4.LOWER返回字符串,并將所有的字符小寫 select lower('AaBbCcDd')AaBbCcDd from dual; 5.UPPER返回字符串,并將所有的字符大寫 select upper('AaBbCcDd') u
26、pper from dual; 6.RPAD和LPAD(粘貼字符)RPAD 在列的右邊粘貼字符LPAD 在列的左邊粘貼字符 select lpad(rpad('gao',10,'*'),17,'*')from dual; 7.LTRIM和RTRIM、TRIMLTRIM 刪除左邊出現(xiàn)的字符串RTRIM 刪除右邊出現(xiàn)的字符串 select ltrim(rtrim(' gao qian jing ',' '),' ') from dual; 8.SUBST
27、R(string,start,count)取子字符串,從start開始,取count個(gè) select substr('#39;,3,8) from dual; 9.REPLACE('string','s1','s2')string 希望被替換的字符或變量 s1 被替換的字符串s2 要替換的字符串 select replace('he love you','he','i') from dual; 10.ABS返回指定值的絕對(duì)值
28、160;select abs(100),abs(-100) from dual; 11.ACOS給出反余弦的值 select acos(-1) from dual; 12.ASIN給出反正弦的值 select asin(0.5) from dual; 13.ATAN返回一個(gè)數(shù)字的反正切值 select atan(1) from dual; 14.CEIL返回大于或等于給出數(shù)字的最小整數(shù) select ceil(3.1415927) from dual; 15.FLOOR對(duì)給定的數(shù)字取整數(shù) sel
29、ect floor(2345.67) from dual; 16.MOD(n1,n2)返回一個(gè)n1除以n2的余數(shù) select mod(10,3),mod(3,3),mod(2,3) from dual; 17.POWER返回n1的n2次方根 select power(2,10),power(3,3) from dual; 18.ROUND和TRUNC按照指定的精度進(jìn)行舍入 select round(55.5),round(-55.4),trunc(55.5),trunc(-55.5) from dual; 19.SIGN取
30、數(shù)字n的符號(hào),大于0返回1,小于0返回-1,等于0返回0 select sign(123),sign(-100),sign(0) from dual; 20.TRUNC按照指定的精度截取一個(gè)數(shù) select trunc(124.1666,-2) trunc1,trunc(124.16666,2) from dual; 21.ADD_MONTHS增加或減去月份 select to_char(add_months(to_date('199912','yyyymm'),2),'yyyymm') from
31、 dual; select to_char(add_months(to_date('199912','yyyymm'),-2),'yyyymm') from dual; 22.LAST_DAY返回日期的最后一天 select to_char(sysdate,'yyyy.mm.dd'),to_char(sysdate) 1,'yyyy.mm.dd') from dual; select last_day(sysdate) from dual; 23.MONTHS_BE
32、TWEEN(date2,date1)給出date2-date1的月份 select months_between('19-12月-1999','19-3月-1999') mon_between from dual;selectmonths_between(to_date('2000.05.20','yyyy.mm.dd'),to_date('2005.05.20','yyyy.mm.dd') mon_betw from dual; 24.SYSDATE用來得到系統(tǒng)的當(dāng)前日期
33、60;select to_char(sysdate,'dd-mm-yyyy day') from dual;trunc(date,fmt)按照給出的要求將日期截?cái)?如果fmt='mi'表示保留分,截?cái)嗝?#160;select to_char(trunc(sysdate,'hh'),'yyyy.mm.dd hh24:mi:ss') hh,2 to_char(trunc(sysdate,'mi'),'yyyy.mm.dd hh24:mi:ss') hhmm from dual; 25.TO_
34、CHAR(date,'format') select to_char(sysdate,'yyyy/mm/dd hh24:mi:ss') from dual;26.TO_DATE(string,'format')將字符串轉(zhuǎn)化為ORACLE中的一個(gè)日期 27.TO_NUMBER將給出的字符轉(zhuǎn)換為數(shù)字 select to_number('1999') year from dual; 28.GREATEST返回一組表達(dá)式中的最大值,即比較字符的編碼大小. select greatest(&
35、#39;AA','AB','AC') from dual; select greatest('啊','安','天') from dual; 29.LEAST返回一組表達(dá)式中的最小值 select least('啊','安','天') from dual; 30.AVG(DISTINCT|ALL)all表示對(duì)所有的值求平均值,distinct只對(duì)不同的值求平均值 select avg(distinc
36、t sal) from gao.table3; select avg(all sal) from gao.table3; 31.MAX(DISTINCT|ALL)求最大值,ALL表示對(duì)所有的值求最大值,DISTINCT表示對(duì)不同的值求最大值,相同的只取一次 select max(distinct sal) from scott.emp; 32.MIN(DISTINCT|ALL)求最小值,ALL表示對(duì)所有的值求最小值,DISTINCT表示對(duì)不同的值求最小值,相同的只取一次 select min(all sal) from gao.table3;&
37、#160;33.GROUP BY主要用來對(duì)一組數(shù)進(jìn)行統(tǒng)計(jì)select deptno,count(*),sum(sal) from scott.emp group by deptno; 34.HAVING對(duì)分組統(tǒng)計(jì)再加限制條件select deptno,count(*),sum(sal) from scott.emp group by deptno having count(*)>=5;select deptno,count(*),sum(sal) from scott.emp having count(*)>=5 group by deptno ; 35.ORD
38、ER BY用于對(duì)查詢到的結(jié)果進(jìn)行排序輸出select deptno,ename,sal from scott.emp order by deptno,sal desc; 附:其它:ORACLE里常用的數(shù)據(jù)對(duì)象 (SCHEMA) 1.索引 (INDEX) CREATE INDEX 索引名ON 表名 ( 字段1, 字段2, ); ALTER INDEX 索引名 REBUILD; 一個(gè)表的索引最好不要超過三個(gè) (特殊的大表除外), 最好用單字段索引, 結(jié)合SQL語(yǔ)句的分析執(zhí)行情況, 也可以建立多字段的組合索引和基于函數(shù)的索引 ORACLE8.1.7字符串可以索引的最大長(zhǎng)度為1578 單字節(jié) ORACLE8.0.6字符串可以索引的最大長(zhǎng)度為758 單字節(jié) ORACLE DOC上說字符串最大可以建索引的長(zhǎng)度約是:數(shù)據(jù)塊的大小(db_block_size)*40% 2.視圖 (VIEW) CREATE VIEW 視圖名AS S
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高效節(jié)能電機(jī)項(xiàng)目可行性研究報(bào)告(參考范文)
- 文明工地管理制度
- 2025年濕法稀磷酸項(xiàng)目建議書
- 異步電機(jī)控制策略
- 2025年智能電網(wǎng)配電設(shè)備項(xiàng)目建議書
- 2025年互聯(lián)網(wǎng)醫(yī)療平臺(tái)在線問診平臺(tái)與患者健康檔案管理對(duì)接報(bào)告
- 2025年工業(yè)碳捕獲與封存(CCS)技術(shù)在節(jié)能減排中的應(yīng)用案例研究
- 基于大數(shù)據(jù)的2025年智慧交通流量預(yù)測(cè)模型構(gòu)建與分析報(bào)告
- 2025年綠色藥品生產(chǎn)技術(shù)現(xiàn)狀與市場(chǎng)推廣路徑研究報(bào)告
- 城市污水處理廠智能化升級(jí)改造中的能源管理優(yōu)化策略報(bào)告
- 小學(xué)道德與法治培訓(xùn)感悟
- 營(yíng)區(qū)物業(yè)服務(wù)營(yíng)區(qū)物業(yè)服務(wù)保密措施
- 2023年春季內(nèi)蒙古高一化學(xué)學(xué)業(yè)水平合格性考試卷真題
- 思維導(dǎo)圖在小學(xué)數(shù)學(xué)復(fù)習(xí)課中的應(yīng)用研究 論文
- 導(dǎo)管小組護(hù)理管理手冊(cè)
- 寶鋼硅鋼廠工藝流程
- 退伙協(xié)議個(gè)體工商戶
- 中草藥種植的土壤改良技術(shù)
- 尿膿毒癥護(hù)理查房
- 家長(zhǎng)會(huì)課件:七年級(jí)暑假家長(zhǎng)會(huì)課件
評(píng)論
0/150
提交評(píng)論