1,基本語法
數據庫
select */字段名 from 表名[where條件] ;服務器
2,完整語法函數
Select[select 選項] */字段名[字段別名] from 數據源 [where條件語句] [group by語句] [having語句] [order by語句] [limit語句]
spa
1)select 選項:
排序
①All:默認的,保留全部結果
內存
②Dstinct:去重,將查處來的結果,將重複去掉(全部字段都相同)。
資源
③select * from user ;== select all * from user ;
it
④去重:select distinct * from user ;
效率
2)字段別名:
date
字段別名:當數據查詢出來的時候,有時候名字不必定知足需求(當進行多表查詢的時候,會出現字段重名狀況),須要對字段進行重命名,即字段別名。
字段別名語法:字段名 [as] 別名
①select id,number,name,gender from user ; ==select id as ID,number as 學號,name as 姓名,gender as 性別 from user ;
3)數據源:
數據源:數據的來源。關係型數據庫的來源都是數據表,只要保證數據相似二維表,則均可以做爲數據源。
數據源分類:單表數據源、多表數據源、查詢語句
①單表數據源:select * from user ;
②多表數據源:select * from 表名1,表名2....; 從一張表取出一個記錄,去另一張表去匹配全部記錄。並將全部表全部記錄都保留(記錄數和字段數)。進行交叉鏈接。
③子查詢:數據的來源是一個查詢語句(查詢語句的結果是一個二維表)。
select * from(select 語句) as 表的別名;==select * from (select * from user) as s ;
4)where條件語句
where語句:用來判斷數據,篩選數據。where語句返回結果:0或1,表明false和true。
①判斷條件:
比較運算符:>,<,=,!=,>=,<=,like(模糊查詢),between...and,in/not in
邏輯運算符:&&(and),||(or),!(not)
update my_user set age = floor(rand()*20+20),height=floor(rand()*20+170);(floor向下取整數),rand()是隨機取0或1一個數。
②條件查詢1
A,找出學生id爲1或3或5的學生。
落在集合中:select * from my_user where id in(1,3,5);
條件查詢2
B,找出學生170~180之間
select * from my_user where height between 170 and 180;
between 自己是一個閉區間,between...and 左邊的值必須小於或等於右邊的值。
C,select * from my_user where 1 ;全部條件都查詢出來
5)Group by字句
group by:分組的意思,根據某個字段進行分組(相同的分一組,不一樣的分一組)
分組的做用:是爲了統計數據(按組統計,按分組字段進行數據統計)
SQL提供了一系列的數據統計函數:
Count() :統計分組後的記錄數:每一組有多少記錄。
Max():統計每組中的最大值。
Min():統計每組中的最小值。
Avg():統計平均值
Sum():統計和
A分組統計:根據gender分組,數量,身高最高,身高最低,平均年齡,年齡總和
select gender,count(*),max(height),min(height),avg(age),sum(age) from my_user group by gender
B,Count函數:裏邊能夠有兩種參數:*表明統計記錄。字段名,表明統計對應的字段(NULL不統計)。
6)Having字句
Having字句:與where字句同樣,進行條件判斷的。
where是針對磁盤數據進行操做,進入內存後,進行分組操做,分組結果須要Having來處理。
①Having幾乎能作where能作的全部事情,可是where卻不能作Having的事情。
②Having能使用字段別名,而where不能,where針對磁盤數據操做,名字只能夠是字段名,而字段別名在字段加載到內存中才會產生
7)Order by字句
order by:排序,根據某個字段進行升序或降序排列,依賴校對集。
order by使用語法:order by 字段名 [asc|desc] ;asc[默認的]升序,desc降序
limit是限制結果的語句,限制數量。
limit有兩種使用方式:
①用來限制長度(數據量/記錄數)limit 數據量。
②限制起始位置,長度 limit起始位置,長度 。記錄數從0開始編號即第一個
③Limit字句用來實現數據的分頁。爲用戶節省時間,提升服務器的執行效率,減小資源浪費。
對於用戶來說,能夠點擊分頁按鈕 一、二、三、4
對於服務器來說,根據用戶選擇的頁碼來返回詳細的數據。limited offset length;
length:分頁後每頁顯示的數量,基本不變
offset:offset = (頁碼-1) * length ; 起始位置,與頁碼有關係