日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

编程学习记录13:Oracle数据库,表的查询

發布時間:2025/3/15 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编程学习记录13:Oracle数据库,表的查询 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  表達查詢是數據庫中最常用的操作,最基本的語句為 SELECT <列名、值、函數> FROM <表名>

  當在 SELECT 后使用 * 即表示所查詢表中的所有列,如SELECT * FROM emp 就會查出emp表中的所有數據

  如果不想要輸出所有列,需要在 SELECT 后面加上想要獲得的列名,如 SELECT ename, eno FROM emp 就會查出emp表中所有數據的ename值和eno值

  如果不想輸出所行,需要在表名后加上 WHERE <條件>? ,如 SELECT * FROM emp WHERE eno < 50 就會輸出eno小于50的所有數據

  ?

  有時候我們可能需要同時查詢多個表中的數據,這時候就需要用到表的連接

  表的連接可以分為以下幾種:

  1、笛卡爾積:沒有連接條件,是多個表中數據所有可能組合的集合

    SELECT * FROM emp e, dept d

  2、內連接:通過標間相同的字段來進行連接,如可以通過部門編號把員工信息與部門信息連接起來

    SELECT * FROM emp e, dept d WHERE e.deptno = d.deptno

  3、外連接:也是通過相同的字段來連接,但會輸出不滿足連接條件的數據,如查看考試成績信息但有些人沒有參加考試

    SELECT * FROM emp e LEFT JOIN(左外鏈接,右外連接為RIGHT JOIN) dept d ON e.deptno = d.deptno

  4、自連接:本表與本表進行連接

    SELECT * FROM emp e1, emp e2 WHERE e1.deptno = e2.deptno

  5、自然連接:不同表中相同列名的數據進行等值連接

?

  有些時候我們可能要用到其他表中的一些值作為條件,就需要用到子查詢

  SELECT * FROM emp WHERE e.deptno = (SELECT deptno FROM dept WHERE dname='財務部')

  就可以查到所有財務部的員工信息類

?

  當我們需要統計一些數據時,如總分、平均分、成績,就需要用到 聚合函數 和 GROUP BY

  SELECT deptno, avg(sal) FROM emp GROUP BY deptno

  可以查詢到每個部門的平均工資

  當需要在條件中使用聚合函數時,需要用到 HAVING 而不是 WHERE

  SELECT deptno FROM emp GROUP BY deptno HAVING avg(sal) > 3000

  可以查詢到評價工資大于3000的部門編號

?

  當我們需要進行分頁查詢時,就需要對數據進行排列和截取

  ORDER BY <列名> [ASC | DESC] 可以根據列進行升序(ASC 默認)和降序(DESC)排序,如果GROUP BY 后有多個列名,那會從左到右依次排序,如 ORDER BY score DESC, id 就會先根據score降序,如果 score 有相同數值再根據 id 在score相同的情況下升序

  如果要進行分頁截取,那么就得先獲得列的列數,可以用 ROWNUM 來獲得

  SELECT ROWNUM, ename FROM emp

  

轉載于:https://www.cnblogs.com/HMTT-RIN/p/11250770.html

總結

以上是生活随笔為你收集整理的编程学习记录13:Oracle数据库,表的查询的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。