カテゴリ: データベース 更新日: 2026/01/05

SQLの基本文法を完全解説!SELECT文の書き方と仕組みを初心者向けに整理

SQLの基本文法を完全解説!SELECT文の書き方と仕組みを初心者向けに整理
SQLの基本文法を完全解説!SELECT文の書き方と仕組みを初心者向けに整理

先生と生徒の会話形式で理解しよう

生徒

「SELECT文って、プログラミングの授業でよく聞くんですけど、何をする命令なんですか?」

先生

「SELECT文は、データベースに保存されているデータを取り出すための命令です。図書館で本を探すように、たくさんのデータの中から欲しい情報だけを選び出すことができます。」

生徒

「データベースって何ですか?パソコンのエクセルとは違うんですか?」

先生

「データベースは、エクセルの表のようなものが何枚も入った大きな本棚のようなものです。その表をテーブルと呼び、SQLを使って操作します。今日は、その基本となるSELECT文の書き方を、一つずつ丁寧に学んでいきましょう。」

1. SQLとSELECT文の基本

1. SQLとSELECT文の基本
1. SQLとSELECT文の基本

SQLとは、データベースを操作するための専用言語です。エスキューエルと読み、Structured Query Languageの略称になります。このSQLを使えば、データベースに保存された情報を自由に取り出したり、追加したり、変更したりできます。

その中でも、SELECT文はデータベースからデータを検索して取り出すための命令で、最も頻繁に使われる重要な構文です。まるで図書館の検索システムのように、必要な情報だけを素早く見つけることができます。

データベースは、行と列で構成されたテーブル(表)という形でデータを管理しています。行のことをレコード、列のことをカラムやフィールドと呼びます。住所録や名簿のように、縦と横に情報が整理されているイメージです。

2. SELECT文の基本構文

2. SELECT文の基本構文
2. SELECT文の基本構文

SELECT文の基本的な書き方は、とてもシンプルです。「SELECT(選択する)」「FROM(どこから)」という2つの要素で構成されます。これは日本語で「どのテーブルから、どの列のデータを取り出すか」を指定する命令になります。

基本的な構文は次のようになります。SELECTの後に取り出したい列の名前を書き、FROMの後にテーブルの名前を書きます。この順番は必ず守る必要があります。

基本構文のポイント
  • SELECT:取り出したいデータの列名を指定
  • FROM:データが入っているテーブル名を指定
  • 文末にはセミコロン(;)を付ける

例えば、usersという名前のテーブルから、nameという列のデータを取り出したい場合は、次のように書きます。


SELECT name
FROM users;

この命令を実行すると、usersテーブルに登録されているすべての人の名前が表示されます。

3. すべての列を取得する方法

3. すべての列を取得する方法
3. すべての列を取得する方法

テーブルにあるすべての列のデータを一度に取り出したい場合は、アスタリスク(*)という記号を使います。これは「すべて」を意味する特別な記号で、列名を一つ一つ書く手間を省くことができます。

実際の業務では、まずテーブルの中身を確認したいときに、この書き方をよく使います。データ全体の構造を把握するのに便利な方法です。

次のusersテーブルがあるとします。


id | name       | age | email
---+------------+-----+-------------------
1  | 山田太郎   | 25  | taro@example.com
2  | 佐藤花子   | 19  | hanako@example.com
3  | 鈴木一郎   | 30  | ichiro@example.com
4  | 田中美咲   | 22  | misaki@example.com
5  | 高橋健太   | 28  | kenta@example.com

このテーブルから全データを取得するには、次のように書きます。


SELECT *
FROM users;

実行すると、テーブルのすべての列が表示されます。


id | name       | age | email
---+------------+-----+-------------------
1  | 山田太郎   | 25  | taro@example.com
2  | 佐藤花子   | 19  | hanako@example.com
3  | 鈴木一郎   | 30  | ichiro@example.com
4  | 田中美咲   | 22  | misaki@example.com
5  | 高橋健太   | 28  | kenta@example.com

4. 特定の列だけを取得する方法

4. 特定の列だけを取得する方法
4. 特定の列だけを取得する方法

データベースには多くの列が含まれていることがあります。しかし、必要な情報だけを取り出したい場合も多くあります。そのような場合は、SELECT文の後に取得したい列名をカンマで区切って指定します。

例えば、名前とメールアドレスだけが必要な場合は、その2つの列名だけを書きます。これにより、不要なデータを取得せず、処理速度も向上します。


SELECT name, email
FROM users;

実行結果は、指定した列のみが表示されます。


name       | email
-----------+-------------------
山田太郎   | taro@example.com
佐藤花子   | hanako@example.com
鈴木一郎   | ichiro@example.com
田中美咲   | misaki@example.com
高橋健太   | kenta@example.com

このように、必要な列だけを指定することで、見やすく整理された結果を得ることができます。列名の順番も自由に変えられるので、表示したい順序で指定できます。

5. WHERE句で条件を指定する方法

5. WHERE句で条件を指定する方法
5. WHERE句で条件を指定する方法

SELECT文に条件を付けて、特定の条件に合うデータだけを取り出すことができます。そのために使うのがWHERE句です。WHEREは「どこで」という意味で、条件を満たす行だけを絞り込むことができます。

例えば、年齢が二十歳未満の人だけを探したい場合や、特定の名前の人だけを抽出したい場合に使います。これは、大量のデータの中から必要な情報だけを効率的に見つけるための機能です。

年齢が二十歳未満の人を検索する場合は、次のように書きます。


SELECT *
FROM users
WHERE age < 20;

実行結果では、条件に合致した行のみが表示されます。


id | name       | age | email
---+------------+-----+----------------------
2  | 佐藤花子   | 19  | hanako@example.com

WHERE句では、等号(=)や不等号(<、>)、以上(>=)、以下(<=)など、さまざまな比較演算子を使うことができます。また、文字列を検索する場合は、シングルクォーテーション(')で囲んで指定します。

6. 複数の条件を組み合わせる方法

6. 複数の条件を組み合わせる方法
6. 複数の条件を組み合わせる方法

複数の条件を同時に指定したい場合は、ANDやORという論理演算子を使います。ANDは「かつ」という意味で、すべての条件を満たす必要があります。ORは「または」という意味で、どれか一つの条件を満たせば該当します。

例えば、年齢が二十歳以上、かつ三十歳未満の人を探す場合は、ANDを使って条件を結合します。これにより、より細かい条件でデータを絞り込むことができます。

productsテーブルがあるとします。


id | product_name | price | stock
---+--------------+-------+-------
1  | ノートPC     | 80000 | 15
2  | マウス       | 1500  | 50
3  | キーボード   | 3000  | 30
4  | モニター     | 25000 | 10
5  | ヘッドホン   | 8000  | 20
6  | Webカメラ    | 5000  | 25

価格が五千円以上、かつ在庫が二十個以上の商品を検索します。


SELECT product_name, price, stock
FROM products
WHERE price >= 5000 AND stock >= 20;

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


product_name | price | stock
-------------+-------+-------
ノートPC     | 80000 | 15
モニター     | 25000 | 10
ヘッドホン   | 8000  | 20
Webカメラ    | 5000  | 25

このように、ANDを使うことで複数の条件を満たすデータだけを効率的に取り出すことができます。逆に、ORを使えば、どちらか一方の条件を満たすデータを取得できます。

7. ORDER BYで並び替える方法

7. ORDER BYで並び替える方法
7. ORDER BYで並び替える方法

取得したデータを特定の順番に並び替えたい場合は、ORDER BY句を使います。ORDER BYの後に並び替えの基準となる列名を指定し、昇順(小さい順)か降順(大きい順)かを選びます。

昇順にする場合はASC、降順にする場合はDESCを付けます。何も指定しない場合は、自動的に昇順になります。価格の安い順に商品を表示したり、年齢の若い順に名簿を並べたりするときに使います。

先ほどのproductsテーブルを価格の安い順に並び替えます。


SELECT product_name, price
FROM products
ORDER BY price ASC;

実行すると、価格の低い商品から順に表示されます。


product_name | price
-------------+-------
マウス       | 1500
キーボード   | 3000
Webカメラ    | 5000
ヘッドホン   | 8000
モニター     | 25000
ノートPC     | 80000

このように、ORDER BYを使うことで、データを見やすく整理して表示することができます。複数の列を指定して、優先順位を付けて並び替えることも可能です。

8. LIMITで取得件数を制限する方法

8. LIMITで取得件数を制限する方法
8. LIMITで取得件数を制限する方法

大量のデータがある場合、すべてを取得すると処理に時間がかかります。そのような場合は、LIMIT句を使って取得する行数を制限できます。例えば、上位五件だけを表示したい場合に便利です。

LIMITの後に取得したい件数を数字で指定します。ランキング表示や、最新のデータだけを確認したい場合によく使われます。ORDER BYと組み合わせることで、特定の条件で並べた上位のデータを取得できます。


SELECT product_name, price
FROM products
ORDER BY price DESC
LIMIT 3;

この命令は、価格の高い商品から順に三件だけ表示します。実行結果は次のようになります。


product_name | price
-------------+-------
ノートPC     | 80000
モニター     | 25000
ヘッドホン   | 8000

LIMITを使うことで、必要な分だけのデータを効率的に取得でき、画面表示やレポート作成の際に非常に役立ちます。

9. SELECT文を書くときの注意点

9. SELECT文を書くときの注意点
9. SELECT文を書くときの注意点

SELECT文を書くときには、いくつかの重要なルールと注意点があります。まず、SQLの命令は大文字でも小文字でも動作しますが、読みやすさのために、SELECT、FROM、WHEREなどのキーワードは大文字で書くことが推奨されています。

また、列名やテーブル名に日本語を使うこともできますが、一般的には英語の名前を付けることが多いです。これは、システムの互換性や保守性を考慮したものです。セミコロンを付け忘れるとエラーになることがあるので、文末には必ず付けるようにしましょう。

よくあるミス
  • 列名のスペルミス:存在しない列名を指定するとエラーになります
  • カンマの付け忘れ:複数の列を指定するときは、カンマで区切ります
  • クォーテーションの使い方:文字列はシングルクォーテーションで囲みます
  • WHERE句の位置:FROM句の後に書く必要があります

エラーが出たときは、落ち着いてスペルや記号の付け忘れがないかを確認しましょう。最初は誰でも間違えるものなので、少しずつ慣れていけば大丈夫です。

10. 実践的なSELECT文の活用例

10. 実践的なSELECT文の活用例
10. 実践的なSELECT文の活用例

これまで学んだ内容を組み合わせて、実際の業務でよく使われるようなSELECT文を書いてみましょう。複数の機能を組み合わせることで、より高度なデータ検索が可能になります。

例えば、商品管理システムで「在庫が十五個以下の商品を価格の高い順に五件表示する」という要件があったとします。これは、WHERE句、ORDER BY句、LIMIT句を組み合わせて実現できます。


SELECT product_name, price, stock
FROM products
WHERE stock <= 15
ORDER BY price DESC
LIMIT 5;

この命令を実行すると、在庫が少ない商品の中から、価格の高いものが優先的に表示されます。このように、複数の句を組み合わせることで、複雑な条件でのデータ検索が可能になります。

実際の開発現場では、このようなSELECT文を使って、顧客管理、在庫管理、売上分析など、さまざまな業務に必要なデータを取り出しています。基本をしっかり理解すれば、応用も自然とできるようになります。

カテゴリの一覧へ
新着記事
New1
データベース
SQLの処理が遅くなる原因とは?初心者向けにデータベースパフォーマンス最適化を完全解説
New2
Ruby
RubyのネストHash操作を徹底解説!digとtransformメソッドで複雑なデータも楽々
New3
Rails
Railsインデックス設計の極意!爆速サイトを作るためのスキーマ設計ガイド
New4
データベース
SQLのCOMMITとROLLBACKとは?トランザクション操作を初心者向けに完全解説
人気記事
No.1
Java&Spring記事人気No1
Ruby
PATHと環境変数の正しい設定!Windows・Mac・Linux別チェックリスト付き
No.2
Java&Spring記事人気No2
Rails
Railsで日本語と時刻の設定をしよう!初心者でも安心のlocale/zone初期設定チートシート
No.3
Java&Spring記事人気No3
Ruby
Rubyのハッシュを徹底比較!シンボルキーと文字列キーの違いと使い分け
No.4
Java&Spring記事人気No4
Rails
Railsマイグレーションの型選びを完全ガイド!初心者が迷わないカラム設計
No.5
Java&Spring記事人気No5
Ruby
WindowsでRubyをインストールする方法!RubyInstallerとMSYS2を使った完全ガイド
No.6
Java&Spring記事人気No6
Rails
RailsモデルとActive Record基礎|ID戦略を完全理解!AUTO INCREMENT・UUID・ULIDの比較と導入手順
No.7
Java&Spring記事人気No7
データベース
ACID特性とは?データベーストランザクションの信頼性を初心者向けに徹底解説
No.8
Java&Spring記事人気No8
Rails
RailsモデルとActive Record基礎|クエリログの読み方を理解してEXPLAIN・joins・includesの違いを学ぼう