6、oracle数据库下查询操作
ORACLE下查詢操作
針對數據庫操作最多的就是數據查詢,這里分享一個我常用的方法,看到需求后,先確定查詢范圍,就是需要查詢哪些表;之后確定查詢條件;最后寫出查詢的字段。
ORACLE中之前說過有兩個偽列ROWID和ROWNUM,用來標識唯一的一條記錄。
1.基本查詢
對數據查詢最簡單的也就是單表查詢了,查詢使用的語法是:
| SELECT [COLS] FROM [TABLE] [WHERE][CONDITION] |
平常查詢時,一定會有條件,也就是使用到where關鍵字,之后接條件,這里的條件可以看之前的一篇文章【查詢基礎】。
這里針對單表查詢,介紹一下分頁的邏輯,oracle中沒有mysql中的關鍵字limit,所以oracle中數據分頁查詢需要借助ROWNUM,具體如下:
| -- 通用的分頁SQL SELECT * FROM -- 具體分頁SQL實例 |
2.連接查詢
以下均以兩張表連接查詢為例
2.1 內連接
查詢兩張表符合條件的記錄的交集
| select * from emp,dept where emp.deptno=dept.deptno; select * from emp inner join dept on emp.deptno=dept.deptno; |
2.2 左外連接
將符合條件的左表中的所有數據查詢出來,關聯著右表中的數據,有則關聯顯示數據,無則顯示null,兩種寫法
| select e.name,d.name from emp e?left join dept d?on條件 或者是 select e.ename,d.name from emp e,dept d |
不可以在使用外連接的情況下使用in關鍵字
2.3 右外連接
將符合條件的右表中的所有數據查詢出來,關聯著左表中的數據,有則關聯顯示數據,無則顯示null,兩種寫法
| select e.name,d.name from dept d right join emp e on條件; 或者是 select e.ename,d.name from emp e,dept d |
2.4 自連接
就是給自己取個別名,然后當作兩個表連接,自連接中可以使用外連接。
3.子查詢
3.1 基礎子查詢
子查詢可以簡單的理解為一個查詢的結果,作為另一個查詢的條件,注意在子查詢中不能使用order by關鍵字,排序必須在父查詢中進行。如果子查詢返回的結果是多行,而其父查詢中使用的是比較運算符,將會出現錯誤。當內部select語句給外部的select語句返回一行或多行,在父查詢中可以使用in,any,all等關鍵字。如下例子:
| select deptno,sal from emp where (deptno,sal) in (select deptno,min(sal) from emp group by deptno); |
3.2 關聯子查詢
關聯子查詢指的是子查詢引用與父查詢相關的一列或多列,子查詢需借助父查詢,父查詢也需借助子查詢。此關聯子查詢可用exists關鍵字來實現如下例子:
| -- 直接寫關聯子查詢 select empno,ename,sal,deptno from emp outers |
3.3 子查詢應用
一般子查詢經常用在from關鍵字和where關鍵字之后,如下兩個例子:
| -- 在where之后用 select * from emp where sal>(select avg(sal) from emp) -- 在from之后用 select ename,dname from |
總結
以上是生活随笔為你收集整理的6、oracle数据库下查询操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图片怎么修改分辨率 有什么方法
- 下一篇: 8、oracle数据库下的索引