oracle常用數據操縱語句

1 group by 中 having 子句與where 子句的區別在於:
where子句搜索條件在進行分組操作之前應用;而having子句搜索條件在進行分組操作之後應用。
having 語法與where 語法類似,但是having可以包含聚合函數。

2  連接查詢有三種:內連接、外連接、交叉連接

內連接 INNER JOIN 
   * 在創建內連接時,包含空值的列不與任何值匹配,因此不包含在結果集中。空值不與其他的空值匹配。
 
外連接有三種:左向外連接(左連接)、右向外連接(右連接)、完整外部連接
左連接:left outer join 或left join   **以左邊表爲主
右連接:right outer join 或 right join  ** 以 右邊表爲主
完全外部連接 相當於左連接和右連接的並集

交叉連接:兩表中的任意兩行都可以組合,不需要使用on子句指定表之間的連接關係

3  exists 關鍵字與子查詢
   下面兩個語句一樣效果
   (1)select emp_name,title,wage from hrman.employees e
      where exists
     (select dept_id form hrman.departments d where e.dept_id=d.dept_id and d.dept_name='人事部');
   (2)select emp_name,title,wage from hrman.employees e
      where e.dept_id in
      (select dept_id from hrman.departments d
       where e.dept_id=d.dept_id and d.dept_name='人事部');

 

4 union 關鍵字可以組合兩個查詢的結果集,結合的基本規則如下:
   a.所有查詢中的列數和列的順序必須相同
   b.數據類型必須兼容

 ** 在使用union關鍵字進行合併查詢時,數據庫引擎會自動過濾掉結果集中的重複記錄。 
 使用union all 關鍵字不會過濾重複數據,其執行效率會更高一些


5 decode 
select emp_name, decode(sex,'男','先生','女','女士','未知') as sex from employees;

6. case函數可以實現與decode函數相同的功能
select emp_name, case sex when '男' then '先生' when '女' then'女士' else '未知' end as sex from employees;
其他用法:
select emp_name, wage,
case when wage <=3000 then '低'
when wage >3000 and wage<5000 then '中' 
when wage >=5000 then '高' end as grage from employees;

7 保存查詢結果
create table table_name as select ... from ... where ...;

8  設置默認值 alter table employees ADD inputDate date DEFAULT(sysdate);


9  設置唯一性 alter table employees ADD CONSTRAINT UK_EMPNAME UNIQUE(emp_name);

10 修改數據時不能違反檢查約束
設置約束條件 alter table employees ADD CONSTRAINT CK_EMPWAGE CHECK(WAGE >0);

11 修改數據時不能違反外鍵約束
alter table employees ADD CONSTRAINT FK_EMP_DEPTID FOREIGN(DEPT_ID) REFERENCES DEPARTMENTS(DEPT_ID);

12 刪除數據語句
   delete from table_name where condition
   truncate table table_name;

 
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章