📥 SELECT / FROM
データを取り出す
テーブルから列を選んで取り出す、SQLの基本のキ。* で全列取得!
SELECT 名前, レベル
FROM キャラ;
-- 全列取得するなら
SELECT * FROM キャラ;
Accessでの操作
デザインビューでテーブルを追加し、使いたい列のチェックボックスをONにすると自動でSELECT文が作られる。SQLビューで確認できる。
SELECTFROM*
🔍 WHERE
条件で絞り込む
ほしいデータだけを取り出す条件指定。AND / OR で複数条件も組み合わせられる。
SELECT 名前 FROM キャラ
WHERE レベル >= 10
AND 職業 = '魔法使い';
Accessでの操作
デザインビューの「抽出条件」欄に条件を入力するだけでOK。複数列に条件を入れるとAND扱いになる。
WHERE>=ANDOR
↕️ ORDER BY / TOP
並び替えと件数絞り
ASC で昇順(小→大)、DESC で降順(大→小)。TOP N で上位N件だけ表示。
SELECT TOP 3 名前
FROM キャラ
ORDER BY レベル DESC;
Accessでの操作
デザインビューの「並べ替え」欄で昇順・降順を選択できる。件数指定はSQLビューで TOP を追加する。
Access固有の注意
標準SQLの
LIMIT は使えない。Accessでは
TOP N を使う。
ORDER BYASCDESCTOP
🔎 LIKE
あいまい検索
名前がうろ覚えでも大丈夫!ワイルドカードが何文字でも代わりに探してくれる。
WHERE 名前 LIKE '竜*' -- 竜で始まる
WHERE 名前 LIKE '*騎士' -- 騎士で終わる
WHERE 名前 LIKE '*炎*' -- 炎を含む
Access固有の注意
Accessのワイルドカードは
*。標準SQLの
% は使えないので注意!
Accessでの操作
デザインビューの「抽出条件」欄に
Like "竜*" と入力するだけでOK。
LIKE*(Accessのワイルドカード)
✏️ INSERT / UPDATE / DELETE
データを追加・更新・削除
データを変更する3兄弟。UPDATE と DELETE は WHERE を忘れると全データが変わるから要注意!
-- 追加
INSERT INTO キャラ (名前, レベル)
VALUES ('アレックス', 1);
-- 更新
UPDATE キャラ SET レベル = 15
WHERE 名前 = 'アレックス';
-- 削除
DELETE FROM キャラ
WHERE 名前 = 'アレックス';
Accessでの操作
「作成」→「クエリデザイン」→「クエリの種類」から「追加」「更新」「削除」を選ぶ。これらをアクションクエリと呼ぶ。実行前に確認ダイアログが出るよ。
INSERT INTOVALUESUPDATESETDELETE
📊 集計関数
数字をまとめる5兄弟
COUNT で個数、SUM で合計、AVG で平均、MAX / MIN で最大・最小。
SELECT
COUNT(*) -- 全件数
SUM(レベル) -- レベル合計
AVG(レベル) -- 平均レベル
MAX(レベル) -- 最高レベル
MIN(攻撃力) -- 最低攻撃力
FROM キャラ;
Accessでの操作
デザインビューで「集計」ボタン(Σ)をクリックすると「集計」行が現れる。列ごとにSUM・AVG・COUNTなどをドロップダウンで選べる。
COUNTSUMAVGMAXMIN
🗂️ GROUP BY / HAVING
グループ化して集計
職業ごと・クラスごとに集計したいときに使う。HAVING は GROUP BY のあとに絞る条件。
SELECT 職業, COUNT(*) AS 人数
FROM キャラ
GROUP BY 職業
HAVING COUNT(*) >= 3;
Accessでの操作
集計ボタン(Σ)を押して、グループ化したい列を「グループ化」、集計したい列をSUM/COUNTに設定。HAVINGはSQLビューで追記するのが確実。
GROUP BYHAVINGAS
🔗 JOIN
テーブルをつなぐ
INNER JOIN は両方に存在するデータだけ。LEFT JOIN はキャラ全員+アイテム未所持でも表示できる。
SELECT キャラ.名前, アイテム.名前
FROM キャラ
INNER JOIN アイテム
ON キャラ.アイテムID = アイテム.ID;
Accessでの操作
「リレーションシップ」画面でテーブル同士をIDで結んでおくと、デザインビューで自動的にJOINが設定される。結合線をダブルクリックするとINNER/LEFT/RIGHTを切り替えられる。
INNER JOINLEFT JOINON
🪆 サブクエリ
SELECT の中に SELECT
カッコの中のSELECTを先に計算して、その結果を外側に渡す入れ子構造のまほう。
SELECT 名前 FROM キャラ
WHERE レベル > (
SELECT AVG(レベル)
FROM キャラ
);
-- 平均より強いキャラを取得
Accessでの操作
サブクエリはデザインビューでは設定できない。SQLビューに直接入力する必要があるよ。
サブクエリ( SELECT )
🏗️ CREATE TABLE
テーブルを設計・作成
データの入れ物を新しく作る。PRIMARY KEY で主キー設定、NOT NULL で空欄を禁止できる。
CREATE TABLE モンスター (
ID INTEGER PRIMARY KEY,
名前 TEXT NOT NULL,
攻撃力 INTEGER,
出現場所 TEXT
);
Accessでの操作
「作成」→「テーブルデザイン」で列名・データ型・主キーをGUIで設定できる。SQLを書かなくても同じテーブルが作れる。
CREATE TABLEPRIMARY KEYNOT NULL
🌟 便利コマンド集
DISTINCT / IS NULL / BETWEEN / IN
知っておくと絶対便利な4つの仕上げコマンド。
SELECT DISTINCT 職業 FROM キャラ;
-- 重複なし一覧
WHERE 出現場所 IS NULL;
-- 空欄を探す
WHERE レベル BETWEEN 5 AND 10;
-- 範囲で絞る
WHERE 職業 IN ('戦士', '魔法使い');
-- どれかに一致
Accessでの操作
DISTINCT はSQLビューで追加。IS NULL・BETWEEN・IN はデザインビューの抽出条件欄にそのまま書ける。例:
Between 5 And 10
DISTINCTIS NULLBETWEENIN