MySQLの基礎・phpMyAdminの使い方

Webデザイン特別プログラム
データベース実習編3
MySQL演習, phpMyAdmin
静岡理工科大学 総合情報学部
幸谷智紀
http://na-inet.jp/
RDBの基礎の基礎
• RDB(Relational DataBase)はデータを集合として扱う
• データの取り扱いはテーブル(=集合)の演算(和集合,
積集合・・・)と同じ
• データベースには複数のテーブルを作ることができる
meibo_table
id
name
テーブル(table)名
name_yomi
1
幸谷智紀
こうやとものり
2
大椙弘順
おおすぎこうじゅん
フィールド(field)名
jikken
データベース(DB)名
SQL文
• RDBを操作するための言語
• 命令文は大文字小文字の区別なし
• 今回使用するのはごく基本的なものだけ
– CREATE・・・DBやテーブルの新規作成
– INSERT・・・テーブルにデータを追加
– UPDATE・・・既存のデータを更新
– DELETE・・・既存のデータを削除
– SELECT・・・データの検索
MySQLの仕組み
• クライアント・サーバ型(C/S)のRDBMS。
• MySQL Serverはクライアントとは異なるマシ
ンに設置してあっても構わない。
MySQL(CUI)の準備
1.“C:¥xampp¥mysql¥bin”にパスを通しておく
「システムのプロパティ」→「詳細設定」→「環境変数」
→「Path」に追加
3.コマンドプロンプトを開き,mysqlコマンドが実行で
きることを確認。
MySQL(クライアント側)の使い方
• コマンドラインから・・・非常時にはこちらしか
使えないので覚えておくこと。
$ mysql –u ユーザ名 –p
Enter password: パスワードを入力(表示さ
れない)
mysql> ←”mysql”プロンプトが出る
• phpMyAdminから・・・普段はこちらで良い。
http://localhost/phpmyadmin/
rootパスワードの変更
• Mysqladminコマンドでrootパスワードの設定
「test」と設定
→ $ mysqladmin password "test" -u root
パスワードの確認
$ mysql -u root –p
Enter password: **** ←「test」と打つ
mysql> ←プロンプトが出ればO.K.
C:¥xampp¥phpMyAdmin¥config
.inc.phpの変更
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg[‘Servers’][$i][‘password’] = 'test'; ←パ
スワードを書き込んでおく
データベースの作成・削除・確認
(コマンドは小文字も可)
• データベースの作成
CREATE DATABASE データベース名;
• データベースの削除
DROP DATABASE データベース名;
• データベース名の確認
SHOW DATABASES;
テーブルの作成・削除
• データベースを選択してから作る場合
USE データベース名;←データベースの選択
CREATE TABLE テーブル名 (フィールド名1 データ型, フィ
ールド名2 データ型, …,その他);
• データベース選択なしで作る場合
CREATE TABLE データベース名.テーブル名 (フィールド
名1 データ型, フィールド名2 データ型, …, その他);
• テーブルの削除・確認
DROP TABLE テーブル名;
SHOW TABLES (FROM データベース名);
フィールドのデータ型・属性等
• データ型
– 数値型・・・INT, DOUBLE等
– 日付・時刻型・・・DATE, TIMESTAMP等
– 文字列型・・・VARCHAR, TEXT等
• その他
– 主キーの指定: primary key(フィールド名)
– 自動インクリメント: auto_increment
注意!
• MySQLに格納されるデータ・・・UTF-8
C:¥xampp¥mysql¥bin¥my.incの変更
## UTF 8 Settings
#init-connect=¥'SET NAMES utf8¥'
collation_server=utf8_unicode_ci
character_set_server=utf8
skip-character-set-client-handshake
character_sets-dir="C:/xampp/mysql/share/charsets"
行頭の「#」を外し変更し,MySQLを再起動しておくこと。
phpMyAdminでSQL文を実行
• 以下は口頭の説明のみ(見て分かる人は試
してみること)
– データベースの作成・削除
– テーブルの作成
– データ検索
– データ更新
– データ削除
– データベースのバックアップ・リストア
練習
1. “prime_minister”というデータベースを作成せよ。
2. “japanese”テーブルを次のCREATE文を使って作
成せよ。
CREATE TABLE `japanese` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(32),
`yomigana` varchar(64),
PRIMARY KEY (`id`)
);
3. フィールド名,データ型指定が正しいかどうかを確
認せよ。
SHOW FIELDS FROM japanese(テーブル名);
データ追加・検索・更新・削除
• このSQL文を,PHPスクリプトに埋め込んで
発行させることになる。
• SQL文 ←→ PHPに埋め込まれた文字列
データ追加・・・INSERT
insert into テーブル名(フィールド名1, フィールド
名2, ...) values(データ 1, データ 2, ...)
例)「吉田茂(よしだしげる)」を追加
insert into japanese (name, yomigana)
values(' 吉田茂', ' よしだしげる');
データ更新・・・UPDATE
update テーブル名 set フィールド名1=' データ
1', フィールド名2=' データ 2', ... where フィー
ルド名='データ'
例) id=1 のデータを更新
update japanese set name=' 鳩山一郎',
name_yomi=' はとやま
いちろう' where id=1;
データ検索・・・SELECT
select フィールド名1, ... from テーブル名 (検索指
定)
(注) 全フィールドが対象であれば‘*’を指定
例) id=1 のデータを検索して表示
select * from japanese where id=1;
例) ”吉田”を含む文字列のデータを検索して表示
select name, yomigana from japanese like %吉
田%;
データ削除・・・DELETE
delete from テーブル名 where フィールド名='
データ'
例) id=1 のデータを削除
delete from japanese where id=1;
データベースのバックアップ・リストア
(コマンドラインの場合)
• mysqldumpコマンドを利用(大量のデータはリダイレクトを使用
してファイルに保存しておくこと)
• 全てSQL文として保存される(拡張子は.sqlにしておくと良い)
• データはUTF-8として保存される(今回の設定)
【特定のデータベースのみをバックアップ】
$ mysqldump データベース名 –u ユーザ名 –p > ファイル名
【全部のデータベースをバックアップ】
$ mysqldump ーーall-databases データベース名 –u ユーザ名 –p
> ファイル名
【リストア】・・・$ mysql –u ユーザ名 –p (データベース名)< ファイ
ル名
課題
• 戦後の総理大臣(首相官邸サイトにある)を
10名追加せよ。
• SQL文でバックアップを取り,内容が完全に
復元できることを確認せよ。
課題
1. 次の仕様のデータベース・テーブルを作成せ
よ。
– データベース名:twitter
– テーブル名: sample
– フィールド数:3
• INT id
• VARCHAR(32) username
• TEXT(256) message
2. 3つ以上のデータを追加せよ(内容は任意)。
3. SQL文でバックアップを取り,内容が完全に
復元できることを確認せよ。