建立和管理表(DDL) sql
--建立表 函數
CREATE TABLE emp1( ID NUMBER(4) NOT NULL, NAME VARCHAR2(20), salary NUMBER(5,2), hire_date DATE )
--修改表code
-|增長新列 字符串
ALTER TABLE emp1 ADD (birthday DATE)--括號內不要加逗號
-|修改現有的列 class
ALTER TABLE emp1 MODIFY (birthday VARCHAR2(20))
-|重命名列名 date
ALTER TABLE emp1 RENAME COLUMN salary TO sal
-|刪除現有的列 命名
ALTER TABLE emp1 DROP COLUMN birthday
-|清空表中數據數據
TRUNCATE TABLE emp1
--重命名錶co
RENAME emp1 TO emp2
--刪除表字符
DROP TABLE emp1
--------------------------------------------------------------------------------------
數據處理 DML
--增
-|插入數據
INSERT INTO emp2(NAME, sal, ID, hire_date) VALUES('lsd', 132, 002, TO_DATE('2009-8-8', 'yyyy/mm/dd'))
-|從其它表中拷貝數據
INSERT INTO emp1 SELECT ID, NAME, sal, hire_date FROM emp2 WHERE emp2.ID = 002
--改
UPDATE emp2 SET sal=9999 WHERE ID=001
--刪
DELETE emp2 WHERE ID = 2
---------------------------------------------------------------------------------------
--字符串函數
SELECT UPPER('Hello'),LOWER('Hello') FROM dual SELECT * FROM emp WHERE ename=UPPER('&name') SELECT LOWER(ename) FROM emp SELECT INITCAP(ename) FROM emp SELECT ename,LENGTH(ename) FROM emp SELECT ename,REPLACE(ename,'A','_') FROM emp SELECT SUBSTR('hello world',0,5) FROM dual SELECT ' hello world ',TRIM(' hello world ') FROM dual SELECT RPAD('sf',13,'111') FROM dual--->sf11111111111 SELECT LPAD('you',8,'love ') FROM dual--->love you
--數字函數
-|四捨五入
SELECT ROUND (34.3434), ROUND (23.5435,1), ROUND (434.342,-1) FROM dual
-|截取小數
SELECT TRUNC(9615.7652) , TRUNC(9615.7652,2) , TRUNC(9615.7652,-2) , TRUNC(-15.5) FROM dual
-|求餘
SELECT MOD(10,3) FROM dual
--日期函數
SELECT SYSDATE FROM dual SELECT ename, TRUNC(SYSDATE - hiredate) FROM emp SELECT ename,MONTHS_BETWEEN(SYSDATE,hiredate)FROM emp SELECT * FROM emp WHERE MONTHS_BETWEEN(SYSDATE,hiredate)/12>33
計算下一個星期二
SELECT NEXT_DAY(SYSDATE,'星期二') FROM dual
計算若干月以後的日期
SELECT SYSDATE,ADD_MONTHS(SYSDATE,4),ADD_MONTHS(SYSDATE,500) FROM dual
求出本月的最後一天日期
SELECT LAST_DAY(SYSDATE) FROM dual
--轉換函數
-|轉字符串 TO_CHAR
日期:年yyyy,月mm,日dd,時HH,HH24,分mi,秒ss;
數字:一位任意數字(9),本地貨幣(L)
SELECT to_char(SYSDATE,'yyyy-mm-dd') FROM dual--->2016-10-11 SELECT to_char(sal,'L99,999.00') sal FROM emp--->¥800.00
-|轉日期數據 TO_DATE
SELECT '1981-09-15',TO_DATE('1981-09-15','yyyy-mm-dd') FROM dual SELECT TO_NUMBER('1') + TO_NUMBER('2') FROM dual ; SELECT '1' + '2' FROM dual(自動轉換)
--通用函數
-|處理 null(遇到空的數據,按照數字0處理)
SELECT ename,sal,NVL(comm,0) FROM emp
-|if-then-else
SELECT ename,job , DECODE(job,'CLERK','辦事員','SALESMAN','銷售','MANAGER','經 理','ANALYST','分析員','PRESIDENT','總裁','未處理') FROM emp -->若是job='CLERK',then'辦事員'