MySQL基礎知識
MySQLの基礎知識
データベースは「規則を持ったデータの集まり」を意味しますが、一般的には、データを追加したり、検索や抽出をしたりといった管理機能を含めてデータベースと呼びます。
リレーショナルデータベース
データベースとして広く使われているのは、リレーショナル型と呼ばれてるものです。
このリレーショナルデータベースを管理するシステムをRDBMS(Relational DataBase Management System)といいます。
現在、世界中でたくさんのRDBMSが利用されています。
主なRDBMS
製品名 |
Oracle |
Access |
SQL Server |
PostgreSQL |
MySQL |
リレーショナルデータベースでは、一つのデータを項目の集まりで表します。
例えば、1件分の商品データを「商品コード」「商品名」「価格」...というように分けて、これを商品の数だけ集めます。
1件のデータを「レコード」、そして項目「カラム(列)」、そしてレコードの集まりを「テーブル」と呼びます。
データベースイメージ
●データベースの特徴
・データの矛盾が発生しにくい
・データへのアクセス権限が設定できる
・障害発生時の回復が容易
・データの追加、変更、削除、検索が安全で効率的にできる
一つのデータベースには複数のテーブルを置くことが出来ます。
たとえば「商品コードと商品名のテーブル」、「商品コードと価格のテーブル」のように、項目を複数のテーブルに分けておき、必要なテーブルの必要な部分だけを集めて利用されるのが一般的です。
MySQLを利用するための設定
MySQLを利用するためには、最初に日本語文字コードの設定が必要です。
データベースでは、文字化けに悩まされることが多々あります。
・rootユーザーのパスワード設定
初期状態では、「root」というユーザーが作られます。この「root」というユーザーは管理権限のあるユーザーですが、パスワードが設定されていないので、パスワードを設定しておきます。
phpMyAdminによるMySQL操作の基本
PHPスクリプトでMySQLを操作する前に、phpMyAdminで直接データベースを作成・
編集す方法を覚えていきます。
基本的なデータベースとテーブルの作成、そしてデータの確認ではphpMyAdminを今回は利用することにします。
phpMyAdminは、ブラウザ上でMySQLサーバーを管理するソフトウェアです。面倒な命令を入力することなく、簡単な操作でMySQLのすべてが管理できます。
ちなみにphpMyAdminのプログラム自体もPHPで書かれています。
・データベースとテーブルの作成
いよいよデータベースを作成し、その中にテーブルを作成した後、実際のデータを入力していきます。
■作成するデータベースの概要
ここでは、サンプルとして、文房具のデータベースを作成します。
データベース名 :db
基本となるデータベースです。このデータベース「db」の中に、次のテーブルを保
管します。
テーブル名 :tb
このテーブルは、次の3つのカラム(列)と、「データ型」を持つものとします。
テーブル「db」の構造
カラム名(列名) | cd | nm | pr |
データ型 | VARCHAR(10) | VARCHAR(20) | INT |
内容 | 商品コード | 商品名 | 数値 |
そして、テーブル「tb」には次のデータを挿入します。
カラム「cd」に入れる値 | カラム「nm」に入れる値 | カラム「pr」に入れる値 |
SH001 | 鉛筆 | 100 |
SH002 | 消しゴム | 50 |
SH003 | ボールペン | 200 |
SH004 | ノート | 250 |
SH005 | 定規 | 150 |
■カラムとデータ型
「データ型」とは、そのカラム(列)に保管するデータの種類のことです。
PHPの変数にもデータ型がありますが、MySQLのデータ型はまた別のものです。
「INT」は1,2,3のような整数のデータを保管できることを意味します。
また「VARCHAR」とは、文字データを保管することを意味します。
「VARCHAR」に続く「10」は、「10個までの文字が入力できる」という意味です。
マルチバイトの日本語でも10個まで入ります。
PHPではデータ型を自動的に判断してくれましたが、MySQLのようなデータベースシステムでは、データ型は厳密に指定する必要があります。
つまり「INT」型が設定されたカラムに整数以外のデータを挿入することはできません。
今回はカラム「pr」には整数、またカラム「cd」と「nm」には10個および20個までの文字が入れられるという設定を行います。
「cd」「nm」「pr」という名前のカラムを設定します。テーブル名やカラム名には、日本語を使うこともできます。しかし、日本語文字コードを使った名前は問題が生じる可能性があるので、避けたほうがよいでしょう。
■データベースの新規作成
「db」という名前のデータベースを作成し、ここに様々なテーブルを保管します。
①「データベース」をクリック
②「db」入力
③「utf8_general_ci」を選択
④ 作成をクリック
すると、「データベースdbを作成しました」数秒表示され、データベース一覧に「db」が追加されます。これで「db」という名前のデータベースが作成されました。
■テーブルの作成
①データベース一覧の「db」を選択
②テーブルの名前「tb」と入力
③カラム「3」と入力
④実行をクリック
⑤「cd」「VARCHAR」「10」と入力
⑥「nm」「VARCHAR」「20」と入力
⑦「pr」 「INT」と入力
⑧ 保存するをクリック
これでテーブル「tb」が作成できました。
・テーブル構造の変更
phpMyAdminでは、一度作成したテーブルの構造も簡単に変更することができます。
もし間違った内容でテーブルを作成してしまった場合は上記の画面から操作できます。
■レコードを挿入する
入れ物であるテーブル「tb」はできたので、そこに具体的なデータを追加してみましょう。ここからクエリを発行することでデータベースを操作していきます。
クエリはPHPによるデータベースの基本になります。
・クエリとSQL
人間が「データベースに伝える命令」を文字として表したのがクエリ(query)です。
データを挿入するクエリ ➡ 「INSERT INTO...」
データを読み出すクエリ ➡ 「SELECT*FROM...」
このクエリを書く規則が、SQL(Structured Query Language)という言語です。
・レコードの挿入
今回はクエリを使って、次のようなレコードを挿入します。
テーブル「tb」に挿入するデータ
カラム「cd」に入れる値 | カラム「nm」に入れる値 | カラム「pr」に入れる値 |
SH001 | 鉛筆 | 100 |
SH002 | 消しゴム | 50 |
SH003 | ボールペン | 200 |
SH004 | ノート | 250 |
SH005 | 定規 | 150 |
テーブルにレコードを挿入するには、INSERT命令を使います。
書式 INSERT INTO テーブル名 VALUES(データ1,データ2....);
VALUESの後の「()」中に、設定したカラム順のデータを、「,」で区切って記述します。このとき下記の注意点があります。
●大文字/小文字は区別しない
SQLでは、PHPと同じく命令文の大文字/小文字は区別しません。ですから「insert」でも「INSERT」でもかまいません。
●文字列は " もしくは ' で囲む
PHPと同じく、文字列データは「"」ダブルクォーテーション、または「’」シングルクォーテーションで囲って記述します。
●カラムの設定文字数を超えない
たとえばカラム「cd」は「VARCHAR(10)」で作成したので、11文字以上は入力できません。ただし、MySQLの場合、指定の文字数を超えて入力してもエラーにならず、入りきれない文字(この場合11文字以降)だけが消えてしまいます。
●命令の最後に「 ; 」を付ける
PHPと同じく、SQLでも命令の終わりには「;」(セミコロン)を付けなければなりません。
●挿入の実行
テーブル「tb」に挿入するレコードを入力する場合は次のようになります。
INSERT INTO tb VALUES('SH001','鉛筆',100);
INSERT INTO tb VALUES('SH002','消しゴム',50);
INSERT INTO tb VALUES('SH003','ボールペン',200);
INSERT INTO tb VALUES('SH004','ノート',250);
INSERT INTO tb VALUES('SH005','定規',150);
では、実際にphpMyAdminを使って、レコードを挿入しましょう。
SQLを入力して、実行をクリック
それぞれの行で「1行変更しました。」と表示されたら、レコードの挿入は完了です。
テーブルの内容確認は「表示」タブです。