一起學習SQL查詢系列之一 基本查詢(上)

2022-01-30 20:07:34 字數 2165 閱讀 3405

(1)從表中檢索所有行和列

問題

檢視乙個表中的所有資料。

解決方案

對錶使用select語句並使用特殊字元「*」。

select 

* from emp

討論

sql中的「*」符號是具有特殊意義的。使用它可返回指定表中的每一列。這裡由於沒有where字句,所以將返回表中的每一行。還有一種替代方法是分別列出每一列。

select empno,ename,job,sal,mgr,hiredate,comm,deptno

from emp

在互動執行的查詢中,使用select *更容易一些。然而,在編寫程式**的時候最好是分別指定每一列,它們的效能都是一樣的。但是,顯示的指定列就會更清楚查詢中返回了哪些列。同樣,其他使用者,而不是**編寫者自己,也更容易理解該查詢。

(2)從表中檢索部分行

問題

從表中查詢滿足特定條件的行。

解決方案

使用where字句指定要保留哪些行。例如,要檢視部門號碼為10的所有員工的資訊。

select 

*from emp

where deptno = 10

討論

利用where子句可以只檢索使用者感興趣的行,如果where子句中的表示式在某行為真,則返回該行。

大多數廠商都支援通用的運算子,例如:=, <, >, <=, >=, !, <>。另外,如果要查詢滿足多種條件的行,可以使用and,or或圓括號。

(3)查詢滿足多種條件的行

查詢滿足多種條件的行。

解決方案

使用where子句以及or和and子句。例如,如果要查詢部門10中的所有員工的資訊,所有得到提成的員工資訊,以及部門20中工資不超過$2000元的員工資訊,可使用如下**:

select 

*from emp

where deptno = 10

or comm is not null

or sal <= 2000 and deptno=20

討論

可以使用and,or和圓括號的組合來查詢滿足多個條件的行。在解決方案的例子中,where子句查詢滿足下列條件的行:

(4)從表中檢索特定的列

問題

查詢乙個表中特定列的指而不是所有列的值。

解決方案

指定感興趣的列。例如,只查詢員工的姓名,部門號和工資:

select ename,deptno,sal

from emp

討論

通過在select子句中指定列,可以保證不會返回一些無關的資料。在通過網路檢索資料時這一點很重要,因為這樣可以避免檢索不需要的資料時帶來的時間浪費。

(5)為列提供有意義的名稱

問題

修改查詢返回的列名使其更具有可讀性並且容易理解。例如查詢每個員工的工資和提成

select sal,comm

from emp

「sal」是什麼?是」sale」的縮寫?還是某個人的名字?什麼是「comm」,是表示「communication」嗎?結果的標籤應該更明確些。

解決方案

要改變查詢結果的列名,可以按這種格式使用as關鍵字:原列名 as 新列名。一些資料庫不需要使用as,但是所有的資料庫都接收這種用法。

select sal as salary, comm as commission

from emp

IOTGate系列之一 源起

iotgate是什麼?iotgate是基於netty實現的支援多規約物聯網裝置同時接入的乙個 物聯網智慧型網關程式 為什麼會有iotgate?iotgate與其它閘道器程式長處和缺點有什麼?1.優點 a.部署靈活 iotgate既可以單節點部署,又可以多節點集群部署,因此可以根據接入的終端數量靈活決...

開源一起學習

要想自己學習機器學習,3本 聖經 是一定要看的 花書,西瓜書,和統計學習方法 但不是剛入門就要看的,首先啊,我們必須學好學校教的c語言,對程式設計有乙個初步的了解,其次,我們都知道python的厲害,可以幹很多事,也很出名,這就出現了人人都知道py,但不是人人都懂py的現象。確實要想搞機器學習,你最...

一起學習extjs( )

可以說,extjs是系統類專案最好的ui 前端使用者介面 選擇,特別是自從extjs4.0出來後,不管是 美觀還是效能的提高,及其功能之強大,說它排第一,無可厚非。當然,最近也蠻流行easyui這個輕量級的,據說是國人開發的ui。其實,也是很不錯的。大家可以根據自己專案的情況來進行選擇。然後,我們自...