程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> Oracle數據庫對表的基本操作和一些常用函數

Oracle數據庫對表的基本操作和一些常用函數

編輯:Oracle教程

Oracle數據庫對表的基本操作和一些常用函數


首先,創建一個員工表,sql語句如下:

CREATE TABLE employee(
  id NUMBER(4),
  name VARCHAR2(20) NOT NULL,
  gender CHAR(1) DEFAULT 'M',
  birth DATE,
  salary NUMBER(6,2),
  comn NUMBER(6,2),
  job VARCHAR2(30),
  manager NUMBER(4),
  deptno NUMBER(2)
)


下面,是對這個表的一些基本操作:


RENAME employee TO emp //將表名改成emp

ALTER TABLE employee ADD hiredate DATE DEFAULT sysdate //為employee增加列,默認值為當前日期

ALTER TABLE employee MODIFY (job VARCHAR2(40) DEFAULT 'CLERK') //修改job列的長度為40,並設置默認值

ALTER TABLE employee DROP (manager) //刪除manager列

INSERT INTO employee (id,name,job,salary) VALUES(1001,'jack','PROGRAMMER',5500) //向表中插入數據

INSERT INTO employee (id,name,job,birth) VALUES(1002,'LARRY','ANALYST',TO_DATE('1994-10-22','YYYY-MM-DD')) //使用自定義日期格式插入記錄,默認格式是'22-SEP-94'

UPDATE employee SET salary=10 WHERE name='LARRY' //更新LARRY的薪水,注意如果插入數據的時候字母是大寫,那麼修改的時候也要大寫

DELETE FROM employee WHERE birth is null //刪除生日為null的記錄

CHAR最大取值為2000字節,它可以不指定長度,默認為1,VARCHAR2最大取值為4000字節,它必須指定長度。

字符串函數:

CONCAT和||:返回兩個字符串連接後的結果。select CONCAT('a','b') from dual result:ab select 'lo'||'ve' from dual result:love

LENGTH:返回字符串的長度,如果是VARCHAR2返回字符串的實際長度,如果字符類型是CHAR,長度還要包括後補的空格。

UPPER:把字符轉換為大寫形式。

LOWER:把字符轉換為小寫形式。

INTCAP:把每個單詞的首字母大寫,單詞之間用空格和非字母字符分隔。

TRIM:SELECT TRIM('e' FROM 'elite') FROM dual //從elite的前後截去'e',如果不寫e,就去掉兩端的空格。

LTRIM:SELECT LTRIM('elite','e') FROM dual //從elite的左面截去'e',如果不寫e,就去掉左端的空格。

RTRIM:SELECT LTRIM('elite','e') FROM dual //從elite的右面截去'e',如果不寫e,就去掉右端的空格。

LPAD:SELECT LPAD('12',5,'$#') from dual //把'12'用'$#'在左面補滿5位。

RPAD:SELECT LPAD('12',5,'$#') from dual //把'12'用'$#'在右面補滿5位。

SUBSTR:SELECT SUBSTR('abcdefg',-2,2) from dual //第二個參數等於0或1都是從首字符開始取,如果第二個參數為負數,那麼'g'為-1,'f'為-2,依此類推,然後向右取第三個參數長度的字符。如果沒有設置第三個參數或者長度超過了字符的長度,則取到字符串末尾為止。

SELECT INSTR('thinking in java','i',4,2) from dual //返回'i'在第一個參數中的位置,第三個參數的含義是從第四個字符('n')開始檢索,2表示的含義是'i'第二次出現的位置。

空值函數:

NVL(expr1, expr2):如果expr1為NULL,則取值expr2。

NVL2(expr1, expr2, expr3):NVL2用來判斷expr1是否為NULL,如果不是NULL,返回expr2,如果是NULL,返回expr3。

日期轉換函數:

TO_DATE:將字符串按照定制格式轉換為日期類型。for example:TO_DATE('2002-01-01','YYYY-MM-DD')

TO_CHAR:將其它類型(日期,數值)的數據轉換為字符類型,主要應用在日期類型上。for example:TO_CHAR(hiredate,'YYYY"年"MM"月"DD"日"')

常用的日期格式如下圖:

Oracle數據庫對表的基本操作和一些常用函數

日期常用函數:

LAST——DAY(date):返回給定date所在月的最後一天。

ADD_MONTHS(date,i):返回給定date加上i個月後的日期值,如果i是負數,則獲得減去i個月後的日期值。

MONTH_BETWEEN(date1, date2):計算date1-date2兩個日期值之間間隔了多少個月,如果date2時間比date1晚,會得到負值。除非兩個日期間隔是整數月,否則會得到帶小數位的結果,比如計算2009年9月1日到2009年10月10日之間間隔多少個月,會得到1.29個月。

NEXT_DAY(date, char):返回給定date日期數據的下一個周幾,周幾是由參數char來決定的。在中文環境下,直接使用”星期三”這種形式,英文環境下,需要使用”WEDNESDAY”這種英文的周幾。為避免麻煩,可以直接用數字1-7表示周日-周六。

GREATEST(expr1[, expr2[, expr3]]…) LEAST(expr1[, expr2[, expr3]]…) 兩個函數都可以有多個參數值,但參數類型必須一致,返回結果是參數列表中最大或最小的值,在比較之前,在參數列表中第二個以後的參數會被隱含的轉換為第一個參數的數據類型,所以如果可以轉換,則繼續比較,如果不能轉換將會報錯。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved