首先,創(chuàng)建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,并設(shè)置默許值
ALTER TABLE employee DROP (manager) //刪除manager列
INSERT INTO employee (id,name,job,salary) VALUES(1001,'jack','PROGRAMMER',5500) //向表中插入數(shù)據(jù)
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的薪水,注意如果插入數(shù)據(jù)的時候字母是大寫,那末修改的時候也要大寫
DELETE FROM employee WHERE birth is null //刪除生日為null的記錄
CHAR最大取值為2000字節(jié),它可以不指定長度,默許為1,VARCHAR2最大取值為4000字節(jié),它必須指定長度。
字符串函數(shù):
CONCAT和||:返回兩個字符串聯(lián)接后的結(jié)果。select CONCAT('a','b') from dual result:ab select 'lo'||'ve' from dual result:love
LENGTH:返回字符串的長度,如果是VARCHAR2返回字符串的實際長度,如果字符類型是CHAR,長度還要包括后補的空格。
UPPER:把字符轉(zhuǎn)換為大寫情勢。
LOWER:把字符轉(zhuǎn)換為小寫情勢。
INTCAP:把每一個單詞的首字母大寫,單詞之間用空格和非字母字符分隔。
TRIM:SELECT TRIM('e' FROM 'elite') FROM dual //從elite的前后截去'e',如果不寫e,就去掉兩真?zhèn)€空格。
LTRIM:SELECT LTRIM('elite','e') FROM dual //從elite的左面截去'e',如果不寫e,就去掉左真?zhèn)€空格。
RTRIM:SELECT LTRIM('elite','e') FROM dual //從elite的右面截去'e',如果不寫e,就去掉右真?zhèn)€空格。
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個參數(shù)等于0或1都是從首字符開始取,如果第2個參數(shù)為負數(shù),那末'g'為⑴,'f'為⑵,依此類推,然后向右取第3個參數(shù)長度的字符。如果沒有設(shè)置第3個參數(shù)或長度超過了字符的長度,則取到字符串末尾為止。
SELECT INSTR('thinking in java','i',4,2) from dual //返回'i'在第1個參數(shù)中的位置,第3個參數(shù)的含義是從第4個字符('n')開始檢索,2表示的含義是'i'第2次出現(xiàn)的位置。
空值函數(shù):
NVL(expr1, expr2):如果expr1為NULL,則取值expr2。
NVL2(expr1, expr2, expr3):NVL2用來判斷expr1是不是為NULL,如果不是NULL,返回expr2,如果是NULL,返回expr3。
日期轉(zhuǎn)換函數(shù):
TO_DATE:將字符串依照定制格式轉(zhuǎn)換為日期類型。for example:TO_DATE('2002-01-01','YYYY-MM-DD')
TO_CHAR:將其它類型(日期,數(shù)值)的數(shù)據(jù)轉(zhuǎn)換為字符類型,主要利用在日期類型上。for example:TO_CHAR(hiredate,'YYYY"年"MM"月"DD"日"')
經(jīng)常使用的日期格式以下圖:
日期經(jīng)常使用函數(shù):
LAST――DAY(date):返回給定date所在月的最后1天。
ADD_MONTHS(date,i):返回給定date加上i個月后的日期值,如果i是負數(shù),則取得減去i個月后的日期值。
MONTH_BETWEEN(date1, date2):計算date1-date2兩個日期值之間間隔了多少個月,如果date2時間比date1晚,會得到負值。除非兩個日期間隔是整數(shù)月,否則會得到帶小數(shù)位的結(jié)果,比如計算2009年9月1日到2009年10月10日之間間隔多少個月,會得到1.29個月。
NEXT_DAY(date, char):返回給定date日期數(shù)據(jù)的下1個周幾,周幾是由參數(shù)char來決定的。在中文環(huán)境下,直接使用”星期3”這類情勢,英文環(huán)境下,需要使用”WEDNESDAY”這類英文的周幾。為避免麻煩,可以直接用數(shù)字1⑺表示周日-周6。
GREATEST(expr1[, expr2[, expr3]]…) LEAST(expr1[, expr2[, expr3]]…) 兩個函數(shù)都可以有多個參數(shù)值,但參數(shù)類型必須1致,返回結(jié)果是參數(shù)列表中最大或最小的值,在比較之前,在參數(shù)列表中第2個以后的參數(shù)會被隱含的轉(zhuǎn)換為第1個參數(shù)的數(shù)據(jù)類型,所以如果可以轉(zhuǎn)換,則繼續(xù)比較,如果不能轉(zhuǎn)換將會報錯。