Select 字段列表 --⽤用於指定輸出字段 [ INTO 新表 ] --將檢索結果存儲到⼀一個新的數據庫表中 [FROM 數據源]--⽤用於指定檢索的數據來源 [ WHERE 搜索條件 ] --⽤用於指定對記錄的過濾條件 [ Group by 分組表達式 ] --對檢索到的記錄進⾏行分組 [ Having 搜索表達式 ] --也⽤用於指定對記錄的過濾條 件,但要與Group By⼦子句⼀一塊兒使⽤用 [ORDER By 排序表達式[ASC|DESC]] --對檢 索到的記錄進⾏行排序處理
(1) ALL:默認關鍵字,將返回符合條件的所有記錄,並且容許在查詢結果中包含重複記錄。sql
Select ALL work_id From worker 數據庫
(2) TOP關鍵字: TOP關鍵字⽤用於限制查詢結果顯⽰示的⾏行數,其能夠返回表中前n⾏行或 前一個百分數的數據。 函數
SELECT TOP 3 (PERCENT) * from Worker order by worker_id desc spa
(3) DISTINCT:⽤用於去除查詢的結果集中重複的記錄
SELECT DISTINCT Ware_Name from Ware code
SQL提供了內鏈接、外鏈接、交叉鏈接、多表 鏈接等多種鏈接⽅方式 orm
1> 內部聯接查詢 排序
兩錶鏈接查詢: --顯⽰示職⼯工信息及每一個職⼯工對應的貨物銷售狀況 Inner join 語句: select 字段列表 from 表1 inner join 表2 on 主表.主鍵 = 從表.外鍵 SELECT *(word_id,…) FROM Worker INNER JOIN SellON Worker.Work_id=Sell.Work_Id (where word.id='500' 帶條件) Where 語句 select 字段列表 from 表1,表2 where 主表.主鍵 = 從表.外鍵 select * from worker ,sell where worker.work_id=sell.work_id 多表鏈接查詢: SELECT 字段列表 FROM 表1 , 表2 ,表3 Where 表1.字段=表2.字段 and 表2.字段=表3.字段
2> 外部聯接查詢 it
SELECT 字段列表 FROM 表1 <FULL/LEFT/RIGHT> OUTER JOIN 表2 ON 條件表達式 io
向左鏈接 :返回左表全部行,及左表中每行在右表中的匹配行,若無,返回NULLform
向右鏈接:返回右表全部行,及左表中每行在右表中的匹配行,若無,返回NULL
全外鏈接:返回左右表全部行,及左表中每行在右表中的匹配行,若無,返回NULL
select *from sell right outer join ware on ware.ware_id = sell.ware_id
交叉鏈接:兩個表的記錄交叉組合,無論有無匹配,左表每一行和右表每一行均結合,其結果中的記錄⾏行數=左表⾏行數*右表⾏行數
select *from worker cross join sell
若是⼀一個Select語句可以返回⼀一個單值或⼀一列值,並嵌套在⼀一 個Select、Insert、Update或Delete語句中,則稱之爲⼦子查詢或內層查詢
格式⼀:
Select * from 表名 where 字段名 關係運算符 (⼦子查詢)
select *from sell where sell_price = (select max(sell_price) from sell)
格式二:
Select * from 表名 where 字段名 [not] in (⼦子查詢)
select * from sell where word_id in (select work_id form worker where position = ‘副經理
格式三:
Select * from 表名 where [not] exists (⼦子查詢)
原字段名 [ AS ] ‘字段別名’ Use CPMSgoSELECT Work_id as '職⼯工編號',Work_name '職⼯工姓名',Sex '性別' from Worker
SELECT * from Sell ORDER BY Sell_Price DESC(降序)/ASC升序
Sum() 返回字段和 Avg() 返回字段平均值
Max() 返回字段最大值 Min() 返回字段最小值 Count() 返回字段數量
select sum(sell_price) from sell
例子: 1,統計男女職業的總人數 select sex as '性別',count (*) as '人數' from worker group by sex 2,統計每種貨物的貨物編號、名稱及銷售總計 ps: 貨物名稱和銷售總計不在⼀一個表中,因此該題須要使⽤用多表查詢、集合函數及分組彙總。 select a.ware_id,ware_name,sum(sell_price) from ware a inner join sell b on a.ware_id=b.ware_id group by a.ware_id,ware_name
做用:用來計算總計或進⾏行分組⼩小計,總計值或⼩小計值將做爲附加新⾏行出如今檢索結果中,⼀通常⽤用在WHERE⼦子句以後。
select *from worker compute count(work_id)
compute by
以前統計男女的至關於創個新表,表示sex和count,若要分別展現男,女職員的全部的信息,而且統計他們的數量
select * from worker order by sex computer count(word_id) by sex 注意:使用computer by前必須有order by字句,並且先後的的字段必須相同 order by sex 將男女分開兩個表顯示數據,而且在表下還有他們的cnt 數量