SQLを使う(1)

データベースの作成

  • データベース名「mydb」
  • テーブル名「items」


カラム名 カラム型

(長さ)
NOT NULL

制約
説明
id INT(11) 書き込みの通し番号。主キー。自動採番にする
name text  

テーブルの構造を変更

フィールドを追加する
  • テーブルの末尾に1個の idフィールドを追加する




WHEREで検索

  • 検索対象のデータを挿入しておきます

比較演算子を使って検索

比較演算子 意味 例の意味
A = B AとBが等しい 単価=200 単価が200
A > B AとBより大きい 単価>200 単価が200より大きい

A >= B

AとBより大きいか等しい 単価>=200 単価が200以上
A < B AとBより小さい 単価<200 単価が200未満
A <= B AとBより小さいか等しい 単価<=200 単価が200以下
A <> B AとBは等しくない 単価<>200 単価が200でない

INT型に等号を使う
SELECT * FROM my_items WHERE price=180;



VARCHAR型、TEXT型に等号を使う
SELECT * FROM my_items WHERE item_name='いちご';



不等号を使う
SELECT * FROM my_items WHERE price<180;



LIKE - 部分検索

  • LIKEは半角空白に続けて検索したい文字を追加します
  • 前後に「%」がついていることに注意
前後をあいまいにした部分検索
SELECT * FROM my_items WHERE keyword LIKE '%甘い%';



後ろのみをあいまいにした部分検索(前方一致)
SELECT * FROM my_items WHERE keyword LIKE '赤い%';



  • 「いちご」だけがヒットします
  • 「りんご」にも「赤い」というキーワードが含まれていますが、検索条件で後ろにしか「%」がついていないため、これは先頭が「赤い」というキーワードを検索するという条件になっています

AND、OR - 複数の検索を組み合わせて使う

複数の条件をすべて満たすデータの検索
  • 「AND」で複数の条件をつなぐと「かつ」「さらに」といった条件を加えることができます
SELECT * FROM my_items WHERE price>=50 AND price<150;



複数の条件をどれかを満たすデータの検索
  • 「OR」は、「または」といった条件を加えることができます
SELECT * FROM my_items WHERE id=2 OR id=4;



複雑な条件での検索
SELECT * FROM my_items WHERE (id=2 OR id=4) AND price<150 AND keyword LIKE '%甘い%';



OR条件を使う時の注意

  • 「OR」と「AND」を同時に使う場合「()」で条件を囲まなければ正常に動作しません
SELECT * FROM my_items WHERE id=2 OR id=4 AND price<150 AND keyword LIKE '%甘い%';


これは以下のような条件になってしまっています。

id=2 
OR 
id=4 AND price<150 AND keyword LIKE '%甘い%';


つまり、id=2の商品が必ずヒットしてしまいます。