日常oracle常用命令篇_第1頁
日常oracle常用命令篇_第2頁
日常oracle常用命令篇_第3頁
日常oracle常用命令篇_第4頁
日常oracle常用命令篇_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、一。Pl/sql界面的簡單介紹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ù)庫Tablespaces           Clusters二、建表Oracle不區(qū)分大小寫; 或 / 表示結(jié)束  1.CREATE (創(chuàng)建表, 索引, 視圖, 同義詞, 過程, 函數(shù), 數(shù)據(jù)庫鏈接等) ORACLE常用的字段類型有 CHAR 固定長度的字符串 VARCHAR2 可變長度的字符串 NUM

6、BER(M,N) 數(shù)字型M是位數(shù)總長度, N是小數(shù)的長度 DATE 日期類型 創(chuàng)建表時(shí)要把較小的不為空的字段放在前面, 可能為空的字段放在后面 創(chuàng)建表時(shí)可以用中文的字段名, 但最好還是用英文的字段名 創(chuàng)建表時(shí)可以給字段加上默認(rèn)值, 例如 DEFAULT SYSDATE 這樣每次插入和修改時(shí), 不用程序操作這個(gè)字段都能得到動作的時(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ù)庫的內(nèi)存區(qū) ALTER TABLE 表名 CACHE; ALTER TABLE 表名 NOCACHE; 3.DROP (刪除表, 索引, 視圖, 同義詞, 過程, 函數(shù), 數(shù)據(jù)庫鏈接等) 刪除表和它所有的約束條件 DROP TABLE 表名&#

9、160;CASCADE CONSTRAINTS; 4.TRUNCATE (清空表里的所有記錄, 保留表的結(jié)構(gòu)) TRUNCATE 表名; 三、語法注釋:”-” pl/sql語句塊: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ǔ)語法SelectSelect 字段 (into 變量名) from tableName where 條件Insertinsert into tableName (字段列表) values(對應(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ù)表里插入記錄的語句) INSERT INTO 表名(字段名1, 字段名2, ) VALUES ( 值1, 值2, );  INSERT INTO 表名(字段名1, 字段名2, )  SELECT (字段名1, 字段名2,

13、 ) FROM 另外的表名; 字符串類型的字段值必須用單引號括起來, 例如: GOOD DAY 如果字段值里包含單引號 需要進(jìn)行字符串轉(zhuǎn)換, 我們把它替換成兩個(gè)單引號.  字符串類型的字段值超過定義的長度會出錯(cuò), 最好在插入前進(jìn)行長度校驗(yàn). 日期字段的字段值可以用當(dāng)前數(shù)據(jù)庫的系統(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í)最大可操作的字符串長度小于等于4000個(gè)單字節(jié), 如果要插入更長的字符串, 請考慮字段用CLOB類型.INSERT時(shí)如果要用到從1開始自動增長的序列號, 應(yīng)該先建立一個(gè)序列號 CREATE SEQUENCE 序列號的名稱 (最好是表名 序列號標(biāo)記) INCREMENT BY 1  START  WITH  1&

15、#160; MAXVALUE  99999  CYCLE  NOCACHE; 其中最大的值按字段的長度來定, 如果定義的自動增長的序列號 NUMBER(6) , 最大值為999999 INSERT 語句插入這個(gè)字段值為: 序列號的名稱.NEXTVAL2.2.DELETE  (刪除數(shù)據(jù)表里記錄的語句) 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ù)表里記錄的語句) UPDATE表名 SET 字段名1=值1, 字段名2=值2,  WHERE 條件; 如果修改的值N沒有賦值或定義時(shí), 將把原來的記錄內(nèi)容清為NULL, 最好在修改前進(jìn)行非空校驗(yàn);&#

17、160; 值N超過定義的長度會出錯(cuò), 最好在插入前進(jìn)行長度校驗(yàn). 注意事項(xiàng):  A. 以上SQL語句對表都加上了行級鎖, 確認(rèn)完成后, 必須加上事物處理結(jié)束的命令 COMMIT 才能正式生效,  否則改變不一定寫入數(shù)據(jù)庫里.  如果想撤回這些操作, 可以用命令 ROLLBACK 復(fù)原. B. 在運(yùn)行INSERT, DELETE 和 UPDATE 語句前最好估算一下可能操作的記錄范圍,  應(yīng)該把它限定在較小 (一萬條記

18、錄) 范圍內(nèi),. 否則ORACLE處理這個(gè)事物用到很大的回退段.  程序響應(yīng)慢甚至失去響應(yīng). 如果記錄數(shù)上十萬以上這些操作, 可以把這些SQL語句分段分次完成,  其間加上COMMIT 確認(rèn)事物處理. 2.4.SELECT(查詢數(shù)據(jù)庫里的語句)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查詢語句可以嵌套 例如: SELECT  FROM  (SELECT  FROM表名1, 

21、;表名2,  WHERE 條件) WHERE 條件2; 兩個(gè)查詢語句的結(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   有( )號的字段位置自動補(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' 高乾競電話 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返回字符串的長度; 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返回指定值的絕對值&#

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對給定的數(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的符號,大于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表示對所有的值求平均值,distinct只對不同的值求平均值 select avg(distinc

36、t sal) from gao.table3; select avg(all sal) from gao.table3; 31.MAX(DISTINCT|ALL)求最大值,ALL表示對所有的值求最大值,DISTINCT表示對不同的值求最大值,相同的只取一次 select max(distinct sal) from scott.emp; 32.MIN(DISTINCT|ALL)求最小值,ALL表示對所有的值求最小值,DISTINCT表示對不同的值求最小值,相同的只取一次 select min(all sal) from gao.table3;&

37、#160;33.GROUP BY主要用來對一組數(shù)進(jìn)行統(tǒng)計(jì)select deptno,count(*),sum(sal) from scott.emp group by deptno; 34.HAVING對分組統(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用于對查詢到的結(jié)果進(jìn)行排序輸出select deptno,ename,sal from scott.emp order by deptno,sal desc;  附:其它:ORACLE里常用的數(shù)據(jù)對象 (SCHEMA) 1.索引 (INDEX) CREATE INDEX 索引名ON 表名 ( 字段1, 字段2,  ); ALTER INDEX 索引名 REBUILD; 一個(gè)表的索引最好不要超過三個(gè) (特殊的大表除外), 最好用單字段索引, 結(jié)合SQL語句的分析執(zhí)行情況,  也可以建立多字段的組合索引和基于函數(shù)的索引 ORACLE8.1.7字符串可以索引的最大長度為1578 單字節(jié) ORACLE8.0.6字符串可以索引的最大長度為758 單字節(jié) ORACLE DOC上說字符串最大可以建索引的長度約是:數(shù)據(jù)塊的大小(db_block_size)*40% 2.視圖 (VIEW) CREATE VIEW 視圖名AS S

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論