Oracle SQL細節總結(一)

simplewp發表於2012-09-15
1)insert :用於插入資料,操作物件表或者檢視
     
    INSERT INTO table [(column [, column...])]  VALUES(value [, value...]);
    
    向表中插入時間,需要使用函式to_date()進行轉換,當前時間sysdate:
     insert into tab_dd values (1,to_date('2012-1-1','yyyy-mm-dd')) ;
     insert into tab_dd values (1,sysdate) ;
    
     向表中插入空值: insert into tab_dd values (1,null);
   
     當資料來源來自另一張表:insert into tab_dd(id) select id from tab_cc where id = 1;

2)update:用於更新資料,操作物件表或者檢視
UPDATE table
               SET column = value [, column = value, ...]
               [WHERE condition];

當更新表的外來鍵時,如果參照表中不含有該資料,向會報錯
update emp set deptno=60;

ERROR at line 1:
ORA-02291: integrity constraint (SCOTT.FK_DEPTNO) violated - parent key not
found

3)delete:刪除資料,與drop的區別:drop用於刪除資料庫物件(表,檢視,觸發器等)
 DELETE [FROM] table
               [WHERE condition];
最好加上where,防止刪掉整表資料;

4)select :查詢資料,操作物件是檢視或表
SELECT *|{[DISTINCT] column|expression [alias],...}
    FROM table;


SQL語句的關鍵詞,需要查詢列名不區分大小寫,但where 條件的列對應的資料區分大小寫,時間對格式敏感;
An arithmetic expression can contain column names, constant numeric values, and the arithmetic operators.
SQL語句可以包含算數表示式

select ename , sal , 12 * (sal + 100) from emp;


一個NULL值表示未知,不可用,不同於零或空格;

判斷值是否為空值:select ename from emp where comm is null;

使用別名:select ename ,sal,12*sal*comm as "Annual Salary" from emp;

||:連線查詢值,select ename ||' is a' || job as "Employees" from emp;



Rules of Precedence :
    1    Arithmetic operators 
    2    Concatenation operator
    3    Comparison conditions
    4    IS [NOT] NULL, LIKE, [NOT] IN
    5    [NOT] BETWEEN
    6    NOT logical condition
    7    AND logical condition
    8    OR logical condition

5)內建函式
單行函式:運算元據項,接受的引數可以是列或者表示式;作用用於每一列,都返回一個值;


拷貝一張表的副本
1)只拷貝結構:create table tab_cc as select * from tab_dd where 1=2;(最後兩個數字只要不想等即可)
2)結構和資料全拷貝:create table tab_cc as select * from tab_dd where 1=1;(最後兩個數字相等即可)


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27009266/viewspace-743641/,如需轉載,請註明出處,否則將追究法律責任。

相關文章