【SQL】SELECT文の基本:データを取得する

SQL

こんにちは、かつコーチです。

SQL入門編では、データベースやSQLの全体像を解説してきました。
ここからは実践編として、実際にSQL文を書いていきます。

最初に習得すべきなのが、データを取得するためのSELECT文です。
SELECT文はSQLの中でも最も使用頻度が高く、私も実務では1日に何十回もSELECT文を書いています。
この記事では、以下のようなusersテーブルを例に、SELECT文の基本を解説します。

CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(255) NOT NULL,
    age INT,
    created_at DATETIME
);

INSERT INTO users (name, email, age, created_at) VALUES
('田中太郎', 'tanaka@example.com', 28, '2026-01-10 10:00:00'),
('佐藤花子', 'sato@example.com', 34, '2026-02-15 09:30:00'),
('鈴木一郎', 'suzuki@example.com', 22, '2026-03-01 14:20:00');

SELECT文とは?

SELECT文の役割

SELECT文とは、テーブルからデータを取得するためのSQL文です。
「どのテーブルの、どのカラムを、取得したいか」を指定して使います。

基本構文

SELECT文の基本形は以下の通りです。

SELECT カラム名 FROM テーブル名;

例えば、usersテーブルから全員の名前を取得したい場合は、以下のように書きます。

SELECT name FROM users;

実行結果は以下のようになります。

name
---------
田中太郎
佐藤花子
鈴木一郎

カラムの指定方法

特定のカラムを取得する

複数のカラムを取得したい場合は、カンマ区切りで並べます。

SELECT name, email FROM users;
name     | email
---------+---------------------
田中太郎  | tanaka@example.com
佐藤花子  | sato@example.com
鈴木一郎  | suzuki@example.com

すべてのカラムを取得する(アスタリスク)

すべてのカラムを取得したい場合は、カラム名を1つ1つ書く代わりに*(アスタリスク)を使います。

SELECT * FROM users;
id | name     | email               | age | created_at
---+----------+---------------------+-----+---------------------
1  | 田中太郎  | tanaka@example.com  | 28  | 2026-01-10 10:00:00
2  | 佐藤花子  | sato@example.com    | 34  | 2026-02-15 09:30:00
3  | 鈴木一郎  | suzuki@example.com  | 22  | 2026-03-01 14:20:00

カラムに別名をつける(AS)

取得したカラムに別名(エイリアス)をつけたい場合は、ASを使います。

SELECT name AS 氏名, email AS メールアドレス FROM users;

結果の列見出しが「氏名」「メールアドレス」になります。
APIのレスポンスに合わせて英語のカラム名を日本語表示にしたいときなどに便利です。

つまずきやすい設定・注意点

*を実務で多用するのは避ける

学習中はSELECT * FROM users;で全カラムを取得すると楽ですが、実務では推奨されません。

  • 必要のないカラムまで取得してしまい、通信量やメモリを無駄に消費する
  • テーブルにカラムが追加・削除された際に、アプリ側の想定と結果がズレる可能性がある

私が過去に参加した案件では、SELECT *を多用したコードがあり、テーブルに新しいカラムを追加した途端、想定外の値がアプリ側に渡ってエラーになったことがありました。
それ以来、必要なカラムだけを明示的に指定する書き方を徹底しています。

セミコロンの付け忘れ

SQL文の末尾には;(セミコロン)をつけるのが基本です。
MySQLのコマンドラインツールでは、セミコロンがないと「まだ文が続く」と判断され、実行されません。

❌ SELECT name FROM users
✅ SELECT name FROM users;

複数のSQL文をまとめて実行するときは特に、セミコロン忘れによるエラーが起きやすいので注意しましょう。

まとめ

この記事のポイント

  • SELECT文はテーブルからデータを取得するための基本のSQL文
  • SELECT カラム名 FROM テーブル名;が基本構文
  • *は全カラム取得の意味だが、実務では必要なカラムのみを指定するのが望ましい
  • ASを使うとカラムに別名をつけられる

次に読むべき記事

  • WHERE句で条件を指定して絞り込む
  • ORDER BYで並び替える

タグ: SQL, 初心者向け, 基本文法

タイトルとURLをコピーしました