在數據庫的操作中,開發人員或者用戶為了取得數據記錄,需要檢索數據表中的信息。在SQL語句中,檢索數據記錄是通過SELECT語句來完成的。SELECT語句可以檢索數據表或者視圖中的數據,并將查詢出來的數據以結果集的形式顯示出來。從這一章開始對SELECT查詢語句做全面的介紹,本章主要介紹SELECT語句查詢的基本操作。
查詢全部列的記錄
在SQL語句中,如果想要檢索數據表中全部列的記錄,就需要對數據表中的所有列進行查詢。在SQL語句中,提供了一種方便查詢數據表或者視圖的所有列的方法,其語法格式如下:
SELECT *
FROM 表名或者視圖名[,表名或者視圖]
其中,SELECT語句后面的“*”號表示查詢數據表中的所有列,FROM子句后面的表名或者視圖名用來表示指定要查詢數據表或者視圖的名字。[]里面指定的表名或者視圖是可選的,也就是說,FROM子句后面可以跟多個表或者視圖的名字,多個表或者視圖之間用逗號分開。
說明:FROM字句后面最多可以指定256個表或者視圖的名稱。
查詢表中指定的列
在實際開發應用中,很多時候,開發人員或者用戶并不希望看到數據表中所有的記錄,而只是對數據表中其中某一列或者某幾列的數據感興趣,此時就需要查詢數據表中指定列的信息。在SELECT語句中查詢數據表或者視圖指定列的語法格式如下:
SELECT 目標列[,目標列,…]
FROM 表名或者視圖名[,表名或者視圖]
其中,SELECT語句后面的目標列表示要查詢的指定列的名字。[]里面指定的目標列式可選的。也就是說,SELECT語句中指定的目標列可以是一列也可以是多個列,指定多個列時,多個列名之間需要用逗號分開。FROM子句后面的表名或者視圖名用來表示指定要查詢數據表或者視圖的名字。[]里面指定的表名或者視圖是可選的,也就是說,ROM語句后面可以跟多個表或者視圖的名字,多個表或者視圖之間用逗號分開。
查詢表中不重復的記錄
在使用SELECT語句執行查詢操作時,檢索的是數據表中所有滿足條件的行,如果數據表中有重復行也會被查詢出來。在實際應用中,往往不希望看到結果中有重復的記錄行存在。為了在查詢結果中不顯示重復的記錄行,在SELECT語句中就需要加上一個DISTINCT關鍵字排除查詢結果中的重復行記錄,格式如下:
SELECT DISTINCT 目標行[,目標行,...]
FROM 表名或者視圖名[,表名或者視圖]
使用列別名查詢
在前面的SELECT語句顯示的查詢結果中,可以看到查詢結果中顯示的列的名字就是SELECT語句中指定的在數據表中定義的列的名字。這些在數據表的中定義的列的名字一般都是英文。有時,為了更好的理解某一列顯示的信息,在SELECT語句中可以使用列別名的形式改變查詢結果中顯示的列的名字。其語法格式如下:
SELECT目標列 [AS] 列別名[,目標列 [AS] 列別名…]
FROM 表名或者視圖名[,表名或者視圖]
其中,SELECT語句后面的目標列表示要查詢的指定列的名字。AS關鍵字后面跟的就是要使用的列別名,其中關鍵字AS是可選的。在SELECT語句中指定的目標列可以是一列也可以是多個列,指定多個列時,多個列名之間需要用逗號分開。FROM子句后面的表名或者視圖名用來表示指定要查詢數據表或者視圖的名字。[]里面指定的表名或者視圖是可選的,也就是說,ROM語句后面可以跟多個表或者視圖的名字,多個表或者視圖之間用逗號分開。
SELECT stuID AS 學生編號, stuName AS 學生姓名, age AS 年齡, sex AS 性別, birth AS 出生日期
FROM T_student
在查詢結果中,列標題變成了別名的形式。說明:在SELECT語句中,可以使用一個空格代替關鍵字AS,空格后面再跟上列別名的名稱。
如果列別名中包含空格或特殊字符,例如點號(.)、逗號、分號、冒號等,此時就需要使用單引號或雙引號將別名引起來。
對查詢的記錄進行算術運算
SELECT語句中還可以使用算術運算符對指定的列進行算術運算。其中算術運算符包括加(+)、減(-)、乘(×)、除(÷)。其中乘除SELECT語句中的優先級高于加減運算符的優先級。通過使用算術運算可以取得所需要列的特定結果。
SELECT teaID AS 教師編號,teaName AS 教師姓名, salary*12 AS 年收入
FROM T_teacher
說明:SELECT語句中進行算術運算,只會改變顯示的查詢結果,并不會改變數據表中查詢的原有值。
使用連接符(||)連接字段
在使用SELECT語句查詢的過程中,有時需要將兩個或者是更多的字段連接起來顯示一個更有意義的結果。在SELECT語句中,如果需要將多個字段連接起來,在Oracle數據庫中可以使用“||”連接符來完成。下面來看一個使用“||”連接符的例子。
MYSQL數據庫和Microsoft SQL server數據庫不支持使用"||"連接符連接字段,如果想要連接多個字段,在MYSQL中可以使用CONCAT函數;在SQL server中直接使用加號(+)運算符即可。
關于NULL值
在數據庫中,如果沒有為該列賦值,而且該列沒有默認值,此時查詢的結果就為空值,即NULL。NULL既不表示空格,也不表示0。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
