SukeBlog

プログラマーSukeによるブログ

【SQL】No.1 SQL入門(SELECT文)

【SQL】No.1 SQL入門(SELECT文)
この記事は約4分で読めます

SQLの分類

SQLは大きく3つに分類できます。

データ操作言語(Data Manipulate Language: DML)

テーブルに対して、データを検索・追加・更新・削除します。
SQLが初めてという方は、まずはDMLを習得するとよいです。
【例】SELECT、INSERT、UPDATE、DELETE
※文の詳細については後述します。

データ定義言語(Data Definition Language: DDL)

テーブルなどのデータベースオブジェクトを作成・変更・削除します。
【例】CREATE、DROP、ALTER、…

データ制御言語(Data Control Language: DCL)

データ更新の確定や取消を行います。
【例】BEGIN、COMMIT、ROLLBACK、…

コメント

SQLでもコメントを書くことができます。
-- これはコメントです。

/*
    複数行を
    コメントにできる
*/

SELECT文

SELECT文は、DBから値を検索、取得する際に使用します。

customerテーブルのデータを全て取得するには、下記のようなSQLを書きます。
SELECT * FROM customer;
(*)は、全ての列を取得する、という意味です。
特定の列のみのデータを取得したい場合は、列名を記入します。
SELECT id, 氏名 FROM customer;

重複したデータ行を一つにまとめる

重複したデータ行を一つにまとめるには、DISTINCTキーワードを使用します。
書く場所は”SELECT”の次なので注意です。
-- 顧客について、住所を重複がないように取り出す
SELECT DISTINCT 住所 FROM customer;

特定の行のみを取り出す

特定の行のみを取り出すには、where句を使用します。
-- 二十歳以上の顧客を取得する
SELECT * FROM customer WHERE 年齢 >= 20;

結果の行を並び替える

結果の行を並び替えるには、order by句を使います。
デフォルトだと、小さい順(昇順)になります。
SELECT id, 氏名, 年齢, 性別 FROM customer
ORDER BY 年齢;
order by句には複数の列を指定することもできます(カンマ区切り)。
複数列を指定した場合、左側に指定した列から順番に並び替えられます。
SELECT id, 氏名, 年齢, 性別 FROM customer
ORDER BY 性別, 年齢;
大きい順に並び替えるには、DESCキーワードを指定します。
SELECT id, 氏名, 年齢, 性別 FROM customer
ORDER BY 年齢 DESC;