oracle對于數據庫中的表信息,存儲在系統表中。查詢已創建好的表索引,可通過相應的sql語句到相應的表中進行快捷的查詢:\x0d\x0a1. 根據表名,查詢一張表的索引\x0d\x0a\x0d\x0aselect * from user_indexes where table_name=upper('表名');\x0d\x0a\x0d\x0a2. 根據索引號,查詢表索引字段\x0d\x0a\x0d\x0aselect * from user_ind_columns where index_name=('索引名');\x0d\x0a\x0d\x0a3.根據索引名,查詢創建索引的語句\x0d\x0a\x0d\x0aselect dbms_metadata.get_ddl('INDEX','索引名', ['用戶名']) from dual ; --['用戶名']可省,默認為登錄用戶\x0d\x0a\x0d\x0aPS:dbms_metadata.get_ddl還可以得到建表語句,如:\x0d\x0a\x0d\x0aSELECT DBMS_METADATA.GET_DDL('TABLE','表名', ['用戶名']) FROM DUAL ; //取單個表的建表語句,['用戶名']可不輸入,默認為登錄用戶\x0d\x0aSELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name) FROM USER_TABLES u; //取用戶下所有表的建表語句\x0d\x0a\x0d\x0a當然,也可以用pl/sql developer工具來查看相關的表的各種信息。
專注于為中小企業提供成都做網站、網站制作、成都外貿網站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業羅平免費做網站提供優質的服務。我們立足成都,凝聚了一批互聯網行業人才,有力地推動了上千企業的穩健成長,幫助中小企業通過網站建設實現規模擴充和轉變。
1、首先第一步就進行搜索oracle網站的網站然后點擊進行打開。
2、接著點擊打開之后,這時候就輸入自己的相關信息開進行查詢了,如下圖所示。
3、然后就是進行輸入證件號碼、證書編號、準考證號、姓名中的任意兩項內容都可以查詢,是證件號碼和姓名,直接點擊”查詢“即可。
4、最后輸入后就可以看到查詢后的結果了,如下圖所示。
查詢是數據的一個重要操作。用戶發送查詢請求,經編譯軟件變異成二進制文件供服務器查詢,后返回查詢結果集給用戶,查詢會產生一個虛擬表,看到的是表形式顯示的結果,但結果并不真正的存儲,每次執行查詢只是從數據表中提取數據,并按照表的形式顯示出來。
SELECT 列名
FGROM 表名
[WHERE 查詢條件表達式]
[GROUP BY 分組表達式]
[HAVING 分組查詢表達式]
[ORDER BY 排序的列名 [ASC或DESC]]
group by 用于對查詢的結果分組統計,通過對group by后面的名字進行分組后輸出結果。
group by后面還可以跟多列表示 多列分組 ,在多列分組時放前面的優先分組。
group by 列名,列名
having 子句用于限制分組顯示結果,其只能和group by一起連用。在where中沒有辦法直接使用聚合函數,即sum avg等無法使用,所以引用了having,在having中可以使用這些函數。
order by 表示排序,后跟列名和排序方式。如果什么都不加默認為升序。ASC表示升序,DESC表示降序。
在Oracle中還可以設置多列排序
order by 列名1 升降,列名2 升降;
前面的為主要排序,后面的為次一級排序。
注:碰到自己與自己比較的情況下,不能用having,可以創建一個新列。
注:如果select語句同時包含group by,having,order by,按group by,having,order by排序
分組和聚合一起使用,目的是為了統計信息。
where是為了from服務的,只能跟 真實的字段 ,用來篩選from子句中指定的操作所產生的行
group by 用來分組where子句的輸出
having 用來從分組的結果中篩選行
order by用來對篩選的結果進行排序
(1)分組函數:max min?avg sum count
max表示該列的最大值,min表示該列的最小值,avg表示該列的平均值,sum表示該列的和,count表示該列的行數。
注:分組函數(max、min、avg、count、sum)只能出現在選擇列表中having子句、order by子句、不能出現在where子句和group by子句中。
(2)多表查詢
多表查詢是指兩個和兩個以上的表或者是視圖的查詢,在實際應用中,當查詢單個表不能滿足需求時,一般使用多表查詢。如:顯示sales部門位置和其員工的姓名,這種情況下需要使用到(dept表和emp表)。
多表查詢的連接一般可以分為:內連接、左外連接、右外連接、全連接。
注:在使用多表查詢的時候每個表可以設置別名,如果表指定了別名,那么語句中所有語句必須使用別名,而不能再使用實際表名。且在寫屬性的時候如果屬性為其中一個表特有的屬性則不需要寫別名,如果是兩個表都有則必須指定是哪一個表的哪個屬性格式為:表名.屬性名。
select 列名 from 表1 別名,表2 別名...
注:e是emp的別名,d是dept的別名。
但如果對表進行了操作則需要設置別名,如:查詢每個部門中工資高于該部門平均工資的員工人數。在其中有一個avg表,這個表必須設置別名(提醒:如果僅有一個被修改的表,則可以不設置別名,但如果有多個表則必須設置別名)。
內連接
內連接通過使用比較運算符來使每個表的通用列中的值匹配來組成一個新表,即:把兩個表中間共有的那些行拿出來進行連接,如果某些行不是兩個表共有的,則不進行連接。
select
from 表1
inner join 表2
on 匹配條件
或
select
from 表1 表2
where匹配條件
左外連接
左外連接與內連接的區別是:設置左外連接的時候設置了主表和附表,主表在前,附表在后。內連接是將兩個表匹配的地方輸出出來,而左外連接則是主表全寫,附表一一對應,附表有則加上,沒有不寫。
select
from 表1
left join 表2
on 匹配條件
右外連接
右外連接和左外連接基本相同只是右外連接的主表寫在后邊。
select
from 表1
right join 表2
on 匹配條件
全連接
全連接是在等值連接的基礎上將左表和右表的未匹配數據都加上,使用的關鍵字為full outer join或者full join。
select
from 表1
full join 表2
on 匹配條件
自連接
還有一種特殊情況即自連接,在Oracle中一個表無法與自己進行比較,所以當需要自己表的兩個信息做比較的時候也需要使用連接來連接,即同一張表的連結查詢。
(3)子查詢
子查詢是指嵌套在其他sql語句中的select語句,也叫嵌套查詢。sql語句執行順序為從右到左執行,所以在執行查詢時會先執行左側的子查詢后進行主查詢。
子查詢分為單行子查詢和多行子查詢,單行子查詢是指返回一行數據的子查詢語句,多行子查詢是指返回多行數據的查詢語句。子查詢還可以分為多列子查詢、多行子查詢、多列多行子查詢。
在進行子查詢時如果內部查詢不返回任何記錄,則外部條件中字段DEPTNO與NULL比較永遠為假,也就是說外部查詢不返回任何結果。
總結為:
單行子查詢是指子查詢只返回單列、單行數據
多行子查詢是指返回單列多行數據,都是針對單列而言的
多列子查詢則是指查詢返回多個列數據的子查詢語句
單行子查詢
where deptno = (單行數值)
多行子查詢
where deptno in ( 多行數值 )
多列子查詢:
where (job,deptno)=(select job,deptno from emp where ename='KING')
多列多行子查詢
where (job,deptno) in (select job,deptno from emp where ename='KING')
單行子查詢
在單行子查詢的外部查詢中可以使用=、、、=、=、等比較運算符。
內部查詢返回的結果必須與外部查詢條件中字段(DEPTNO)相匹配。
多行子查詢
在WHERE子句中使用多行子查詢時,可以使用多行比較運算符(IN,ALL,ANY)。
IN:等于任何一個。
ALL:和子查詢返回的所有值比較。例如:salALL(1,2,3)等價于sal3,即大于所有。
ANY:和子查詢返回的任意一個值比較。例如:salANY(1,2,3)等價于sal1,即大于任意一個就可以。
注:ANY運算符必須與單行比較運算符結合使用,并且返回行只要匹配子查詢的任何一個結果即可。
多列子查詢
多列子查詢和多行子查詢相同,只是使用多列子查詢的時候會有多列進行匹配。
(4)集合運算
為了合并多個select語句的結果,可以使用集合操作符號union,union all,intersect,minus。
union:該操作符用于取得兩個結果集的并集。當使用該操作符時,會自動去掉結果集中重復行
union all:該操作與union相似,但是它不會取消重復行,而且不會排序
intersect:使用該操作符用于取得兩個結果集的交集
minus:使用該操作符用于取得兩個結果集的差集,它只會顯示存在第一個集合中,而不存在第二個集合中的數據
總結為集合運算就是將兩個或者多個結果集組合成一個結果集。
intersect ?交集 返回兩個查詢共有的記錄
union all ?并集 返回各個查詢的所有記錄,包括重復的記錄
union ? ? ?交集 返回各個查詢的所有記錄,不包括重復的記錄
MINUS ? 補集 返回第一個查詢檢查出的記錄減去第二個查詢檢索出來的記錄之后剩余的記錄
注意:當使用集合操作的時候,查詢所返回的列數以及列的類型必須匹配,列名可以不同。
(1)Distinct關鍵字
在Oracle中,可能出現若干相同的情況,那么可以用Distinct消除重復行
(2)多表查詢與單行子查詢可以實現相同的功能
查詢出銷售部(sales)下面的員工姓名,工作,工資
(3)顯示高于自己部門平均工資的員工信息
分析:
1.找到所有部門的平均工資
select deptno,avg(sal) from emp group by deptno;
2.找到所有人的工資信息
select ename,sal,deptno from emp;
3.把兩個結果集使用多表連接組合組合起來
select * from emp,(select deptno,avg(sal) avgsal from emp group by deptno) damao where emp.deptno=damao.deptno;
4.去掉低于平均工資的那些數據即可:
select * from emp,(select deptno,avg(sal) avgsal from emp group by deptno) damao where emp.deptno=damao.deptno and salavgsal;
(4)emp表介紹
字段? ? ? ? ? ? ? 類型? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 描述
empno ? ? ? ? ?NUMBER(4) ? ? ? ? ? ? ? ? 表示雇員編號,是唯一編號
ename ? ? ? ? ?VAECHAR2(10) ? ? ? ? ? 表示雇員姓名
job ? ? ? ? ? ? ? ?VARCHAR2(9) ? ? ? ? ? ? 表示工作職位
mgr ? ? ? ? ? ? ?NUMBER(4) ? ? ? ? ? ? ? ? 表示一個雇員的領導編號
hiredate ? ? ? DATE ? ? ? ? ? ? ? ? ? ? ? ? ? ?表示雇傭日期
sal ? ? ? ? ? ? ? NUMBER(7,2) ? ? ? ? ? ? ? 表示月薪,工資
comm ? ? ? ? ?NUMBER(7,2) ? ? ? ? ? ? ? 表示獎金,或者稱為傭金
deptno ? ? ? ? NUMBER(2) ? ? ? ? ? ? ? ? 部門編號
Oracle查詢用戶表空間:select * from user_all_tables
Oracle查詢所有函數和儲存過程:select * from user_source
Oracle查詢所有用戶:select * from all_users.select * from dba_users
Oracle查看當前用戶連接:select * from v$Session
Oracle查看當前用戶權限:select * from session_privs
表空間含義:
表空間是數據庫的邏輯劃分,一個表空間只能屬于一個數據庫。所有的數據庫對象都存放在指定的表空間中。但主要存放的是表, 所以稱作表空間。
Oracle數據庫中至少存在一個表空間,即SYSTEM的表空間。
方法和詳細的操作步驟如下:
1、第一步,查詢該庫中的所有表,測試sql,代碼見下圖,轉到下面的步驟。
2、第二步,執行完上面的操作之后,查詢有多少個數據表,見下圖,轉到下面的步驟。
3、第三步,執行完上面的操作之后,在TEST的開頭編寫一個查詢表的腳本,每個表中的記錄數,代碼見下圖,轉到下面的步驟。
4、第四步,執行完上面的操作之后,執行sql,在輸出窗口中,可以看到每個表的輸出,見下圖。這樣,就解決了這個問題了。
1、打開oracle sql developer工具,沒有此工具的可以去oracle官網下載安裝即可,剛剛安裝完成的是沒有記錄的,只有使用工具執行過后才會留下記錄可以查詢。打開之后不需要連接數據庫就可以查詢到sql記錄了。
2、在二級菜單中,選擇SQL歷史記錄選項,或者按快捷鍵F8打開窗口。
3、默認打開是會顯示在最下方的小窗口,在標題欄雙擊鼠標左鍵,即可最大化窗口,再次雙擊左鍵還原窗口。
4、最大化窗口之后,便于更好的查詢記錄結果,如圖所示,以往執行的sql記錄都顯示出來了,可以在每個欄目標題上單擊,進行排序操作,一般可以點擊時間戳字段,按時間來排序查詢記錄。第二次點擊,可以切換順序和逆序。
5、最后一個字段是持續時間,點擊排序之后可以查詢出哪些sql語句最快,哪些sql語句執行比較慢,需要優先等。
6、對于一些不需要的sql記錄可以刪除的,因為記錄多了不便于查詢,沒有用的sql最好及時清除了。只需要選擇您需要刪除的記錄,然后點擊如圖所示的清除按鈕,在二次確認彈框中選擇是,即可刪除。
7、在刪除按鈕后面就是一個搜索輸入框,在此處輸入搜索關鍵字可以模糊匹配到記錄,對于記不清的記錄,采用模糊搜索的方式查詢,效率非常高。工具會自動根據我們輸入的關鍵字進行篩選過濾的。
名稱欄目:oracle如何查詢,Oracle如何查詢表空間
本文鏈接:http://vcdvsql.cn/article16/heopdg.html
成都網站建設公司_創新互聯,為您提供商城網站、定制開發、動態網站、網站維護、云服務器、移動網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯