- 相關(guān)推薦
Oracle數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí):SELECT語(yǔ)句
SELECT語(yǔ)句是指用來(lái)查詢、添加、 和刪除數(shù)據(jù)庫(kù)中數(shù)據(jù)的語(yǔ)句, 和刪除數(shù)據(jù)庫(kù)中數(shù)據(jù)的語(yǔ)句 , 它們 是 SELECT 、 INSERT 、 UPDATE 、 DELETE等. 下面是Oracle數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)——SELECT語(yǔ)句,希望對(duì)大家有所幫助!
普通用戶連接conn scott/tiger
超級(jí)管理員連接 conn “sys/sys as sysdba”
Disconnect 斷開連接
把SQL存到文件 save c:\1.txt
Ed c:\1.txt編輯SQL語(yǔ)句
@c:\1.txt運(yùn)行SQL語(yǔ)句
Desc emp描述EMP結(jié)構(gòu)
Select * from tab 查看該用戶下大所有對(duì)象
Show user顯示當(dāng)前用戶
書寫SQL語(yǔ)句的原則
大小寫不敏感,但單引和雙引內(nèi)的大小寫是敏感的。切記!
關(guān)鍵字不能縮寫
可以分行書寫,但關(guān)鍵字不能被跨行書寫,單引內(nèi)也不要跨行書寫。
一般每個(gè)子句是一行
可以排版來(lái)增加可讀性
字符串用單引
列的別名用雙引
SELECT語(yǔ)句
1、 簡(jiǎn)單的Select語(yǔ)句
Select * from table 不指定查詢的字段
Select attr1,attr2 from table指定查詢某些字段
Select attr1,attr2 from table where attr1=xxx查詢符合條件的指定字段
2、 使用算術(shù)表達(dá)式 + - / *
表達(dá)式的運(yùn)算是有優(yōu)先級(jí)的,和程序中的一樣,先乘除后加減,括號(hào)強(qiáng)制優(yōu)先級(jí).
+ - * /
先乘除,后加減,括號(hào)強(qiáng)制優(yōu)先級(jí)
Select ename,12*sal+300 from emp;
Select ename,12*(sal+300) from emp;
3、 連接運(yùn)算符 ||
4、 使用字段別名 as
別名的使用原則
1。區(qū)分同名列的名稱
2。非法的表達(dá)式合法化
3。按照你的意愿顯示列的名稱
4。特殊的別名要雙引
5。直接寫列的后面
6。使用as增加可讀性
5、 空值 is null
Null值不等于0,也不等于空格。
Null值是未賦值的值,不入索引。
NULL是雙刃劍,使用好了提高性能,你對(duì)它不了解,往往是錯(cuò)誤的根源,切記!
查詢NULL值
因?yàn)閚ull不等于null,所以沒(méi)有行被選出。未知不等于未知,無(wú)窮不等于無(wú)窮.
6、去除重復(fù)行 distinct
SELECT 語(yǔ)句顯示重復(fù)的行。用DISTINCT語(yǔ)法來(lái)去掉重復(fù)的行。
如果我們想去掉重復(fù)的行,我們需要distinct關(guān)鍵字。
在ORACLE數(shù)據(jù)庫(kù)的10G前版本,該語(yǔ)句需要排序才能去掉重復(fù)的行,而在10G中數(shù)據(jù)庫(kù)并不需要
排序,而是使用HASH算法來(lái)去掉重復(fù)的行,由于避免了排序,從而極大的提高了SQL語(yǔ)句的效率,
因?yàn)?0G的SQL內(nèi)核改寫了。效率更加的高。因?yàn)闆](méi)有排序,所以輸出也是無(wú)序的。
7、查詢結(jié)果排序 order by asc(desc)
Where和order by 子句
語(yǔ)法
SELECT *|{[DISTINCT] column|expression [alias],...}
FROM table
[WHERE condition(s)]
[order by column|expression| alias ];
Where 一定要放在FROM 子句的后面。
顯示表的部分行和部分列,使用where子句過(guò)濾出想要的行
Select deptno,ename from emp Where deptno=10;
Order by 放在最后,用來(lái)排序顯示結(jié)果
不指明都是二進(jìn)制排序,如果你想按照拼音,部首,筆畫,法語(yǔ)等特殊的排序模式,請(qǐng)?jiān)O(shè)定排序的環(huán)境
變量,關(guān)于國(guó)家語(yǔ)言的支持問(wèn)題我們?cè)貲BA體系結(jié)構(gòu)中描述。
默認(rèn)是升序asc
降序要指定desc
8、比較運(yùn)算符 > < (!= or <>) between and
And運(yùn)算
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
兩個(gè)條件的交集,必須同時(shí)滿足。
in操作 not in
含上下界
In操作,窮舉,據(jù)說(shuō)窮舉不能超過(guò)1000個(gè)值,我沒(méi)有去驗(yàn)證。一般我們也不會(huì)窮舉到1000個(gè)值,如
果到1000請(qǐng)改寫你的SQL。
Select deptno,ename,sal from emp Where deptno in(10,20);
9、模糊查詢 like
% 表示零或多個(gè)字符
_ 表示一個(gè)字符
對(duì)于特殊符號(hào)可使用ESCAPE 標(biāo)識(shí)符來(lái)查找
Like運(yùn)算
_ 通配一個(gè),僅匹配一個(gè)字符,
% 通配沒(méi)有或多個(gè)字符
10、邏輯運(yùn)算符 or and not
OR運(yùn)算
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
兩個(gè)條件的并集,滿足一個(gè)就可以。
not運(yùn)算
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
補(bǔ)集,不是T打頭的員工。
優(yōu)先級(jí)
1。算術(shù)運(yùn)算
2。連接運(yùn)算
3。關(guān)系運(yùn)算
4。 IS [NOT] NULL, LIKE, [NOT] IN
5。Between
6.not
7.and
8.or
括號(hào)強(qiáng)制優(yōu)先級(jí)
【Oracle數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí):SELECT語(yǔ)句】相關(guān)文章:
Oracle數(shù)據(jù)庫(kù)SELECT語(yǔ)句10-25
Oracle查詢?cè)恚篠elect語(yǔ)句09-17
oracle數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)01-21
oracle數(shù)據(jù)庫(kù)基本語(yǔ)句02-08
Oracle數(shù)據(jù)庫(kù)語(yǔ)句大全12-21
ORACLE數(shù)據(jù)庫(kù)操作基本語(yǔ)句09-15
Oracle數(shù)據(jù)庫(kù)認(rèn)證層次08-29