SQL基礎
絞り込み/並べ替え
レコードの選択の際に条件を指定して絞り込みを行ったり、指定したフィールドの値でレコードの順番を並べ替えたりすることが出来ます。
絞り込み
条件を指定して特定のレコードを絞り込んで選択します。
SELECT フィールド名1, フィールド名2, ・・・, フィールド名n FROM テーブル名
WHERE 抽出条件;
SELECT文に[WHERE句]で条件を指定します。
以下の演算子等を使用して様々な条件を指定することが出来ますし、複数の条件を組み合わせることもできます。
比較演算子
フィールドの値と特定の値または他のフィールドの値との比較に使用します。
演算子 | 説明 |
= | 等しい |
> | より大きい |
< | より小さい |
>= | 以上 |
<= | 以下 |
<> | 等しくない |
= 特定の値
Between演算子
範囲を条件に指定する場合はBetween演算子を使用します。
範囲に指定した値も含みます。
フィールド名 Between 範囲の下限 And 範囲の上限
In演算子
特定の値と一致するフィールドを抽出する場合はIn演算子を使用します。
比較演算子の=と異なり複数の値に一致する条件を指定できます。
フィールド名 In (値1, 値2, ・・・, 値n)
Not演算子
Not演算子は他の演算子と組み合わせて[・・ではない]条件を指定できます。
フィールド名 Not 条件
特定の値と比較するときはフィールドのデータ型によって値の記述方法が異なります。
下表を参考にしてください。
データ型 | 記述方法 | 記述例 |
数値型 | 数値のみ | 数量=100 |
通貨型 | 数値のみ | 単価=100 |
テキスト型・メモ型 | 文字列を["]または[']で囲む | 名前="やまだ" |
日付/時刻型 | 日付を[#]で囲む | 受注日=#2009/1/10# |
Null値
Null値を条件に指定する場合は通常の条件と異なる記述をします。
フィールド名 Is [Not] Null
Null値ではない値の抽出にはNotを記述します。
下のSQLを実行します。
SELECT * FROM T顧客;
WHERE 生年月日>=#1970/1/1#;
[T顧客]テーブルから生年月日が1970年1月1日以降のレコードが抽出できました。
条件の指定は後で説明する追加・更新・削除を行うSQLでも使用できます。
条件の記述方法は同じです。
並べ替え
指定したフィールドの値が小さい(または大きい)順に並べ替えを行うことができます。
SELECT フィールド名1, フィールド名2, ・・・, フィールド名n FROM テーブル名
ORDER BY フィールド名1 [ASC|DESC], ・・・, フィールド名n [ASC|DESC];
SELECT文に[ORDER BY句]で並べ替えを指定します。
並べ替えの対象フィールドの後に[ASC]を付けると昇順、[DESC]を付けると降順に並べ替えます。
順番の指定は省略することができ、省略した場合は昇順になります。
複数のフィールドに並べ替えを指定した場合は先に指定したフィールドの並べ替えが優先されます。
SELECT * FROM T顧客;
ORDER BY 生年月日 DESC;
[T顧客]テーブルから生年月日を降順に並べ替えてレコードが抽出できました。
日付は前の日付が小さく、後の日付が大きくなります。
文字列は文字コードの大きさで大小が決まります。具体的には
半角記号<半角数字<半角英字<ひらがな<漢字
となります。(大体です。半角数字より大きいと判断される半角記号もあります。)
並べ替えは追加を行うSQLでも使用できます。