首先,創建1個員工表,sql語句以下:
下面,是對這個表的1些基本操作:
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⑴0⑵2','YYYY-MM-DD')) //使用自定義日期格式插入記錄,默許格式是'22-SEP⑼4'
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) from dual //第2個參數等于0或1都是從首字符開始取,如果第2個參數為負數,那末'g'為⑴,'f'為⑵,依此類推,然后向右取第3個參數長度的字符。如果沒有設置第3個參數或長度超過了字符的長度,則取到字符串末尾為止。
SELECT INSTR('thinking in java','i',4,2) from dual //返回'i'在第1個參數中的位置,第3個參數的含義是從第4個字符('n')開始檢索,2表示的含義是'i'第2次出現的位置。
空值函數:
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"日"')
經常使用的日期格式以下圖:
日期經常使用函數:
LAST――DAY(date):返回給定date所在月的最后1天。
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日期數據的下1個周幾,周幾是由參數char來決定的。在中文環境下,直接使用”星期3”這類情勢,英文環境下,需要使用”WEDNESDAY”這類英文的周幾。為避免麻煩,可以直接用數字1⑺表示周日-周6。
GREATEST(expr1[, expr2[, expr3]]…) LEAST(expr1[, expr2[, expr3]]…) 兩個函數都可以有多個參數值,但參數類型必須1致,返回結果是參數列表中最大或最小的值,在比較之前,在參數列表中第2個以后的參數會被隱含的轉換為第1個參數的數據類型,所以如果可以轉換,則繼續比較,如果不能轉換將會報錯。
下一篇 IOS-篩選數組內的元素