09 06/23 PHP と SQL (MySQL) の連携 その3

Slides:



Advertisements
Similar presentations
1 PHP プログラムの実行(まと め) 担当 岡村耕二 月曜日 2限 平成 22 年度 情報科学 III (理系コア科目・2年生) 本資料の一部は、堀良彰准教授、天野浩文准教授、菅沼明 准教授等による以前の講義資料をもとにしています。
Advertisements

図書系のための アプリケーション開発講習会 2008年7月31日
SQL データベースアクセスのための文法 担当 岡村耕二 月曜日 2限 平成20年度 情報科学III (理系コア科目・2年生)
SQLite3
情報理工学部 情報システム工学科 ラシキアゼミ 3年 H 井奈波 和也
PostGIS - 1 (入門編).
情報理工学部 情報システム工学科 3年 H 井奈波 和也
SQL データベースアクセスのための文法と MySQL
PHP 文法 担当 岡村耕二 月曜日 2限 平成22年度 情報科学III (理系コア科目・2年生)
知的システム構築工房   Linux設定セミナーシリーズ 第6回 MySQL設定 2011年3月17日(木) 株式会社 アセンディア 1.
name the color of each rectangle.
3-1 MySQLについて 発表者:藤村元彦 自然言語処理研究室.
MySQLに接続するデータベースプログラム
「・・・に~を○○する」の 文章を使ってみよう!
PHPエディタによる 情報システム演習 01.
6-2 データベース 1.SQLite SQLを単純化した SQLite を使ってデータベースを操作 表「fruit」
技術トピックス 2015/03.
SQL J2EE I 第3回 /
PHP 概要 担当 岡村耕二 月曜日 2限 平成21年度 情報科学III (理系コア科目・2年生)
情報通信システム(12) plala. or 情報通信システム(12) 年7月19日 火曜日  午後4時10分~5時40分 NTT-IT Corp. 加藤 洋一.
3-2.データを取り出す 2004年 5月20日(木) 01T6074X 茂木啓悟.
PHP 概要 担当 岡村耕二 月曜日 2限 平成20年度 情報科学III (理系コア科目・2年生)
09 06/23 PHP と SQL (MySQL) の連携 その2
(B2) 親: minami, kazuki 多様な認証機器に対応する 認証システム (B2) 親: minami, kazuki.
パフォーマンスチューニング on Rails
情報通信システム(12) plala. or 情報通信システム(12) 年7月25日 火曜日  午後4時10分~5時40分 NTT-TX Corp. 加藤 洋一.
14.テーブル定義,一対多の関係,多対多の関係, 外部キー,索引(インデックス),データベース操作
table 'results' SELECT name, teacher FROM results;
データベース設計 第9回 Webインタフェースの作成(1)
マイクロソフト Access での SQL 演習 第1回 SQL問い合わせ(クエリ)
データベースとJavaをつなげよう! ~JDBC~
データベース基礎 2016年3月10日 JWord株式会社 サービス開発部 中川 陽平.
2004/05/13 3-4 データ型(カラムタイプ) について 発表者:藤村元彦 自然言語処理研究室.
SQL パフォーマンス チューニング ~ カバーリングインデックス/クエリヒントの利用~
ネットワークプログラミング論 平成28年12月26日 森田 彦.
SQL 概要 担当 岡村耕二 月曜日 2限 平成21年度 情報科学III (理系コア科目・2年生)
SQL データベースアクセスのための文法 担当 岡村耕二 月曜日 2限 平成21年度 情報科学III (理系コア科目・2年生)
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
3-10. MySQLシステムの管理  2004年6月10日  大北高広                01T6010F.
第1回.リレーショナルデータベースを使ってみよう
第1回.リレーショナルデータベースを使ってみよう
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
SQL パフォーマンス チューニング ~ プランガイドの利用~
情報通信システム(12) plala. or 情報通信システム(12) 年7月17日 火曜日  午後4時10分~5時40分 NTT-TX Corp. 加藤 洋一.
第3回.テーブルの結合 結合条件 SQL を用いた結合問い合わせ.
第3回.テーブルの結合 結合条件 SQL を用いた結合問い合わせ.
PHP と SQL (MySQL) の連携 複数のテーブルを扱う
09 06/23 PHP と SQL (MySQL) の連携 その1
3-6.インデックスについて 3-7.関数と併用されることの 多いMySQLコマンド
3-3.テーブルを更新する 2004年 4月22日(木) 01T6074X 茂木啓悟.
コンピュータ概論B ー ソフトウェアを中心に ー #09 データベース (後編)
講義ノート共有データベース NoteTotter?
テーブル設計を後から変更 現場で使える小技のご紹介 株式会社ジーワンシステム 生島 勘富(イクシマ サダヨシ)
09 06/23 PHP と SQL (MySQL) の連携 その2
ネットワークプログラミング論 平成28年12月19日 森田 彦.
データベース設計 第8回 クライアント=サーバーモデル(2)
PHP と SQL (MySQL) の連携 大量のデータを扱う
掛下 哲郎 データベースII 第2回 掛下 哲郎
PHP 概要 担当 岡村耕二 月曜日 2限 平成22年度 情報科学III (理系コア科目・2年生)
3-8・関数を使ってデータを取り出す   2004年6月3日(木) 01T6010F               大北高広.
3.リレーショナルデータベース,主キー, SQL
JDBC ソフトウェア特論 第3回.
再帰CTE を使って遊ぼう 大阪#9 2012/04/14.
関係データベースとSQL MZ Platform講習会(上級).
PHP と SQL (MySQL) の連携 日本語のデータを扱う
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
第1回.リレーショナルデータベースを使ってみよう
SQL J2EE I (データベース論) 第3回 /
情報通信システム(12) plala. or 情報通信システム(12) 年7月23日 火曜日  午後4時10分~5時40分 NTT-TX Corp. 加藤 洋一.
SQL データベース論 第11回.
Presentation transcript:

09 06/23 PHP と SQL (MySQL) の連携 その3 平成21年度 情報科学III (理系コア科目・2年生) 09 06/23 PHP と SQL (MySQL) の連携 その3 担当 岡村耕二 月曜日 2限 http://okaweb.ec.kyushu-u.ac.jp/lectures/jk3/ 本資料の一部は、堀良彰准教授、天野浩文准教授等による 以前の講義資料をもとにしています。

演習問題 テーブルのカラムとして 商品名 価格 色 重さ   を、用意し、「商品名」で検索し、「色」「重さ」はオプションで表示できるようなプログラムを作成せよ。 テーブル1 テーブル2 テーブル3 を用意して、「商品名」で検索して、「価格」「色」「重さ」が表示されるプログラムを作成せよ。

テーブルの作成 mysql> create table table090706p (name char(32), price char(32)); mysql> create table table090706c (name char(32), color char(32)); mysql> create table table090706w (name char(32), weight char(32));

データ投入 mysql> insert into table090706p set name="book", price="1000"; mysql> insert into table090706p set name="pen", price="100"; mysql> insert into table090706p set name="cd", price="3000"; mysql> insert into table090706p set name="dvd", price="4000"; mysql> insert into table090706c set name="book", color="black"; mysql> insert into table090706c set name="pen", color="red"; mysql> insert into table090706c set name="pen", color="green"; mysql> insert into table090706c set name="pen", color=“blue"; mysql> insert into table090706c set name="cd", color="silver"; mysql> insert into table090706c set name="dvd", color="silver"; mysql> insert into table090706w set name="book", weight="100"; mysql> insert into table090706w set name="pen", weight="10"; mysql> insert into table090706w set name="cd", weight="5"; mysql> insert into table090706w set name="dvd", weight="5";

検索例 mysql> select * from table090706p join table090706c, table090706w; ………. | dvd | 4000 | cd | silver | pen | 10 | | book | 1000 | dvd | silver | pen | 10 | | pen | 100 | dvd | silver | pen | 10 | | cd | 3000 | dvd | silver | pen | 10 | | dvd | 4000 | dvd | silver | pen | 10 | | book | 1000 | book | black | cd | 5 | | pen | 100 | book | black | cd | 5 | | cd | 3000 | book | black | cd | 5 | | dvd | 4000 | book | black | cd | 5 | | book | 1000 | pen | red | cd | 5 | | pen | 100 | pen | red | cd | 5 | | cd | 3000 | pen | red | cd | 5 | | dvd | 4000 | pen | red | cd | 5 | | book | 1000 | pen | green | cd | 5 | | pen | 100 | pen | green | cd | 5 | | cd | 3000 | pen | green | cd | 5 | | dvd | 4000 | pen | green | cd | 5 | | book | 1000 | pen | blue | cd | 5 | | pen | 100 | pen | blue | cd | 5 | | cd | 3000 | pen | blue | cd | 5 | | dvd | 4000 | pen | blue | cd | 5 | | book | 1000 | cd | silver | cd | 5 | | pen | 100 | cd | silver | cd | 5 | | cd | 3000 | cd | silver | cd | 5 | | dvd | 4000 | cd | silver | cd | 5 | | book | 1000 | dvd | silver | cd | 5 | | pen | 100 | dvd | silver | cd | 5 | | cd | 3000 | dvd | silver | cd | 5 | | dvd | 4000 | dvd | silver | cd | 5 | +------+-------+------+--------+------+--------+ 96 rows in set (0.00 sec)

検索例 mysql> select * from table090706p join table090706c, table090706w on table090706p.name=table090706c.name and table090706p.name=table090706w.name; +------+-------+------+--------+------+--------+ | name | price | name | color | name | weight | | dvd | 4000 | dvd | silver | dvd | 5 | | book | 1000 | book | black | book | 100 | | pen | 100 | pen | red | pen | 10 | | pen | 100 | pen | green | pen | 10 | | pen | 100 | pen | blue | pen | 10 | | cd | 3000 | cd | silver | cd | 5 |

検索例 +------+-------+--------+--------+ mysql> select table090706p.name,table090706p.price,table090706c.color,table090706w.weight from table090706p join table090706c, table090706w on table090706p.name=table090706c.name and table090706p.name=table090706w.name; +------+-------+--------+--------+ | name | price | color | weight | | dvd | 4000 | silver | 5 | | book | 1000 | black | 100 | | pen | 100 | red | 10 | | pen | 100 | green | 10 | | pen | 100 | blue | 10 | | cd | 3000 | silver | 5 |

検索例 +------+-------+-------+--------+ mysql> select table090706p.name, table090706p.price,table090706c.color, table090706w.weight from table090706p join table090706c, table090706w on table090706p.name=table090706c.name and table090706p.name=table090706w.name where table090706p.name = "pen"; +------+-------+-------+--------+ | name | price | color | weight | | pen | 100 | red | 10 | | pen | 100 | green | 10 | | pen | 100 | blue | 10 | 3 rows in set (0.00 sec)

データベースで数字を扱って見る。 mysql> create table table090706pp (name char(32), price int); mysql> create table table090706ww (name char(32), weight int); mysql> insert into table090706pp set name="book", price=1000; mysql> insert into table090706pp set name="pen", price=100; mysql> insert into table090706pp set name="cd", price=3000; mysql> insert into table090706pp set name="dvd", price=4000; mysql> insert into table090706ww set name="book", weight=100; mysql> insert into table090706ww set name="pen", weight=10; mysql> insert into table090706ww set name="cd", weight=5; mysql> insert into table090706ww set name="dvd", weight=5;

検索例 mysql>select table090706pp.name, table090706pp.price, table090706c.color, table090706ww.weight from table090706pp join table090706c, table090706ww on table090706pp.name=table090706c.name and table090706pp.name=table090706ww.name; +------+-------+--------+--------+ | name | price | color | weight | | book | 1000 | black | 100 | | pen | 100 | red | 10 | | pen | 100 | green | 10 | | pen | 100 | blue | 10 | | cd | 3000 | silver | 5 | | dvd | 4000 | silver | 5 | 6 rows in set (0.00 sec)

検索例: 価格が2000以下の商品を検索 mysql> select table090706pp.name, table090706pp.price, table090706c.color, table090706ww.weight from table090706pp join table090706c, table090706ww on table090706pp.name=table090706c.name and table090706pp.name=table090706ww.name where table090706pp.price <= 2000; +------+-------+-------+--------+ | name | price | color | weight | | book | 1000 | black | 100 | | pen | 100 | red | 10 | | pen | 100 | green | 10 | | pen | 100 | blue | 10 | 4 rows in set (0.00 sec)

検索例: 価格が2000以下で、重さが50以上のものを検索 mysql> select table090706pp.name, table090706pp.price, table090706c.color, table090706ww.weight from table090706pp join table090706c, table090706ww on table090706pp.name=table090706c.name and table090706pp.name=table090706ww.name where table090706pp.price <= 2000 and table090706ww.weight >= 50; +------+-------+-------+--------+ | name | price | color | weight | | book | 1000 | black | 100 | 1 row in set (0.00 sec)

練習問題 商品、価格、販売店、販売店距離のデータがあるとき 価格で商品を選択できるプログラムを作成せよ 例:100円以下とか 販売店の距離で選択できるプログラムを作成せよ 例:500m以内とか 価格と販売店の距離両方の条件を選択できるプログラムを作成せよ。 例:200円以下で距離が1000m以内 注意 普通、全部の販売店で同じ商品があるわけではないと思いますので、そのあたり注意して設計してください。 まず、SQL で動作を確認すること

演習問題 課題を各人考えてきてください。 課題の仕様の条件 データーベースを2つ以上使用して、組み合わて(join を使って)検索ができること。 いままで、講義で出なかったような内容を考えてみてください。(名簿系、価格系以外) 7/13(最終講義)では、各人、講義で課題の説明(プログラムはできている必要はない。もちろん、できていてもいい。)をしてもらいます。 データベースの設計 Web での見え方、PHP の設計 不足分は必要に応じて修正してもらい、最終課題に取り組んでもらいます。