Oracle-18-select語句初步&SQL中用算術運算式&別名的使用&串連運算子%distinct&where子句

來源:互聯網
上載者:User

標籤: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語句初步&amp;SQL中用算術運算式&amp;別名的使用&amp;串連運算子%distinct&amp;where子句

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.