・今日の清掃は昨日と同様に海岸側を歩きました。
天気が良かったせいか、人が多かった。
・コマンドラインから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 件のコメント:
コメントを投稿