1 從單表中查詢所有的行和列
查詢表中所有的數據
select * from t_user
在 SQL 中,字符 "*" 具有特殊的含義,使用用它,將從指定的表中返回每一列,在這里由于沒有使用 where 子句,所以將會返回每一行,即是 查詢表中所有的行與列,就是所有的數據 。
還有一種寫法就是分別列出每一列 如下
select user_name,user_age,user_agent,user_flag,user_address from t_user
在交互執行的特定查詢中,使用 * 寫法更容易些,然而,在寫程序代碼的時候,推薦指定每一列,這樣后續開發中就可以很清楚的查看到返回了哪些數據,有利于其他開發者閱讀,當然兩種寫法的性能是一致。
2 從單表中查詢部分數據
使用 where 子句指定查詢結果要保留哪些行,例如 要查詢 年齡為28的所有用戶信息,我們可以這樣寫
select * from t_user where user_age=28
3 從單表中查詢滿足多個條件的數據
可以使用 where 結合 or 、and 子句綜合查詢
例如查詢 地址為山西中的所有用戶,以及地址為北京的所有年齡不超過28歲的用戶,我們可以這樣寫
select * from t_user
where user_province="山西"
or user_age<= 28 and user_province="北京"
4 從單表中查詢部分列
要查看一個表中特定的列,而不是所有的列的值,例如要查詢 用戶的 姓名、年齡,可以這樣寫
select user_age,user_name from t_user
通過 子句中指定列,可以保證不會返回多余的數據,在跨域網絡查詢數據時,可以避免查詢不需要的數據所帶來的時間的浪費。
5 為查詢的列指定別名
改變查詢所返回的列名,使這些數據更具有可讀性,可以使用 AS 關鍵字: 原列名 as 新名稱
select user_age as userAge,user_name as userName from t_user
或者可以 省略 as 關鍵字
select user_age userAge,user_name userName from t_user
使用比較好的別名,可以在實際開發中使其他開發者更容易理解查詢結果
6 在 where 子句中引用別名的列
例如查詢 年齡不大于 28 歲的所有用戶,如下
select user_age as userAge ,user_name as userName from t_user where userAge <=28
7 將查詢的多個列值組合成一列
例如在 查詢用戶表的時候sql 查詢小于當前時間,返回這樣的結果集
張三 的年齡是 24李四的年齡是 25
...
然而在 表中,姓名,年齡是不同的列,要把不同的列數據連接起來在 DB2 、 、 中使用雙豎線作為連接運算符
select user_name || "的年齡是" || user_age as msg form t_user
在 mysql 中使用 函數
select concat(user_name,"的年齡",user_age) as msg from t_user
在 SQL 中使用 "+" 運算符進行連接操作
select user_name +"的年齡" + user_age as msg from t_user
查詢的結果最終會以 msg 返回
8 在查詢語句中使用條件邏輯
要在 查詢結果中,使用 if-else 篩選數據操作,例如 用戶的年齡小于 18 就返回信息 "少年人",年齡大于60 就返回 "老年人",其他的返回中年人,可以這樣寫
select user_name ,user_age,
case when user_age <18 then "少年人"
when user_age>60 then "老年人"
else "中年人"
end as status
from t_user
case 表達式可以對查詢結果的返回值執行條件邏輯,在上述查詢中sql 查詢小于當前時間,case 篩選的結果 使用的別名是
9 限制返回的行數
例如要查詢一個表中的前100條數據,可以使用 數據庫提供的內置函數來控制返回的行數
在 DB2 中,使用 fetch first 子句
select * from t_user fetch first 100 rows only
在 mysql 中
select * from t_user limit 100
在 中,使用 where 子句通過 來限制行數
select * from t_user where rownum <=100
在 SQL 中 使用 top 關鍵字來限制返回的行數
select top 100 * from t_user
注意 :
在 中,必須使用 函數開得到每行的行號,從1開始遞增,在使用