イチから全部作ってみよう(30)データベース操作の共通言語「SQL」を使ってみる:山浦恒央の“くみこみ”な話(199)(2/3 ページ)
ソフトウェア開発の全工程を学ぶ新シリーズ「イチから全部作ってみよう」。第30回は、これまで紹介してきたデータベースに関する概念的な話から離れ、SQLを使って実際にデータベースを操作してみる。
5.SQLを使ってみよう
環境が整ったところで、いよいよ操作の話です。今回は、「テーブル作成」「データの挿入/抽出」まで、SQLiteを使って操作します。
まず、ワインの商品データとして表1のデータを作成します。
| 項目名 | 説明 |
|---|---|
| ID | 商品を一意に識別する番号(主キー) |
| 商品名 | 商品の名称 |
| ビンテージ | ワインの生産年のこと |
| 価格 | 販売価格 |
| 在庫数 | 在庫 |
| 表1 商品データ | |
IDは、一意(重複なし)となるような番号で、商品名、ビンテージ、価格、在庫数の一連の商品データとなっています。
5.1 テーブル/レコード/カラム
SQLを実行する前に、「テーブル」「レコード」「カラム」の概念を知っておくとよいでしょう(図1)。
図1の青枠を「テーブル」、赤枠を「レコード」、緑枠を「カラム」と言います。それぞれの詳細を下記で説明します。
5.1.1 テーブル(図1の青い枠)
テーブルとは、データを蓄積する箱のようなものです。例えば、Excelでワインショップのデータを管理しようとすると、「商品一覧シート」「顧客一覧シート」「注文一覧シート」のように、大きな単位に分けますね。このExcelにおける1シートに相当するのが、テーブルです。
また、テーブルでは、それぞれの「商品名」「価格」といった項目名と、データの型を決めます。
5.1.2 レコード(図1の赤い枠)
テーブルの中に保存した1行分のデータです。図のように、シャトーマルゴーやミラヴァルといった具体的なワインの情報が1行ずつ積み重なって入っていることが分かりますね。
5.1.3 カラム(図1の緑の枠)
テーブル内のデータの縦の並びのことです。商品名や価格といったデータの項目を表しており、SQLでデータを抽出する際に、「価格だけを見たい」というように特定の列を指定することも多くあります。
5.2 データベースを作成する
データベースを起動します。
(1)コマンドプロンプトを開き、cdコマンドで任意のフォルダに移動する
cd 任意のフォルダパス
(2)データベースを作成する
sqlite3 EC_Database.db
コマンドを実行すると、フォルダ内に「EC_Database.db」というデータベースファイルが作成でき、SQLiteと対話モードが起動します。
5.3 テーブルを作成する
5.3.1 CREATE文
データを保存するためには、まず、どのような構造のテーブルが必要か決める必要があります。この設計図がCREATE文です(図2)。
ここでは、商品情報を管理するためのProductテーブルを作成します。SQLiteから下記のコマンドを入力してください。
CREATE TABLE Product ( id INTEGER PRIMARY KEY, name TEXT, vintage INTEGER, price INTEGER, stock INTEGER );
実行後、エラーが出なければ、Productというテーブルの作成完了です。なお、まだテーブルを作っただけなので、テーブルの中身は空っぽの状態になります。
5.3.2 CREATE文の構文
CREATE文は、下記を実行します。
- CREATE TABLE テーブル名
任意の名称のテーブルを作成します - カラム名 データ型
カラム名とデータ型(TEXT型やINTEGER)を記載し、どのような値を保存するか決定します - PRIMARY KEY
また、PRIMARY KEYを設定すると、そのカラムの値は重複しません。意図としては、ワインには、同じ商品名だとしても、ビンテージや生産者が異なると別商品として扱いたいため、PRIMARY KEYを設定しました
Copyright © ITmedia, Inc. All Rights Reserved.
