開篇
SQL查詢語句總括:
select 字段名
from 表名
[where 條件表達式]
[group by 字段列表][having 條件表達式]
[order by 字段列表][asc/desc]
單表操練:
單表查詢:
1 輸出表中的所用的列select * from 表名
2 選擇部分輸出
select 列名1,列名2...列名n
from 表名
3 重命名輸出的列名
第一中方式在字段名後,以空格作爲分隔符,在寫上需要輸出的列名
第二種方式是在這兩部分之間寫上關鍵字“as”
select 列名1(空格)別名1,列名2 as 別名2
from 表名
4 去除重複記錄
關鍵字 distinct
select distinct 列名
from 表名
這個列命就是可能出現重複的記錄
5 使用where子句
where子句後邊跟的是查詢的時候是對錶中數據的限制條件
select 列名1,列名2,...列名n
from 表名
where 限制條件
例子:
select namefrom student
where name='李華'
注:限制條件相應的寫在where後邊就好
等於(=):列名等於一個數或是一個字段
大於、小於(> 、<):一般和數字打交道
兩者之間:(between A and B)也是和數字打交道求的是一個連續的範圍
在...裏面(in):表示不連續的範圍
模糊查詢(like)
通配符匹配
1 % 匹配多個字符
2 - 匹配單個字符
3 []匹配某個區域的數據
5 order by 子句
將查詢的結果按照一定的順序顯示出來(一般和數字打交道)
select *
from 表名
order by age desc
姓名降序排列
多表操練
限制條件:表與表之間要有聯繫(多通過外鍵實現)
用作外鍵的最長用的就是利用不同的表相同的ID
例如:
select namefrom table1,table2
where table1.ID=table2.ID and name='李華'
前邊的關聯關係和後邊的限制條件用and連接(多個限制條件就用多個and進行連接)
聚合數據
其實就是一些聚合函數(說白了就是數據庫中已經封裝好的一些函數的用法)
avg()對多個數值求平均值
sum()對多個數值求和
max()對多個數值求最大數
min()對多個數值求最小數
count()非空表達式的個數
count(*)返回所有記錄個數
聚合表達式學的時候就在字段的位置
select avg(age),min(age)
from 表名
嵌套查詢
在where子句的表達式彙總出現另一個查詢的情況成爲嵌套查詢
注:也可以用於多個表的查詢
例子:
select 列名1 ,列名2 from 表名1
where 列名1>
(select 列名1 from 表名2
where 列名n='字符串')
保存查詢結果
select 輸出表 into 新表名
from 列名
where 子句
總結:其實總的來說查詢就是一句話
select 列名
from 表名
where 限制條件
group by 列名
order by 列名
書寫查詢語句的思路:
1 從那些表中選取滿足條件的數據記錄
2 輸出是需要那些數據列
3 是否按照一定的次序輸出