1.檢視
定義:檢視是存放sql語句的臨時表,無需儲存資料,節省空間;可隨原表資料變化而自動更新。
形式:creat view 檢視名稱(《檢視列名1>,《檢視列名2>)
as 檢視列名稱和查詢列順序是一一對應的。
注意事項:1)不要在檢視基礎上再次建立檢視 2)不在檢視裡面插入資料
2.子查詢
1)書寫格式:select 學號,成績
from score
where 成績 in (select min(成績) from score group by 課程號);
2)用in ; any ;some 套用子查詢
select 學號,成績
from course
where 成績》any
(select 成績 from course where 課程號='0002');
①查詢0002的全部成績 ②比任意乙個高,使用any
注意事項:①a>3*all(b) 是錯誤的,因為資料是集合形式;a/3>all(b) 是正確的
②避免子查詢層層巢狀
③select ..from .. 子查詢 可以省略
3.標量子查詢
1)標量子查詢只返回單一值,不能使用多行資料;可以用在比較運算子中
理解標量子查詢
標量1 查詢結果為60,是單一的數值;標量2 查詢結果是84.14 ,也是單一值,語句含義就是在成績course表中,查詢結果是成績在60-84.14中的值。
2)在select 查詢中也可以寫入標量子查詢,其中平均成績值只有1個值即84.14,滿足標量子查詢的定義。
4.關聯子查詢
是在每個組內比較各自的條件,關聯條件:where 語句 as 列名
思路:1)從課程表中計算平均成績,並按照課程號進行分組排列,定義該分組名稱為s2
2)從課程表中選取學號,課程號及成績3列數值,定義系列名稱為s1
3)將s1中的成績以課程號為標準與s2中的平均成績相比較,選取滿足where 成績》平均成績的數值
5. sql解決業務問題
先翻譯,再理思路,最後寫sql
6. 函式的應用
幾種常見函式的使用方法
sqlzoo 練習
兩個限制條件並列用 'and'
concat 函式使用:concat('a','b')=concat('a.b') round 函式使用:round(a,2) 將a的值保留兩位小數
all 函式的使用
limit 函式的使用
需要同組對比時,將同洲不同國家的人口值進行比較,需要限定同洲不同國家間的比較
SQL concat函式union中文亂碼問題
最近編寫sql遇到乙個十分有趣的現象 使用mysql concat函式連線字串中有中文字元,大概類似於 concat 截止到 t.date 共有 count 1 條符合條件的資料 as 主題,單獨查詢是好的,但是幾個不同條件的sql union 之後竟然在主題那一欄的字段中產生了亂碼。原因是coun...
SQL CONCAT 字串連線函式
有的時候,我們有需要將由不同字段獲得的資料串連在一起。每一種資料庫都有提供方法來達到這個目的 mysql concat oracle concat sql server concat 的語法如下 concat 字串1,字串2,字串3,將字串1 字串2 字串3,等字串連在一起。請注意,oracle的c...
SQL CONCAT 字串連線函式
有的時候,我們有需要將由不同字段獲得的資料串連在一起。每一種資料庫都有提供方法來達到這個目的 concat 的語法如下 concat 字串1,字串2,字串3,將字串1 字串2 字串3,等字串連在一起。請注意,oracle的concat 只允許兩個引數 換言之,一次只能將兩個字串串連起來。不過,在or...