sql語句示例:
- 選區指定的列
select 圖書編號,圖書名稱 from 圖書
- 查詢全部信息
select * from 圖書
- 查詢信息之后更改所獲得的列的名稱
也可以這樣select 姓名 as '用戶名', 電話 as '聯系電話' from 用戶
select '用戶名'=姓名,'聯系電話'=電話 from 用戶
- 對某些列進行計筭后在顯式
select 圖書編號,圖書名稱,'折后價格'=定價*0.8 from 圖書
- 削除重復的行
select disticnt 訂單狀態 from 訂單
- 限制返回結果的行數
select top n [percent] 列名 from ...
- where子句
select 用戶帳號, 姓名,性別,創建時間 from 用戶 where 創建時間>'2010-12-31' and 性別='男'
select 用戶帳號,姓名,創建時間,消費金額 from 用戶 where 創建時間 between '2010-1-1' and '2010-12-31'
- 列表查詢
select * from 用戶 where 用戶.用戶等級 in (1,2,4)
- 模糊匹配查詢
通配符的意義:select * from 用戶 where 用戶.用戶名 like '李%_'
_:單個任意字符 %:0個或多個任意的字符 []:指定范圍內的任意字符 [^]:不屬于指定范圍的字符
- 空值查詢
where 表達式 is [not] NULL
- order by
order by默認條件是升序排列,對于上面的語句,全局而言按上架時間升序排列,對于上架時間相同的行再以定義逆序排列。select * from 圖書 where 庫存量>500 order by 上架時間,定價 desc
- select into ...
執行之后將創建一個新表:計算機類圖書,其中其列名由select語句決定。select 圖書編號,圖書名稱,作者,定價 into 計算機類圖書 from 圖書 where 類別=1
- 聚合函數(對列進行操作)
select max(銷售量) as '類別5最高銷售量' from 圖書 where 類別=5
select count(*) as '消費500元以上人數' from 用戶 where 消費金額>500
- 分組查詢(group by)
group by 語句按指定的列中的性質進行分類,如果列中只有男和女那么數據就分為兩組。再對不同的組進行匯總計筭,每一組生成一條數據。一般在存在group by子語句的sql語句中select的第一個列名與group by 分類的屬性相同。select 性別,count(*) as '人數' from 用戶 group by 性別
注意 order by 是對選擇之后的數據進行處理,故其在選擇數據的語句之后。本句先對數據以用戶等級分組,再以性別進行分組,再統計小組的數據。select 用戶等級,性別,count(*) as '人數' from 用戶 group by 用戶等級 性別 order by 用戶等級 性別
- having子句(對group by之后的組進行進一步的篩選)
select 類別 ,sum(銷售量) as '總銷量' from 圖書 group by 類別 having sum(銷售量)>200
- where 用于篩選from指定的數據對像;group by用于對where的結果進行分組;having 則是對group by分組后的數據進行篩選。
- compute 子句對要顯式的表進行進一步的處理...
- 多表查尋
select 用戶.用戶帳號, 等級.等級名稱 from 用戶,等級 where 用戶.用戶等級 = 等級.等級編號
select 圖書.*, 圖書類別.* from 圖書,圖書類別 where 圖書.類別 = 圖書類別.類別編號 and 定價>=50 and 圖書類別.類別名稱 = '計算機'
- 多表連接(join)
- 內連接(inner join)以on后面的條件為表的連接條件。內連接的特點是舍去那些不滿足條件的行。
select 用戶帳號,姓名,消費金額,等級編號 from 用戶 join 等級 on 用戶.用戶等級 = 等級.等級編號
- 外連接 外連接的特點是:以左外連接為例:即使左表的一些行在右表中沒有與之對應的行,也將左表這些行保存下來,其右側的數據用NULL補充。左外和右外的區別在于以哪個表為主表。
- 左外連接
from 表1 left [outter] join 表名2 on 條件
- 右外連接
from 表1 right [outter] join 表名2 on 條件
- 左外連接
- 交叉連接
from 表1 cross join 表2
交叉連接沒有條件,所獲得的表是表1的每一行與表2的每一行相連接的結果,相當于以兩表的行為元素進行笛卡爾積運算。
- 內連接(inner join)以on后面的條件為表的連接條件。內連接的特點是舍去那些不滿足條件的行。
?