1. 程式人生 > >SQL學習之關鍵字

SQL學習之關鍵字

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

總的來說,如果表比較小的:
效率上 == 和 in 和or 相差不大
表比較大的話
== > in > or
因為 or 一次就要去遍歷一次, in的話是一個數據集裡面去查詢,== 的話相當於資料集只有一個