2008/6/3 久米
前回までの復習
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 28 to server version: 4.0.x-nt Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> use kume; Database changed mysql> CREATE TABLE conveni( -> no INT PRIMARY KEY AUTO_INCREMENT, -> name VARCHAR(30), -> kind VARCHAR(30), -> price INT, -> date DATE, -> sales INT); Query OK, 0 rows affected (0.11 sec) mysql> desc conveni; +----------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+-------------+------+-----+---------+----------------+ | no | int(11) | | PRI | NULL | auto_increment | | name | varchar(30) | YES | | NULL | | | kind | varchar(30) | YES | | NULL | | | price | int(11) | YES | | NULL | | | date | date | YES | | NULL | | | sales | int(11) | YES | | NULL | | +----------+-------------+------+-----+---------+----------------+ 6 rows in set (0.01 sec) mysql> INSERT INTO conveni -> (name, kind, price, date, sales) -> VALUES -> ('ペロペロキャンディー', 'お菓子', 100, '2004/1/1', 1238); Query OK, 1 row affected (0.01 sec) mysql> INSERT INTO conveni -> (name, kind, price, date, sales) -> VALUES -> ('幕の内', 'お弁当', 1500, '2004/3/1', 24); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO conveni -> (name, kind, price, date, sales) -> VALUES -> ('天丼', 'お弁当', 1000, '2004/3/1', 96); Query OK, 1 row affected (0.00 sec) mysql> SELECT * FROM conveni; +------+----------------------+--------+-------+------------+----------+ | no | name | kind | price | date | sales | +------+----------------------+--------+-------+------------+----------+ | 1 | ペロペロキャンディー | お菓子 | 100 | 2004-01-01 | 1238 | | 2 | 幕の内 | お弁当 | 1500 | 2004-03-01 | 24 | | 3 | 天丼 | お弁当 | 1000 | 2004-03-01 | 96 | +------+----------------------+--------+-------+------------+----------+ 3 rows in set (0.01 sec) |
文法 | 例 | |
データ更新 |
UPDATE テーブル名 SET 列名=値 [,・・・] WHERE 検索条件; |
「幕の内は売れないので値下げしよう」 UPDATE conveni SET price=980, date='2004/5/1', sales=0 WHERE name='幕の内'; 「お弁当は一律100円引きで売りまくろう」 UPDATE conveni SET price=price-100, <---このようにプログラム文のように書くこともできます。 date='2004/5/1', sales=0 WHERE kind='お弁当'; |
上記例 テーブル conveni
no | name | kind | price | date | sales |
1 | ペロペロキャンディー | お菓子 | 100 | 2004/1/1 | 1238 |
2 | 幕の内 | お弁当 | 1500 | 2004/3/1 | 24 |
3 | 天丼 | お弁当 | 1000 | 2004/3/1 | 96 |
ここでは整数型の加減乗除のみ述べる。
整数型の平均や最大、および文字列型や日付型の演算はMySQLの関数を使用することもできる。
kind
|
例 | 備考 |
加算
|
SET 列1=列1+100 |
使用頻度高い |
減算
|
SET 列1=列1-100 | 使用頻度高い |
乗算
|
SET 列1=列1*100 | |
除算
|
SET 列1=列1/100 | |
他列値の
使用も可 |
SET 列1=列2+列3+列4 |
DELETE FROM テーブル名 WHERE 検索条件; |
例 「売上不振でお弁当は取り扱わないようにしよう」
文法 | 例 | |
データ削除 |
DELETE FROM テーブル名 WHERE 検索条件; |
「売上不振でお弁当は取り扱わないようにしよう」 DELETE FROM conveni WHERE kind='お弁当'; |
DELETE FROM conbini_shohin;
などとWHERE文を書かないと全ての行が削除されるので注意!
DELETE FROM conveni
WHERE kind='お弁当'; を実行したい場合、
SELECT * FROM conveni
WHERE kind='お弁当'; を実行してDELETEが適用される行を見てみる。
操作kind | 文法 | 例 |
列の追加 |
ALTER TABLE テーブル名 ADD 列名 データ型 [, ...]; |
ALTER TABLE conveni ADD zaiko INT, ADD seizomoto VARCHAR(12); |
列を削除 |
ALTER TABLE テーブル名 DROP 列名 [, ...]; |
ALTER TABLE conveni DROP zaiko, DROP seizomoto; |
列のデータ型変更 |
ALTER TABLE テーブル名 |
ALTER TABLE conveni |
列の名前、データ型を変更 | ALTER TABLE テーブル名 CHANGE 現列名 新列名 新データ型 新オプション; |
ALTER TABLE conveni CHANGE price zeikomiprice INT; |
テーブルの名前変更 | ALTER TABLE 現テーブル名 RENAME AS 新テーブル名; |
ALTER TABLE conveni RENAME AS conveniリスト; |
文法 | 例 | |
テーブル削除 |
DROP TABLE テーブル名; | DROP TABLE monster; |
SELECT時やUPDATE時などに使うと便利な関数
関数名 | 説明 | 例 |
LOWER(str) | すべて小文字に変換 | SELECT * FROM users WHERE LOWER(name)='abc'; |
GREATEST(X,Y,...) | 最も大きい引数 | UPDATE users SET rating=GREATEST(0, rating-16) WHERE id=38; |
ENCODE(str,pass_str) | 暗号化する。 | INSERT INTO users (name, password) VALUES ('太郎', ENCODE('336512','seed'))"; |
phpMyAdminはMySQLをGUIで管理できるツールです。ブラウザ型なので幅広く使用されています。
1. C:\Program Files\Apache Group\Apache2\htdocs\自分のフォルダ へフォルダ\phpMyAdminを作成する。
解凍したものすべてを上記フォルダに移動する。
2. phpMyAdmin\librariesの中にあるconfig.default.phpをphpMyAdmin直下にコピーし config.inc.phpとりネームし
最低限下記3点を変更する。。
$cfg['PmaAbsoluteUri'] = 'http://'.$_SERVER["HTTP_HOST"].'/自分のフォルダ/phpMyAdmin/';
$cfg['Servers'][$i]['password'] = 'root'; // rootのパスワードを記入。
$cfg['DefaultCharset'] = 'SHIFT_JIS';
(また下記の2箇所を変更しておくと、サーバマシンからのアクセスのみを許す設定になる。
サーバマシン以外からアクセスしたい場合は、これを元にもどし、apacheのアクセス権設定をする)
$cfg['Servers'][$i]['AllowDeny']['order'] // Host authentication order, leave blank to not use
= 'deny,allow';
$cfg['Servers'][$i]['AllowDeny']['rules'] // Host authentication rules, leave blank for defaults
= array(
'deny % from all',
'allow % from localhost'
);
3. http://localhost/自分のフォルダ/phpMyAdmin/にアクセスする。
4.表作成から行挿入、検索、行更新、行削除など試してみよう。
※読み取り先に、同じ名前のテーブルがあった場合、エラーになるので、削除しておくか、名前を変えておく。
注意)将来インターネットで操作する場合は、phpMyAdminにapacheでアクセス権をつけることを忘れないように。