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文でバックアップを取り,内容が完全に 復元できることを確認せよ。
© Copyright 2024 Paperzz