データベースとSQLとは?わかりやすく解説

テクノロジ系 ・ 技術要素(データベース) ・ 読む目安7分 ・ 頻出

データを表で整理し、SQLで取り出す基本を学びます。

最初に考えてみよう

データがただバラバラに保存されているだけだと、必要な情報をすばやく探したり条件で絞ったりできません。どうすれば、欲しいデータだけを正しく取り出せるのでしょうか?

解説

データベースは整理された保管場所、その中の表=テーブル。 その表から欲しいデータを取り出す「お願いの言葉」がSQLです(図書館で司書さんに頼む注文文のイメージ)。

1SQLの形(取り出す命令)

データを取り出す代表が SELECT 文。形はいつも同じです。

SELECTどの『列』を取り出すか(* は全部)
FROMどの『表』から取り出すか
WHEREどんな『条件』の行だけにしぼるか

SELECT 名前 FROM 生徒 WHERE 点数 >= 80

→ 「生徒の表から、点数80以上の人の名前を取り出して」という意味。

2SQLが表をどう変えるか

SQL文の光っている句が、下の表に何をするかを見てみよう。 同じ表が、句ごとにしぼられ・選ばれ・並べ替わります。

SELECT 名前, 点数 FROM 成績
名前
クラス
点数
田中
1組
80
鈴木
2組
65
佐藤
1組
92
高橋
2組
78
伊藤
1組
88
STEP 1/元の表:FROM 成績 = まず成績の表をまるごと用意。
元の表結果

3ミニSQL:選ぶと結果が変わる

取り出す列と条件を選ぶと、 SQL文と結果の表が変わります。いろいろ試してみよう。

SELECT * FROM 生徒 WHERE 点数 >= 80 ;
取り出す列(SELECT)
条件(WHERE)
生徒テーブル(条件に合う行が光る)
名前クラス点数
田中1組80
鈴木2組65
佐藤1組92
高橋2組78
▼ 取り出される結果
名前クラス点数
田中1組80
佐藤1組92

WHERE で行をしぼり(抽出)、SELECT で列を選ぶ(射影)。 この2つが取り出しの基本です。

4代表的な命令をおさらい

  • SELECT取り出す(検索)
  • INSERT追加する
  • UPDATE書きかえる
  • DELETE消す
  • ORDER BY並べ替える(SELECT に付ける句)

※ 行=レコード(1件分)、列=フィールド(項目)。試験ではSQLの書き方より、行を取り出す(選択)・列を取り出す(射影)といった表の操作の意味がよく問われます。

5関係データベースの部品と、3つの操作

データを行と列からなる表で表すのが関係モデル(関係データベース)。表の中の1行がレコード、1列(項目)がフィールドです。

表 ⊃ レコード(行)⊃ フィールド(列)の値

選択 … 条件を満たす行を抜き出す(店舗=S1)

会員番号氏名店舗
M1青木S1
M2井上S2
M3上田S1

射影 … 特定の列だけを抜き出す(氏名の列)

会員番号氏名店舗
M1青木S1
M2井上S2
M3上田S1

結合 … 2つの表を、フィールドの値で関連付けて1つの表にする

氏名店舗
青木S1
井上S2
+
店舗店舗名
S1駅前店
S2本町店

→ 店舗の値でつなぐと「青木・駅前店」「井上・本町店」

「2つの表から同じ値をもつレコードを抜き出す」は結合ではなく共通(積)。 ほかのモデルに階層モデル(木の形)・ネットワークモデル(網の目)があります。

6主キーの決まりと、DBMSの言葉

主キーは、表の中で1件のレコードを確実に見分ける項目。会員表なら会員番号です。 同姓同名がありうる氏名は主キーになりません。

  • ○他のレコードと値が重複しない
  • ○複数のフィールドを組み合わせて主キーにできる
  • ×主キーの値は数値でなければならない
  • ×主キーの列にインデックスは設定できない

例:「受講記録」表は会員番号だけでは何度も出てくるので、会員番号+講座コードの2つで主キーにする。

インデックス
データの検索を高速にするために、必要に応じて設定する索引
外部キー
他の表の主キーを参照して、表どうしをつなぐ項目
レプリケーション
データベースを他のコンピュータに複製し、内容が一致するよう同期させる
バックアップ
障害に備えて、ある時点のコピーを取っておく(同期はしない)
ロールバック
トランザクションの更新を取り消し、更新前の状態に戻す

データベース設計のデータ分析では、必要なデータ項目を洗い出し、項目間の関連を整理します。

7あいまい検索:% と _ をあてはめる

氏名の一部だけで探すときは、条件に記号を使います(SQL では LIKE)。

%

0文字以上の任意の文字列

_

任意の1文字(ちょうど1文字)

  • 山田
  • 田中
  • 山田花
  • 田
  • 前田一郎
  • 田代美

'%田_' に該当:2 名

'%田_' は「田の後ろにちょうど1文字」。田で終わる山田・田や、後ろが2文字以上の前田一郎・田代美は該当しません。 %は0文字でもよいので、田中のように田の前に何もなくても該当します。

8どれ?

  • “商品”表から、価格の列だけを取り出す操作は?
  • データベースの内容を別のコンピュータに複製し、同期させる機能は?
  • 検索を高速にするために設定するものは?
  • 氏名が '_木%' に該当するのは?(_ は任意の1文字、% は0文字以上)

試験のポイント

ITパスポート試験での問われ方

SQLの代表的な操作やテーブル構造が問われる

間違えやすいポイント

  • SQLをデータそのものだと思う
  • 行と列の意味を逆に覚える

関連用語

データベース、SQL、テーブル、レコード、フィールド

図解の内容を文章で読む

データベースとSQLをイメージでつかむ

データベースは多くのデータを探しやすく保存する仕組みです。表のようなテーブルに行と列で整理し、SQLという言葉で検索・追加・更新・削除を指示します。

たとえると:図書館の本棚がデータベース、分類された棚がテーブル、司書さんへの注文文がSQLです。

データベースは、大量のデータをあとから探しやすい形で保存しておくしくみです。リレーショナルデータベースでは、データをテーブルという表で管理し、横1行が1件分のデータ(行)、縦の並びが項目(列)です。行と列を逆に覚えないよう注意しましょう。SQLは、このデータベースに指示を出すための言語であって、データそのものではありません。代表的な命令は、検索のSELECT、追加のINSERT、更新のUPDATE、削除のDELETEの4つです。試験では「データを検索するSQLはどれか」「行と列は何を表すか」のように、用語と役割の対応が問われます。

押さえどころ

  • データベース = 整理された保管場所
  • テーブル = 行と列の表
  • SQL = データベースへの命令

確認問題(4問)

確認問題を読み込んでいます...

確認問題は本サービスのオリジナル問題です。ログインなしで解けます(結果は保存されません)。

「データベースとSQL」の過去問(11問)

IPAが公開しているITパスポート試験の公開問題から、このテーマの問題を集めました。

あわせて覚える英略語

つながるテーマ

この解説をXでシェア

学習を記録して、合格まで続ける

教材と確認問題はこのページで全部無料で使えます。登録すると「データベースとSQL」の結果や習熟度が記録され、苦手分野の復習提案、試験日までの学習計画、合格準備度の見える化が使えます。最初の7日間は学習記録も無料です。