挫折しないSQL入門!SELECT文の基本

挫折しないSQL入門!SELECT文の基本

プログラミングを学び始めて、最初に触れる機会が多い「SQL」。中でも「SELECT文」は、データベースという巨大な情報の倉庫から、欲しい宝物を取り出すための最も基本的で、最も重要な呪文です。

そもそも「SELECT文」とは?

SELECT文を一言でいうと、「データベースに保存されているデータの中から、必要な情報を取ってくる(参照する)ための命令」のことです。

データベースには大量のデータが保存されていますが、それ自体はただの箱に過ぎません。私たちがWebサイトで「商品一覧を見る」ときや「自分のプロフィールを確認する」とき、その裏側ではこのSELECT文が走り、必要なデータを画面に呼び出しています。

SELECT文の最大の特徴は、「元のデータを書き換えない(読み取るだけ)」という点です。初心者が何度実行してもデータが壊れる心配はないので、安心して練習できる、まさに学習の第一歩に最適なコマンドなのです。

今回使用する「商品在庫テーブル」

解説のために、以下の「ガジェットショップの在庫表(productsテーブル)」を用意しました。日付を使った検索ができるよう、発売日の列を追加しています。

id name (商品名) category (カテゴリ) price (価格) stock (在庫) release_date (発売日)
1 MacBook Air PC 150000 5 2023-06-15
2 iPad Pro Tablet 120000 NULL 2022-10-26
3 iPhone 15 Smartphone 130000 10 2023-09-22
4 Pixel 8 Smartphone 110000 2 2023-10-12
5 AirPods Audio 30000 20 2021-10-26
6 Surface Laptop PC 140000 NULL 2022-10-25

※ NULLは「データが入力されていない(空)」という状態を指します。

基本のSELECTと「AS」による別名付与

AS を使うと、結果を表示する際のカラム名に日本語の「ニックネーム」をつけることができます。実行結果がぐっと読みやすくなります。

狙い通りに絞り込む「WHERE」のテクニック

エンジニアが日常的に使う、実戦的な絞り込み方法をマスターしましょう。

あいまい検索「LIKE」の注意点

「スマホを探したい」と思って、商品名(name)に LIKE を使ってみます。

SQLは指定した「列」の中身しか見ません。Pixel 8という名前の中に "Phone" という文字はないからです。もし「スマホ全般」を取りたいなら、カテゴリ(category)に対して LIKE を使うのが正解です。

リストで指定する「IN」

「PCとTabletだけ見たい」といった複数の条件は IN でスッキリまとめましょう。OR を並べるより読みやすくなります。

期間で絞り込む「BETWEEN」

日付の範囲を指定したいときは BETWEEN の出番です。「2023年の間に発売されたもの」を探してみましょう。

注意点: 日付は ' '(シングルクォート)で囲む必要があります。

「空」を判定する「IS NULL」

NULLを「=」で探すことはできません。 専用のフレーズを使いましょう。

並び替え(ORDER BY)と件数制限(LIMIT)

「価格が高い順に3つだけ見たい」といった場合は、最後にこの2行を添えます。

なぜかエラー?初心者がやりがちなミス

もしエラーが出たら、まずはここをチェックしてみてください!

「全角」が混ざっている

SQLは、データの中身以外はすべて半角で書くルールです。全角スペースや全角カンマが1つあるだけでエラーになります。

名前(スペル)の間違い

namenames と書いてしまうようなミスです。DBによってエラーメッセージが異なります。

カンマの打ちすぎ

のように、FROM の直前にカンマを入れてしまうミスに注意しましょう。

日付のシングルクォート忘れ

のようにクォートを忘れると、SQLは「2023 引く 1 引く 1」という引き算の計算だと勘違いしてしまいます。

おわりに

SQLのSELECT文は、一度基本をマスターすれば一生モノのスキルになります。エラーが出ても、それは「ヒント」です。メッセージをよく読み、一つずつ原因を特定していくプロセスこそが、上達への最短ルートです。まずは、実際に手を動かして入力してみることから始めてみてください!

Author Profile

コウノ(
職歴年のIT技術者です。エクセル・Web制作が得意。

プロフィールの詳細

お困りごとはまずはご相談ください。パソコン・スマホ初期設定 / ツール導入・開発受付中

Back to Top