私の SQL  - MySQL (+ PHP をすこし) id:stick23rd Twtitter/stiq
今日、やること 0. Abstract 1. MySQL ダウンロード&インストール&設定 2. SQL 文の超基本 3. MySQL と PHP の連携 4.  ブログっぽいものをつくる
こんなのができます。
上級生、既に M y SQL が入っている人へ 今回は、 UTF-8 で M y SQL を設定します。 文字コードとかは、若干違うので注意 文字コードの確認は、“ SHOW VARIABLES LIKE ‘char%’;” で、できます。 Cp932 などで入っている人は、データベースを作るときに、 SET NAMES utf8 などをつけるなどして、対処するようお願いいたします。
1.MySQL のダウンロード&インストール&設定
MySQL ダウンロード http://dev.mysql.com/downloads/mysql/5.0.html#win32 にアクセスして下さい。
MySQL ダウンロード 赤丸のところをクリック
MySQL ダウンロード
MySQL ダウンロード 適当なところにzipファイルをダウンロードする。
MySQL インストール Zip ファイルを解答して、できたフォルダの中にある Setup.exe をクリック
MySQL インストール
展開されるところ(下線)を注意して、Next->Installを押してください。
しばらくお待ちください
インストールができると上の画面が出てくるので、「Next」。次の画面も「Next」で。
インストールができました! そのまま「 Finish 」を押します。
MySQL の初期設定 引き続き MySQL の設定をします。
M y SQL の初期設定 デフォルト(最初の設定)のまま、「Next」を押し続けてください。
 
文字コード(言語)の設定 大事なところ!! PHPでは、UTF-8を選択したので、こっちもUTF-8を選択します!
Windowsにパスを入れる設定 赤丸のところに、チェックを入れて、 「Next」を押します。
パスワードの設定 Root(なんでも設定する権利をもつユーザ)のパスワードを設定します。 同じものを2回 入れます。 このパスワード は忘れないで ください!
設定の確認->実行
MySQL の確認 以上で、インストールと設定は終わりです。 正しく、インストールできているか、確認します。 ここでは、同時に、 MySQL の立ち上げ方も覚えます。
コマンドプロンプトを立ち上げます。 「ウィンドウズキー+ R 」->「“ cmd” と入力して OK 」 「すべてのプログラム」->「アクセサリ」->「コマンド プロンプト」
MySQL を立ち上げる “ mysql –u root –p”  と入力して、「 Enter 」 先ほど設定したパスワードを入れます。
MySQL の確認 以下のように、メッセージが出てくれば、正しく MySQL が入っています。 終わるときは、’ \q’ または’ exit’ と入力すると終了します。
うまくいかなかったら、その辺にいる人たちに聞きまわってください。 できた人は、先週のPHPの課題の復習などをしておいてください。 次から、第2章 SQLの基本になります。
データベースの超基本 データベース(DB)って何? データを保存しておく場所。貯めておくところ。 Excelをイメージすると良いかもしれません。 今あるおおよそのシステムは、データベースとコンピュータ・Webのやりとりで、できています。
なぜデータベース? Webアプリで一番大変なところは、ファイルからデータを持ってくるところ 実は、プログラムからファイルを読み書きするととても大変! 一度限りしか使えない! データをいろいろと複雑に処理したい! ->これをいろいろ解決してくれるのが、DB!
Kwsk データの独立性: データの構造が変わってもプログラムからは独立しているので、プログラムの修正が必要ない。また、どのプログラムからも利用できること。   データの一貫性: 複数のユーザーが同時にデータを操作できること。また、同時に変更や削除した場合でも、データに矛盾が発生することなく利用できること。   データの整合性: データの重複が発生しないこと。  データの機密性: データベースへアクセスするユーザーを制御できること。  データの障害対策: データベースに何らかの障害がおこった場合でも、回復するための手段をもつこと。  SQL 文の標準化
MySQL って何? 実際のデータベースを含んで、操作したり、管理することができるツール 操作する命令文-> SQL 文 同じようなものに、 Oracle 、 PostgreSQL 、 DB2 などなど
データベースとExcel ブック(ファイル) -> データベース シート -> テーブル、表 Excel の列 -> フィールド Excel の行 -> レコード
データベースを表示してみる SHOW DATABACES;->エンター
MySQL のお約束 MySQL をコマンドプロンプトで使うときは、必ず最後に、” ;” をつけて、 Enter で命令が実行できます。 長い命令文のときは、 Enter で次の行にいくなど、適宜見やすくしてください。 >SHOW DATABASES; >SHOW  >DATABASES;
MySQL の大文字と小文字 MySQL の本を見ると、命令にあたるところ( SQL 文)や型(数字とか文字型とか、後で解説)は 大文字 で、自分でつくる DB や表、フィールドは 小文字 で書いてあることが多いです。 今回もそれに習います。 ・・・が、今回教える人は、そうではないので、あまりつっこまないでね。 ただ、 Windows では、 MySQL は大文字小文字の区別はありません。 TEST=test MAC や UNIX だと違うかも・・・。 TEST≠text
データベースを作る->使う CREATE DATABASE データベース名; SHOW DATABASES;で増えているか確認 USE データベース名;で、そのデータベースを使う
テーブルを作る いままでので、データベース(Excelでいうところのファイル)ができました。 これからは、テーブル(Excelでのシート)をつくり、フィールド(一番上の名前、学籍番号とかの項目)を設定します。 SQLは、これをひとまとめにしてやります。
試しに、これと同じようなものをデータベースで作ってみましょう。 表: student
ただし・・・ MySQL では、項目(フィールド)の名前に日本語を使うと、上手く扱えないことがよくあります。 なので、フィールドは英語に直して使いましょう。
テーブルの作成 これと同じように入力してください。 改行はEnterで、できます。
さっきのテーブル作成の解説 フィールドの属性 それぞれの項目には、データの型が決まっている。 整数型 文字型 小数型
フィールドの属性いろいろ DATATIME (年 - 月 - 日 時間 : 分 : 秒) TIMESTUMP DATE (年 - 月 - 日) 日付が入るフィールド 日付 CHAR 、 VARCHAR TEXT 文字列が入るフィールド 名前、テキスト FLOAT (小数点 8 桁くらい) DOUBLE (それ以上の精度) 小数がある数値のフィールド 視力、身長 INT (整数)、 BIGINT (長い桁( 10 の 19 乗くらい)の整数) 整数のみのフィールド ID 、学籍番号 型 フィールドの性質 例
フィールドのサイズ指定 フィールドで指定するときは、型のサイズも一緒にしています。(数字型は指定しなくても良い、文字型は必須) varchar(50) なら、文字列 50 文字まで(最大 255 文字まで) char と varchar char は固定長、 varchar は可変長 つまり、 char(8) としたところに、’ abcd’ と入れると、 DB には、’ abcd____‘ と入っていて、スペースと容量の無駄!  varchar(8) にすると、空気を読んでくれます。
プライマリーキー プライマリーキーとは? 重複を許さない項目のこと ひとつのレコード(行)に、プライマリーキーをつけることで、単一に特定できる 逆に、表からプライマリーキーを指定することで、レコードを特定できる。 テーブルをつくるときに、項目の後ろに書く。
もういっかい、 CREATE 文 CREATE TABLE  表の名前(   フィールド 1 の名前  その型  PRIMARY KEY, フィールド 2 の名前 その型 , ・・・ ); CREATE TABLE menber( id INT PRIMARY KEY, name varchar(50), );
テーブルにデータを追加! INSERT INTO テーブル名 VALUES(値1, 値2); 数値はそのまま、文字列は’’で囲みます。
同じようにしてデータを追加 日本語を打つときは、 Alt キー+半角 / 全角キーで、打てます。
データの挿入 もちろん、主キー(PRIMARY KEY)を設定したので、同じIDを入れようとすると怒られます。
日本語が、ggg・・・ あれ?日本語を入れるとエラー 実はこれ、 文字コード の問題
文字コード 文字の情報もすべては、0と1でできている。 文字コードとは、文字を表示するためのルール
文字コード 日本語だと、 ISO-2022-JP EUC-JP Shift_JIS UTF-8 UTF-16   などなど 文字コードが異なると、人間が読み取ることができない、-> 文字化け   ブラウザで、上手く表示ができない残念なときの例のアレ
今回は・・・ 設定で、’ UTF-8’ で設定します。 しかし、コマンドプロンプトから入力するときは、 cp932 ( Shift-JIS の Windows 独自の拡張版)なので、文字コードが違うことになる。 MySQL に、この辺、どーにかしろと、命令する必要がある。
文字コード解決 SET NAMES cp932; これによる、 MySQL に今使っている文字コードが、 cp932 と伝えてやります。 これで、データを挿入すると、日本語も入ります。
疲れた・・・ 以上、ここまで長々と説明が多かったですが、ここからは、どんどん作ります。 あと、説明が淡白になってきますが、わからなかったら、聞いてください。
データを見る SELECT * from student; SELECT id,name from student;
データの更新 UPDATE テーブル名 変更するフィルード名 = 変更する値 [WHERE 条件式];
データの消去 DELETE FROM テーブル名 [WHERE 条件式]; Id=2の人が消えました。
WHERE句 SELECT,UPDATEとかDELETEの後ろにつける、条件式 =,>,<,>=(以上),<=(以下),<>(相違) AND(AもBも),OR(AまたはB),NOT(Aでないとき) 目の良い人(eyesight > 1.0)をメガネにします。
自由自在に表示できます。
演習のじかん 自由に、データベースを作ってみて、扱ってみてください。
PHP と MySQL の連携 GRANT -ユーザの追加 Rootで接続するのは、安全上良くない データベースごとに個別のユーザを割り当てる。 もう一度、入りなおしてみましょう。
PHP と MySQL の連携 mysql_connect( サーバ名 ,  ユーザ名 ,  パスワード ); mysql_select_db( テーブル名 ,  変数 ){
<?php $my_Con = mysql_connect(&quot;localhost&quot;,&quot;stiq&quot;,“123456&quot;); if($my_Con == false){ die(&quot;MYSQL の接続に失敗しました。 &quot;); }else{ print &quot; 接続成功! &quot;; } if(mysql_select_db(&quot;cooking&quot;, $my_Con)){ print &quot;cooking データベースの選択成功! &quot;; } else { die(&quot; データベースの選択に失敗しました。 &quot;); } ?>
クエリ(命令文の実行) mysql_query(SQL 命令文 ,  接続してきたもの変数 ); 連想配列で、結果が返ってきます。
<?php $my_Row = mysql_query(&quot;SELECT * FROM student&quot;, $my_Con); if(!$my_Row){ die(mysql_error()); } while($row = mysql_fetch_array($my_Row)){ print $row[&quot;id&quot;]; print $row[&quot;name&quot;]; print $row[&quot;studenet_id&quot;]; print $row[&quot;age&quot;]; print $row[&quot;eyesight&quot;]; print &quot;<br />&quot;; } ?>
演習 同じようにして、UPDATE,DELETE文も作れます。
CRUD CRUDとは、データベース管理システム(DBRS)に必要とされる4つの主要な機能、「作成(Create)」「読み出し(Read)」「更新(Update)」「削除(Delete)」をそれぞれ頭文字で表したものです。 これが、上手く使えるようになれば、たいていのWebアプリケーションは作れるようになります。

私のSql -My Sql