SQLを使う - SELECT文
SELECT文の基本機能
- SELECT文は、データベースからデータを抽出するコマンドです
- 射影:特定のフィールド(列)だけ取り出すこと
- 選択:特定のレコード(行)だけを取り出すこと
SELECT文の基本構文
- テーブルに登録されている全てのレコードを取り出したり、特定の列のみレコードを取り出したりする基本的な検索方法
全レコード検索
- SELECT文の基本的な構文は、「指定したテーブルから指定した列のデータを取得してください」という命令です
SELECT 列名 FROM テーブル名;
SELECT productnm, price FROM product;
- 複数の列を指定する場合は、,(カンマ)で列を区切ります
データを計算して取得
- データを取得するときに、計算式を列名の代わりに指定して、計算結果を取得する方法
SELECT productnm, price * 1.3 FROM product;
※商品の価格を一律3割増しの場合
データを並べ替えて取得
- データを並べ替えて取得するには、ORDER BYを使用します
- 数字は、1、2、3・・・の順、英字は、a、b、c・・・の順、ひらがなは、あ、い、う・・・順と並べ替えられます
- ORDER BYの後に、並べ替えのキーとなる列を指定します。
price(価格)を昇順(小さい順)に並べ替えて取得する場合
SELECT * FROM product ORDER BY price;
降順(大きい順)でデータを取得したい場合
- DESCキーワードを列名の後ろに指定
SELECT * FROM product ORDER BY price DESC;
複数列を指定した並べ替えの場合
- categoryId(カテゴリーID)で昇順に並べ替えて、カテゴリーID毎にprice(価格)で降順に並べ替えます
SELECT * FROM product ORDER BY categoryId, price DESC;
検索条件による検索
- 必要なデータだけを取り出す検索方法
WHERE句
- ある条件でデータを絞り込んで検索したい場合、その条件を指定するのみWHERE句を使用します
- WHERE句は、FROMテーブル名の後に記述し、WHEREの後に条件を指定します
SELECT * FROM テーブル名 WHERE 検索条件;
《例》
SELECT * FROM product WHERE categoryId = 1;
WHEREで検索
- 検索対象のデータを挿入しておきます
LIKE - 部分検索
- LIKEは半角空白に続けて検索したい文字を追加します
- 前後に「%」がついていることに注意
AND、OR - 複数の検索を組み合わせて使う
複数の条件をすべて満たすデータの検索
- 「AND」で複数の条件をつなぐと「かつ」「さらに」といった条件を加えることができます
SELECT * FROM my_items WHERE price>=50 AND price<150;
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の商品が必ずヒットしてしまいます。