Webデザイン特別プログラムデータベース実習編 3 MySQL 演習, phpmyadmin 静岡理工科大学総合情報学部幸谷智紀 http://na-inet.jp/
RDB の基礎の基礎 RDB(Relational DataBase) はデータを集合として扱う データの取り扱いはテーブル (= 集合 ) の演算 ( 和集合, 積集合 ) と同じ データベースには複数のテーブルを作ることができる meibo_table テーブル (table) 名 id name 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 文でバックアップを取り, 内容が完全に復元できることを確認せよ