データベースとSQLとは?わかりやすく解説
データを表で整理し、SQLで取り出す基本を学びます。
最初に考えてみよう
データがただバラバラに保存されているだけだと、必要な情報をすばやく探したり条件で絞ったりできません。どうすれば、欲しいデータだけを正しく取り出せるのでしょうか?
解説
1SQLの形(取り出す命令)
データを取り出す代表が SELECT 文。形はいつも同じです。
SELECT 名前 FROM 生徒 WHERE 点数 >= 80
→ 「生徒の表から、点数80以上の人の名前を取り出して」という意味。
2SQLが表をどう変えるか
SQL文の光っている句が、下の表に何をするかを見てみよう。 同じ表が、句ごとにしぼられ・選ばれ・並べ替わります。
3ミニSQL:選ぶと結果が変わる
取り出す列と条件を選ぶと、 SQL文と結果の表が変わります。いろいろ試してみよう。
| 名前 | クラス | 点数 |
|---|---|---|
| 田中 | 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パスポート試験の公開問題から、このテーマの問題を集めました。
あわせて覚える英略語
つながるテーマ
学習を記録して、合格まで続ける
教材と確認問題はこのページで全部無料で使えます。登録すると「データベースとSQL」の結果や習熟度が記録され、苦手分野の復習提案、試験日までの学習計画、合格準備度の見える化が使えます。最初の7日間は学習記録も無料です。