標籤:ack tween water 分享圖片 color post b2c 操作 分組
一、一般SELECT語句的格式例如以下:
1.查詢指定表的全部列
select * from 表名 [where 條件] [group by分組列名] [having?彙總函式] [order by排序列名?ASC| DESC]
在表名地方,能夠寫多個表
?
2.查詢指定表的部分列:
select {[distinct]列名。列名,…}from表名 [where 條件] [group by分組列名] [having?彙總函式] [order by排序列名?ASC| DESC]
當中keyworddistinct表示去除部分列中反覆資料,
僅僅是在查詢的時候去除,而該表內部資料紋絲不動
?
二、查詢指定的列
假設想查詢某一個或是多個指定列。能夠編寫相似於以下的SQL語句。
?
例1:查詢學生表部分列,如學號、姓名
select sno,snamefrom student
當中sno,sname分別為學生表的列名。student為學生表的表名,例如以:
例2:查詢學生表全部資訊,例如以:
三、在SQL語句中能夠使用算術運算式:
+、-、*、/。
?
如:selectempno,ename,sal+500 from emp;
所以sal列能夠做運算,然後在查詢結果中顯示
【注意】select後假設加*,那麼*之後不能再加別的東西,比方
select *, sname from A是錯誤的。
?
例3:如查詢學生表部分列。且age列各項資料加20。例如以:
【注意】儘管查詢結果中將age列全部資料加20,可是實際表中的資料沒有發生改變。
?
四、查詢語句中別名的使用
在查詢語句中,我們能夠為表或者列加上別名
1.在列上加別名:
(1)第一種寫法
select empno as “員工編號”,ename as “員工名稱” from emp
(2)另外一種寫法
select empno 員工編號,ename 員工名稱 from emp
(3)第三種寫法
select empno “員工編號”,ename “員工名稱” from emp
例4:為學生表中的sno和sname加入別名,例如以:
2.為表加別名
select empno, ename from empa
即將原表名emp改成別名a
?
例5:依據現有的student表和sc表,查詢s001學號的學產生績。
解:先查詢student表和sc表資訊。例如以:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" />
再兩表聯查。這個興許會學到:
對於命令:
SQL>selecta.sno,sname,score from student a, sc b
????? 2 where a.sno = ‘s001’ and a.sno = b.sno;
當中a和b分別為student表和sc表別名。
所以為表定義別名的用處是簡化代碼書寫,原來的student.sno如今簡化成a.sno。
?
五、串連運算子
在SQL查詢語句中能夠將兩列查詢的結果串連在一起,通過“||”實現。
SQL>select empno || ename from emp;
例6:將student表中的sno和sname兩列合并。
為了美觀。能夠為列加上別名:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" />
拓展:能夠為每列中的資料合併新的資料。比方把student表中sname和sno列合而且合并新資料。
【注意】查詢語句select再怎麼操作都不會改變表中的資料。
六、DISTINCT使用
假設查詢的結果中有反覆的值,能夠使用DISTINCT對反覆值進行過濾。
文法結構:SQL>select distinct列名from 表名;
?
例7:查詢sc表中資訊,去反覆
解:首先查詢sc表中全部資料
然後查詢sc表的cno列資料
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" />
利用distinct去反覆
七、WHERE子句使用
在SELECT語句中使用WHERE子句來過濾查詢出來的結果。
文法格式:
(1)where列名比較操作符數值;
(2)where列名比較操作符運算式;
(3)where列名比較操作符列名;
Oracle提供了例如以下經常使用的比較操作符:
(1)>
(2)<
(3)=
(4)<=
(5)>=
(6)<>或 != (這倆都表示不等於)
(7)between … and …
(8)in
(9)like
?
例8:利用where子句過濾出student表中姓名為3個字的學生資訊。
解:查詢student表全部資料
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" />
利用where過濾出姓名為3個字的學生資訊
事實上例如以中SQL語句也是where子句,兩表聯查興許會具體解釋。
例9:查詢工資大於1500元的員工編號和姓名
select empno,ename from emp where sal > 1500;
例10:查詢職位不是“CLERK”的員工編號和姓名
select empno,ename from emp where job <> ‘CLERK’
例11:查詢工資從1500到2900的員工資訊
select empno,ename from emp where sal between 1500 and 2900
例12:查詢工資是1500,3000。2000的員工資訊
select empno,ename from emp where sal in (1500,3000,2000);
八、AND、OR、NOT使用
AND、OR、NOT是作為Oracle中的3個邏輯運算子(操作符)。它們能夠把搜尋條件中的各個部分組合起來。
?
比方:查詢工資大於1500且職位為“SALESMAN”的員工資訊
SQL>selectempno, ename from emp
2 where sal > 1500 and job =’SALESMAN’;
比方:查詢“comm”這列非空的員工資訊
SQL>selectempno, ename, comm from emp
????? 2 where comm is notnull’;
?
例13:查詢player表中game_id列的非空資料和空資料
解:首先查詢player表全部資料
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" />
然後查詢player表game_id列中非空資料
查詢player表game_id列中空資料
Oracle-18-select語句初步&SQL中用算術運算式&別名的使用&串連運算子%distinct&where子句