実践 mSQL その 1
実践 mSQL その 1
データベースを作ってみよう
今度は、実際に mSQL を使って、データベースを作ってみましょう。
できれば、実際に同じ作業をしながら読んでください。
データベースを作る
データベースを作るのは、 mSQL 管理者として登録されたアカウントでなければなりません。 mSQL 管理者が、以下のコマンドを打てば、 EMPLOYEE データベースが新規作成されます。
msqladmin create EMPLOYEE
msql ユーティリティ
msql は DBMS と、SQL クエリーのやりとりをする対話型のインタフェースです。 SQL は手続き型言語に埋め込んで使うと以前説明しましたが、 この msql ユーティリティを使うことによって、 直接 SQL を発行することができます。 このユーティリティを使って、基本的なテーブルなどを作ったり、 データの確認などを行います。
msql データベース名
で、起動します。起動するとプロンプトが出てくるので、
SQL を書いてから、\g と入力すると、クエリーを発行します。
\e と入力するとエディタが起動して、直前に入力したクエリーを編集できます。
\p で、直前に入力したクエリーを表示します。
\q で msql を終了します。
スキーマ設計
SQL 入門編で作った社員データベースは、 所属部門が文字列で登録されているため、 データベース内に同じ文字列が重複してしまって、 ディスク効率的にも、検索効率的にも、また管理効率上も好ましくありません。
そこで、このような場合は、部門をコードで管理するのが普通です。 社員テーブルには所属部門として、部門コードを記録し、 別に部門コードと部門名の対応表のテーブルを作るのです。 こうすることにより、部門一覧を取り出したり、 部門に関するデータを加えるのも容易になります。
では、「社員テーブル」と「部門テーブル」 の2つのテーブルを設計してみます。 社員データベースはこんな感じになるでしょう。
|
これで、社員が増えても、部門が増えても、部門の名称が変わっても、
効率よく管理できることがわかるでしょうか。
さて、次は各カラムのデータ型を決めなくてはなりません。 mSQL には、以下の4つの型が用意されています。
char 固定長文字列 text 可変長文字列 int 数値 real 実数
今回は、int と char だけを使えば良いと思います。 実際に作るテーブルは、こんな形になります。
EmpTbl no int div int name char(20)
DivTbl id int val char(20)
char(20) は、半角文字 20 文字分を確保するという意味です。
テーブルを作る
早速、設計したテーブルを EMPLOYEE データベースに作ってみましょう。 テーブルを作るには、CREATE 文を使います。基本構文は以下の通りです。
create table テーブル名 ( カラム名 型, カラム名 型, ... )
msql EMPLOYEE を起動して、以下の SQL を発行してください。 これで EmpTbl テーブルができます。
- create table EmpTbl (
- no int,
- div int,
- name char(20)
- )
次は DivTbl を作ります。
- create table DivTbl (
- id int,
- val char(20)
- )
データを入れる
mSQL には、
テキストファイルから一括でデータを入れるためのユーティリティも付属していますが、
今回はテストで、データ量も少ないので、直接 INSERT 文でデータを入れましょう。
まず社員テーブルから。
insert into EmpTbl (no, div, name) values (101, 3, '宮前 竜也')この要領で全社員を INSERT して下さい。 文字列は ' (シングルクォート)で囲ってください。また、 日本語コードは、SJIS または EUC を使用して下さい。
次に部門テーブル。
insert into DivTbl (id, val) values (1, '営業部')
入力が終わったら、正しくデータが入ったか、確認してみましょう。
select * from EmpTblselect * from DivTbl
[ 目次 ]