67
私私 SQL MySQL (+ PHP 私私私私id:stick23r d Twtitter/st iq

私のSql -My Sql

  • Upload
    stiq-2e

  • View
    1.847

  • Download
    5

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: 私のSql -My Sql

私の SQL - MySQL (+ PHP をすこし)

id:stick23rdTwtitter/stiq

Page 2: 私のSql -My Sql

今日、やること 0. Abstract 1. MySQL ダウンロード&インストール&

設定 2. SQL 文の超基本 3. MySQL と PHP の連携 4. ブログっぽいものをつくる

Page 3: 私のSql -My Sql

こんなのができます。

Page 4: 私のSql -My Sql

上級生、既に M y SQL が入っている人へ

今回は、 UTF-8 で M y SQL を設定します。 文字コードとかは、若干違うので注意 文字コードの確認は、“ SHOW VARIABLES

LIKE ‘char%’;” で、できます。 Cp932 などで入っている人は、データ

ベースを作るときに、 SET NAMES utf8 などをつけるなどして、対処するようお願いいたします。

Page 5: 私のSql -My Sql

1.MySQL のダウンロード&インストール&設定

Page 6: 私のSql -My Sql

MySQL ダウンロード http://dev.mysql.com/downloads/mys

ql/5.0.html#win32 にアクセスして下さい。

Page 7: 私のSql -My Sql

MySQL ダウンロード

赤丸のところをクリック

Page 8: 私のSql -My Sql

MySQL ダウンロード

Page 9: 私のSql -My Sql

MySQL ダウンロード

適当なところに zip ファイルをダウンロードする。

Page 10: 私のSql -My Sql

MySQL インストール Zip ファイルを解答して、できたフォルダ

の中にある Setup.exe をクリック

Page 11: 私のSql -My Sql

MySQL インストール

Page 12: 私のSql -My Sql

展開されるところ(下線)を注意して、 Next→Install を押してください。

Page 13: 私のSql -My Sql

しばらくお待ちください

Page 14: 私のSql -My Sql

インストールができると上の画面が出てくるので、「 Next 」。次の画面も「 Next 」で。

Page 15: 私のSql -My Sql

インストールができました!そのまま「 Finish 」を押します。

Page 16: 私のSql -My Sql

MySQL の初期設定 引き続き MySQL の設定をします。

Page 17: 私のSql -My Sql

M y SQL の初期設定 デフォルト(最初の設定)のまま、

「 Next 」を押し続けてください。

Page 18: 私のSql -My Sql
Page 19: 私のSql -My Sql

文字コード(言語)の設定 大事なところ!! PHP では、 UTF-8 を選択したので、こっ

ちも UTF- 8を選択します!

Page 20: 私のSql -My Sql

Windows にパスを入れる設定 赤丸のところに、チェックを入れて、

「 Next 」を押します。

Page 21: 私のSql -My Sql

パスワードの設定 Root (なんでも設定する権利をもつユー

ザ)のパスワードを設定します。 同じものを 2 回入れます。 このパスワードは忘れないでください!

Page 22: 私のSql -My Sql

設定の確認→実行

Page 23: 私のSql -My Sql

MySQL の確認 以上で、インストールと設定は終わりです。 正しく、インストールできているか、確

認します。 ここでは、同時に、 MySQL の立ち上げ方

も覚えます。

Page 24: 私のSql -My Sql

コマンドプロンプトを立ち上げます。 「ウィンドウズキー+ R 」→「“ cmd” と入

力して OK 」 「すべてのプログラム」→「アクセサ

リ」→「コマンド プロンプト」

Page 25: 私のSql -My Sql

MySQL を立ち上げる “mysql –u root –p” と入力して、「 Ente

r 」 先ほど設定したパスワードを入れます。

Page 26: 私のSql -My Sql

MySQL の確認 以下のように、メッセージが出てくれば、

正しく MySQL が入っています。 終わるときは、’ \q’ または’ exit’ と入力す

ると終了します。

Page 27: 私のSql -My Sql

うまくいかなかったら、その辺にいる人たちに聞きまわってください。

できた人は、先週の PHP の課題の復習などをしておいてください。

次から、第 2 章 SQL の基本になります。

Page 28: 私のSql -My Sql

データベースの超基本 データベース( DB )って何?

データを保存しておく場所。貯めておくところ。

Excel をイメージすると良いかもしれません。 今あるおおよそのシステムは、データベース

とコンピュータ・ Web のやりとりで、できています。

Page 29: 私のSql -My Sql

なぜデータベース? Web アプリで一番大変なところは、ファイル

からデータを持ってくるところ 実は、プログラムからファイルを読み書きす

るととても大変! 一度限りしか使えない! データをいろいろと複雑に処理したい!

→ これをいろいろ解決してくれるのが、 DB !

Page 30: 私のSql -My Sql

Kwsk データの独立性:データの構造が変わってもプログラ

ムからは独立しているので、プログラムの修正が必要ない。また、どのプログラムからも利用できること。

データの一貫性:複数のユーザーが同時にデータを操作できること。また、同時に変更や削除した場合でも、データに矛盾が発生することなく利用できること。

データの整合性:データの重複が発生しないこと。 データの機密性:データベースへアクセスするユーザ

ーを制御できること。 データの障害対策:データベースに何らかの障害がお

こった場合でも、回復するための手段をもつこと。 SQL 文の標準化

Page 31: 私のSql -My Sql

MySQL って何? 実際のデータベースを含んで、操作したり、

管理することができるツール 操作する命令文→ SQL 文 同じようなものに、 Oracle 、 PostgreSQL 、 D

B2 などなど

Page 32: 私のSql -My Sql

データベースと Excel

ブック(ファイル) → データベース

シート → テーブル、表

Excel の列 → フィールドExcel の行 → レコード

Page 33: 私のSql -My Sql

データベースを表示してみる SHOW DATABACES;→ エンター

Page 34: 私のSql -My Sql

MySQL のお約束 MySQL をコマンドプロンプトで使うとき

は、必ず最後に、” ;” をつけて、 Enter で命令が実行できます。

長い命令文のときは、 Enter で次の行にいくなど、適宜見やすくしてください。

>SHOW DATABASES; >SHOW >DATABASES;

Page 35: 私のSql -My Sql

MySQL の大文字と小文字 MySQL の本を見ると、命令にあたるところ( SQL

文)や型(数字とか文字型とか、後で解説)は大文字で、自分でつくる DB や表、フィールドは小文字で書いてあることが多いです。

今回もそれに習います。・・・が、今回教える人は、そうではないので、あまりつっこまないでね。

ただ、 Windows では、 MySQL は大文字小文字の区別はありません。 TEST=test

MAC や UNIX だと違うかも・・・。 TEST≠text

Page 36: 私のSql -My Sql

データベースを作る→使う CREATE DATABASE データベース名 ;

SHOW DATABASES; で増えているか確認 USE データベース名 ; で、そのデータベ

ースを使う

Page 37: 私のSql -My Sql

テーブルを作る いままでので、データベース( Excel でい

うところのファイル)ができました。 これからは、テーブル( Excel でのシー

ト)をつくり、フィールド(一番上の名前、学籍番号とかの項目)を設定します。

SQL は、これをひとまとめにしてやります。

Page 38: 私のSql -My Sql

試しに、これと同じようなものをデータベースで作ってみましょう。

ID 名前 学籍番号 年齢 視力1 abc 70910001 19 1.52 xyz 70910010 20 2.03 うーうー 70910023 21 0.34 えーえー 70910040 20 0.5

表: student

Page 39: 私のSql -My Sql

ただし・・・ MySQL では、項目(フィールド)の名前に日本語を

使うと、上手く扱えないことがよくあります。 なので、フィールドは英語に直して使いましょう。

ID name studenet_id age eyesight1 abc 70910001 19 1.52 xyz 70910010 20 2.03 うーうー 70910023 21 0.34 えーえー 70910040 20 0.5

Page 40: 私のSql -My Sql

テーブルの作成 これと同じように入力してください。 改行は Enter で、できます。

Page 41: 私のSql -My Sql

さっきのテーブル作成の解説 フィールドの属性 それぞれの項目には、

データの型が決まっている。

ID name student_id age eyesight1 abc 70910001 19 1.52 xyz 70910010 20 2.03 うーうー 70910023 21 0.34 えーえー 70910040 20 0.5

整数型

文字型

小数型

Page 42: 私のSql -My Sql

フィールドの属性いろいろ例 フィールドの性質 型ID 、学籍番号

整数のみのフィールド

INT (整数)、 BIGINT(長い桁( 10 の 19 乗くらい)の整数)

視力、身長

小数がある数値のフィールド

FLOAT (小数点 8 桁くらい)DOUBLE (それ以上の精度)

名前、テキスト

文字列が入るフィールド

CHAR 、 VARCHARTEXT

日付 日付が入るフィールド

DATATIME (年 -月 - 日 時間 :分 :秒)

TIMESTUMPDATE (年 -月 - 日)

Page 43: 私のSql -My Sql

フィールドのサイズ指定 フィールドで指定するときは、型のサイズも一

緒にしています。(数字型は指定しなくても良い、文字型は必須)

varchar(50)なら、文字列 50 文字まで(最大 255 文字まで) char と varchar

char は固定長、 varchar は可変長 つまり、 char(8) としたところに、’ abcd’ と入れると、

DB には、’ abcd____‘ と入っていて、スペースと容量の無駄! varchar(8) にすると、空気を読んでくれます。

Page 44: 私のSql -My Sql

プライマリーキー プライマリーキーとは?

重複を許さない項目のこと ひとつのレコード(行)に、プライマリーキーをつける

ことで、単一に特定できる 逆に、表からプライマリーキーを指定することで、レコ

ードを特定できる。 テーブルをつくるときに、項目の後ろに書く。

ID name studenet_id age eyesight1 abc 70910001 19 1.52 xyz 70910010 20 2.03 うーうー 70910023 21 0.34 えーえー 70910040 20 0.5

Page 45: 私のSql -My Sql

もういっかい、 CREATE 文 CREATE TABLE 表の名前(  フィールド 1 の名前  その型 PRIMARY KEY, フィールド 2 の名前 その型 , ・・・ );

CREATE TABLE menber( id INT PRIMARY KEY, name varchar(50),);

Page 46: 私のSql -My Sql

テーブルにデータを追加! INSERT INTO  テーブル名 VALUES( 値

1, 値 2 ) ;

数値はそのまま、文字列は’’で囲みます。

Page 47: 私のSql -My Sql

同じようにしてデータを追加

日本語を打つときは、 Alt キー+半角 /全角キーで、打てます。

ID name studenet_id age eyesight1 abc 70910001 19 1.52 xyz 70910010 20 2.03 うーうー 70910023 21 0.34 えーえー 70910040 20 0.5

Page 48: 私のSql -My Sql

データの挿入 もちろん、主キー( PRIMARY KEY )を設

定したので、同じ ID を入れようとすると怒られます。

Page 49: 私のSql -My Sql

日本語が、ggg・・・ あれ?日本語を入れるとエラー

実はこれ、文字コードの問題

Page 50: 私のSql -My Sql

文字コード 文字の情報もすべては、 0 と 1 でできてい

る。 文字コードとは、文字を表示するためのル

ール

Page 51: 私のSql -My Sql

文字コード 日本語だと、

ISO-2022-JP EUC-JP Shift_JIS UTF-8 UTF-16 などなど

文字コードが異なると、人間が読み取ることができない、→文字化け

ブラウザで、上手く表示ができない残念なときの例のアレ

Page 52: 私のSql -My Sql

今回は・・・ 設定で、’ UTF-8’ で設定します。 しかし、コマンドプロンプトから入力す

るときは、 cp932 ( Shift-JIS の Windows独自の拡張版)なので、文字コードが違うことになる。

MySQL に、この辺、どーにかしろと、命令する必要がある。

Page 53: 私のSql -My Sql

文字コード解決 SET NAMES cp932;

これによる、 MySQL に今使っている文字コードが、 cp932 と伝えてやります。

これで、データを挿入すると、日本語も入ります。

Page 54: 私のSql -My Sql

疲れた・・・ 以上、ここまで長々と説明が多かったです

が、ここからは、どんどん作ります。

あと、説明が淡白になってきますが、わからなかったら、聞いてください。

Page 55: 私のSql -My Sql

データを見る SELECT * from student;

SELECT id,name from student;

Page 56: 私のSql -My Sql

データの更新 UPDATE テーブル名 変更するフィルード

名 = 変更する値 [WHERE 条件式 ];

Page 57: 私のSql -My Sql

データの消去 DELETE FROM テーブル名 [WHERE 条件式 ];

Id=2 の人が消えました。

Page 58: 私のSql -My Sql

WHERE句 SELECT,UPDATE とか DELETE の後ろに

つける、条件式 =,>,<,>=( 以上) ,<= (以

下) ,<> (相違) AND ( A も B も) ,OR ( A または

B ) ,NOT ( A でないとき) 目の良い人( eyesight > 1.0) をメガネに

します。

Page 59: 私のSql -My Sql

自由自在に表示できます。

Page 60: 私のSql -My Sql

演習のじかん 自由に、データベースを作ってみて、扱っ

てみてください。

Page 61: 私のSql -My Sql

PHP と MySQL の連携 GRANT  -ユーザの追加

Root で接続するのは、安全上良くない データベースごとに個別のユーザを割り当て

る。

もう一度、入りなおしてみましょう。

Page 62: 私のSql -My Sql

PHP と MySQL の連携 mysql_connect( サーバ名 , ユーザ名 , パ

スワード );

mysql_select_db( テーブル名 , 変数 ){

Page 63: 私のSql -My Sql

<?php$my_Con = mysql_connect("localhost","stiq",“123456");

if($my_Con == false){die("MYSQL の接続に失敗しました。 ");

}else{print " 接続成功! ";

}

if(mysql_select_db("cooking", $my_Con)){print "cooking データベースの選択成功! ";

} else {die(" データベースの選択に失敗しました。 ");

}?>

Page 64: 私のSql -My Sql

クエリ(命令文の実行) mysql_query(SQL 命令文 , 接続してきたも

の変数 );

連想配列で、結果が返ってきます。

Page 65: 私のSql -My Sql

<?php

$my_Row = mysql_query("SELECT * FROM student", $my_Con);if(!$my_Row){

die(mysql_error());}while($row = mysql_fetch_array($my_Row)){

print $row["id"];print $row["name"];print $row["studenet_id"];print $row["age"];print $row["eyesight"];print "<br />";

}?>

Page 66: 私のSql -My Sql

演習 同じようにして、 UPDATE,DELETE 文も

作れます。

Page 67: 私のSql -My Sql

CRUD

CRUD とは、データベース管理システム( DBRS )に必要とされる 4 つの主要な機能、「作成( Create )」「読み出し( Read )」「更新( Update )」「削除( Delete )」をそれぞれ頭文字で表したものです。

これが、上手く使えるようになれば、たいていの Web アプリケーションは作れるようになります。