私のSql -My Sql

3,201 views

Published on

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,201
On SlideShare
0
From Embeds
0
Number of Embeds
922
Actions
Shares
0
Downloads
8
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

私のSql -My Sql

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

×