・今日の清掃は昨日と同様に海岸側を歩きました。
天気が良かったせいか、人が多かった。
・コマンドラインからmysqlを起動し、日本語入力できるように設定。
> SET NAMES sjis;
・日本語が入力できるようになったので、日本語データを入れてみます。
> insert into address (name, kana,address1,address2,tel,update_) values ("織田 信長", 'オダノブナガ',"愛知","名古屋市中区","054-222-6000","2010/12/23");
・テーブルの追加
部署テーブル ID(主キー) 部署名 更新日 > create table unit (id int not null auto_increment, unit_name text, update_ date, primary key (id));
役職テーブル ID(主キー) 役職名 更新日 > create table post (id int not null auto_increment, post_ text, update_ date, primary key (id));
mysqlの予約語と重なるとカラム名がエラーになる?
> mysql> create table unit (id int not null auto_increment,
> -> unit_name text,
> -> update date,
> -> primary key (id));
> ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your
> MySQL server version for the right syntax to use near 'update date,
> primary key (id))' at line 3
・部署テーブルのデータ作成
テキストエディタでinsert文をまとめて「busyo.sql」で保存、ファイルを実行する。
mysqlが見つけられるように、ファイルを置く場所(フォルダ)は、mysqlクライアントを起動したフォルダです。
> source busyo.sql;
但し、このときファイルはsjisで保存しておく。
phpのファイル用にutf8にすると文字化けする。
・コマンド実行パスの設定
環境変数pathにmysqlのパスを追加する。
・テーブル結合のためのデータ準備
show columns from address;
show columns from post;
show columns from unit;
まず、アドレス帳に部署IDと役職IDを追加する。
> alter table address add post_id int;
> alter table address add unit_id int;
次にIDを設定する。
update address set post_id=1,unit_id=1 where number=1;
・テーブルの結合
(select * from address,unit where address.unit_id=unit.id ;)
select address.number, address.name, address.unit_id, unit.unit_name from address,unit where address.unit_id=unit.id ;・省略形での記述
select ta.number, ta.name, ta.unit_id, tb.unit_name from address ta,unit tb where ta.unit_id=tb.id ;
・役職テーブルを結合する。
select address.number, address.name, address.unit_id, address.post_id, unit.unit_name, post.post_ from address,unit,post where address.unit_id=unit.id and address.post_id = post.id ;同様に省略形
select ta.number, ta.name, ta.unit_id, ta.post_id, tb.unit_name, tc.post_ from address ta,unit tb,post tc where ta.unit_id=tb.id and ta.post_id = tc.id ;
・テーブルの確認
desc テーブル名
show create table テーブル名
・PHPからmysqlに接続する。
//mysql に接続する $db = mysql_connect('localhost','user','pass'); // データベースを選択する $sdb = mysql_select_db('study'); // クエリを送信する $sql = "select * from address ;"; $result = mysql_query($sql); // 結果の取得 print "<pre>" ; while ($row = mysql_fetch_array($result)){ print_r ($row); } print "</pre>" ;・実行結果
Array ( [0] => 5 [number] => 5 [1] => 織田 信長 [name] => 織田 信長 [2] => オダノブナガ [kana] => オダノブナガ [3] => 愛知 [address1] => 愛知 [4] => 名古屋市中区 [address2] => 名古屋市中区 [5] => 054-222-6000 [tel] => 054-222-6000 [6] => 2010-12-23 [update_] => 2010-12-23 [7] => [post_id] => [8] => [unit_id] => )
明日以降の予定
- phpからsql文でアクセスした結果を見やすくする。
- サンプルのデータを作る。(データ件数を多くする予定)
- データが多い場合のパフォーマンス測定方法などを紹介。
0 件のコメント:
コメントを投稿