Beyond The Limit

はじまりは2001年

SQL学び直し

改めて基礎からSQLを勉強し直そうと思ったので、土曜日にKindleでこの本を買ってみた。
今の所2章まで終わった感じ。

SQL ゼロからはじめるデータベース操作

SQL ゼロからはじめるデータベース操作

USキーボードとJISキーボードを行ったり来たりしていると使いづらい

第二章:検索の基本

2-1:SELECT文の基本

  • 重複を削除する:DISTINCT、カラム名の前に付ける
    • DISTINCT カラム名1,カラム名2 → カラム名1,2を組み合わせても重複する行が1つにまとめられる
      • カラム名1で重複あり、カラム名2で重複がない場合は全て表示される(→重複が排除されない)
    • DISTINCTは先頭のカラム名の前にしか置けない。
    • NULLも重複を1つにまとめられてしまう
  • 条件指定のwhere
    • FROMの直後に記述しないといけない、決まっている
  • SQL文中にもコメントを残せる
    • 一行コメントと複数行コメントの2種類がある、注意事項などあれば記述しておく
    • 一行コメントはハイフンを2つ並べる、#ではないので注意
    • 複数コメントは/* */の中に記述する、コメント記述中はプロンプトの=が*に変わる

2-2:算術演算子と比較演算子

  • 計算式にNULLが含まれると、結果の値は全てNULLになる。当然だがゼロではない。
  • 比較演算子の=は必ず右側、<=または>=
  • 等しくない場合は<>を使う、!=は標準SQLで認められていないので使わない方が安全。使ってたから気をつけよう。

2-3:論理演算子

  • ANDは両辺が成り立つときに成立、ORは両辺の片方または両辺の検索条件が成り立てば成立
  • SQLの論理演算は真・偽・不明(Unknown)の3種類がある
  • NOT
    • where NOT カラム名 >= 100 と where カラム名 < 100 は一緒、<=ではないので注意、以上と未満の関係
  • ANDとORと()
    • where 条件A AND 条件B の条件Aと条件Bが成り立つものを返す
    • where 条件A OR 条件B の条件Aまたは条件Bまたは条件AとB両方が成り立つものを返す
    • 必要に応じて()を使用して条件の優先度を組み合わせる {where 条件A AND (条件B OR 条件C)}
      • ANDはORより先に優先される、ORを優先したい場合は()を使う、条件Bまたは条件Cを満たしてかつ条件Aを満たすものが返される
      • 真理表も参照