SQL學習之關鍵字
阿新 • • 發佈:2019-01-14
- as 將as前的關係起一個別名,在此語句中,可以用別名來代指這個表
select A.* from ATable as A , BTable as B
- is null 在where中使用is null表示這個值是空值
select * from table where age is null;
- is not null 在where中使用is not null表示這個值不是空值 (同上類似)
- 當判斷條件存在 ‘單引號時,可以採用’或者 ‘’ 來轉義,一般採用’,這樣比較清晰
- and 表示判斷條件的 “ 且 ”
- or 表示判斷條件的 " 或 "
- <> 表示不等於
- in( ‘X’ , ‘Y’ , ‘Z’) 表示判斷的屬性在()中的資料其中一個
select * from table where flag is in ('X' , 'Y' , 'Z');
- not in( ‘X’ , ‘Y’ , ‘Z’) 同上,取反
in 和 not in 的寫法如果資料具有一定的關聯性,比如1,2,3,4之類的可用between … adn … 來替換,而且where的判斷部分如果OR很多的話也可in的形式來簡潔程式碼 - between … and …
select * from table where name between 'A' and 'Z'
這個我們可以得到name以’A’開頭到‘Z’開頭的資料,但是前後資料必須是後者大於前者,否則無資料,中文也是可以的,親測可行 - like 表示模糊匹配搜尋
select * from table where name like 'A%'
- % 表示多個字符集,如上例子,表示匹配name為以A開頭的資料
- _ 表示單個字元,與%類似,就是數量的不同
- 原子性資料,原子性資料就是表示資料不能或者不應該在分割,比如地址就可以用一列來儲存街道和門牌號,而不是分割成街道一列,門牌號一列,這樣可以縮短查詢時間,更有效率。
總的來說,如果表比較小的:
效率上 == 和 in 和or 相差不大
表比較大的話
== > in > or
因為 or 一次就要去遍歷一次, in的話是一個數據集裡面去查詢,== 的話相當於資料集只有一個