當前位置:才華齋>IT認證>Oracle認證>

Oracle資料庫SELECT語句

Oracle認證 閱讀(1.23W)

學習oracle資料庫自然會用到查詢(SELECT)語句,下面yjbys小編為大家列舉各種查詢語句,希望能幫助到各位!

Oracle資料庫SELECT語句

普通使用者連線conn scott/tiger

超級管理員連線 conn “sys/sys as sysdba”

Disconnect 斷開連線

把SQL存到檔案 save c:

Ed c:編輯SQL語句

@c:執行SQL語句

Desc emp描述EMP結構

Select * from tab 檢視該使用者下大所有物件

Show user顯示當前使用者

  書寫SQL語句的原則

大小寫不敏感,但單引和雙引內的大小寫是敏感的。切記!

關鍵字不能縮寫

可以分行書寫,但關鍵字不能被跨行書寫,單引內也不要跨行書寫。

一般每個子句是一行

可以排版來增加可讀性

字串用單引

列的別名用雙引

  SELECT語句

  1、 簡單的Select語句

Select * from table 不指定查詢的欄位

Select attr1,attr2 from table指定查詢某些欄位

Select attr1,attr2 from table where attr1=xxx查詢符合條件的指定欄位

  2、 使用算術表示式 + - / *

表示式的運算是有優先順序的,和程式中的一樣,先乘除後加減,括號強制優先順序.

+ - * /

先乘除,後加減,括號強制優先順序

Select ename,12*sal+300 from emp;

Select ename,12*(sal+300) from emp;

  3、 連線運算子 ||

  4、 使用欄位別名 as

別名的使用原則

1。區分同名列的名稱

2。非法的表示式合法化

3。按照你的意願顯示列的名稱

4。特殊的別名要雙引

5。直接寫列的後面

6。使用as增加可讀性

  5、 空值 is null

Null值不等於0,也不等於空格。

Null值是未賦值的值,不入索引。

NULL是雙刃劍,使用好了提高效能,你對它不瞭解,往往是錯誤的根源,切記!

查詢NULL值

因為null不等於null,所以沒有行被選出。未知不等於未知,無窮不等於無窮.

  6、去除重複行 distinct

SELECT 語句顯示重複的行。用DISTINCT語法來去掉重複的行。

如果我們想去掉重複的行,我們需要distinct關鍵字。

在ORACLE資料庫的10G前版本,該語句需要排序才能去掉重複的行,而在10G中資料庫並不需要

排序,而是使用HASH演算法來去掉重複的行,由於避免了排序,從而極大的提高了SQL語句的`效率,

因為10G的SQL核心改寫了。效率更加的高。因為沒有排序,所以輸出也是無序的。

  7、查詢結果排序 order by asc(desc)

Where和order by 子句

語法

SELECT *|{[DISTINCT] column|expression [alias],...}

FROM table

[WHERE condition(s)]

[order by column|expression| alias ];

Where 一定要放在FROM 子句的後面。

顯示錶的部分行和部分列,使用where子句過濾出想要的行

Select deptno,ename from emp Where deptno=10;

Order by 放在最後,用來排序顯示結果

不指明都是二進位制排序,如果你想按照拼音,部首,筆畫,法語等特殊的排序模式,請設定排序的環境

變數,關於國家語言的支援問題我們再DBA體系結構中描述。

預設是升序asc

降序要指定desc

  8、比較運算子 > < (!= or <>) between and

 And運算

Select ename,deptno,sal From emp Where deptno=30 and sal>1200;

ENAME DEPTNO SAL

---------- ------ ----------

ALLEN 30 1600

WARD 30 1250

MARTIN 30 1250

BLAKE 30 2850

TURNER 30 1500

兩個條件的交集,必須同時滿足。

in操作 not in

含上下界

In操作,窮舉,據說窮舉不能超過1000個值,我沒有去驗證。一般我們也不會窮舉到1000個值,如

果到1000請改寫你的SQL。

Select deptno,ename,sal from emp Where deptno in(10,20);

  9、模糊查詢 like

% 表示零或多個字元

_ 表示一個字元

對於特殊符號可使用ESCAPE 識別符號來查詢

Like運算

_ 通配一個,僅匹配一個字元,

% 通配沒有或多個字元

  10、邏輯運算子 or and not

OR運算

Select ename,deptno,sal From emp Where deptno=30 or sal>1200;

ENAME DEPTNO SAL

---------- ------ ----------

ALLEN 30 1600

WARD 30 1250

JONES 20 2975

MARTIN 30 1250

BLAKE 30 2850

CLARK 10 2450

KING 10 5000

TURNER 30 1500

JAMES 30 950

FORD 20 3000

MILLER 10 1300

兩個條件的並集,滿足一個就可以。

 not運算

Select ename,deptno,sal From emp Where ename not like 'T%';

ENAME DEPTNO SAL

---------- ------ ----------

SMITH 20 800

ALLEN 30 1600

WARD 30 1250

JONES 20 2975

MARTIN 30 1250

BLAKE 30 2850

CLARK 10 2450

KING 10 5000

JAMES 30 950

FORD 20 3000

MILLER 10 1300

補集,不是T打頭的員工。

   優先順序

1。算術運算

2。連線運算

3。關係運算

4。 IS [NOT] NULL, LIKE, [NOT] IN

5。Between

括號強制優先順序