カラムに格納された値を表示させる時、
順番を入れ替えたり、項目を選んだりする練習を行なった。 free75
Sunday,July,21,2013
○特定のデータベース内のテーブルを表示させる
SHOW TABLES FROM sadachika_shop;
重複を許さない場合
VARCHAR型なら、unique その他のオプション default 'データなし';
INT型なら、primary key
↓db名 ↓テーブル名 ↓カラム ↓INT型(数字)↓プライマリー設定(重複を許さない) ↓NULL時の表示 又はデフォルト値(データなし)
mysql> create table sadachika_shop.sadachi_personal(sada_id int primary key, sada_old int, sada_name varchar(10) default 'データなし');
Query OK, 0 rows affected (0.19 sec)
おさらい
○アップデート やり方No,2 ユニークキーの設定をしているので、その箇所を基準に上書きを行ないます。値を入力する
mysql> insert into sadachika_shop.sadachi_uriage values('Charcoal', 525, 2) *重複していれば上書きを行なう。そうでなければ全カラムへ新規で値を格納する。 省略文である。
-> on duplicate key update sada_price=sada_price+values(sada_price), sada_count=sada_count+values(sada_count); *values(sada_price)は、525を表している。values(sada_count)は、2を表している。入力すべきカラムの値を参照している
○数式が入れているのがまずいんだな。じゃあ取っ払らってやれ!
○アップデート やり方No,2 ユニークキーの設定をしているので、その箇所を基準に上書きを行ないます。値を入力する
mysql> insert into sadachika_shop.sadachi_uriage values('Charcoal', 525, 2) *重複していれば上書きを行なう。そうでなければ全カラムへ新規で値を格納する。 省略文である。
-> on duplicate key update sada_price=values(sada_price), sada_count=values(sada_count); *values(sada_price)は、525を表している。values(sada_count)は、2を表している。入力すべきカラムの値を参照している
○カラムの構造を見る
mysql> show columns from sadachika_shop.sadachi_personal;
Field Type Null Key Default Extra
sada_id int(11) NO PRI NULL *Key項目はPRI、プライマリーにすると自動的にNULL(データなし)が無効になるんだね。そりゃNULLを許すと重複するものね
sada_old int(11) YES NULL
sada_name varchar(20) YES データなし *Defaultは'データなし'へと設定された。
3 rows in set (0.03 sec)
sada_id sada_old sada_name
1 31 佐藤
2 19 鈴木
3 25 坂本
4 22 橘高
5 36 松本
6 40 北島
7 41 長谷川
○入力アップデート (もしも同じ値が合った場合上書きする設定)
mysql> insert into sadachika_shop.sadachi_personal values(1, 31, '佐藤')
-> on duplicate key update sada_id=values(sada_id), sada_old=values(sada_old), sada_name=values(sada_name);
↑もしも同じ値があったらカラム(sada_id)参照上書き
Query OK, 1 row affected (0.33 sec)
○テーブルの中身の表示 (sadachi_personal)
mysql> select * from sadachika_shop.sadachi_personal;
sada_id sada_old sada_name
1 31 佐藤
1 row in set (0.13 sec)
上書きテストします。
○入力アップデート (もしも同じ値が合った場合上書きする設定)
mysql> insert into sadachika_shop.sadachi_personal values(1, 31, '佐藤')
-> on duplicate key update sada_id=values(sada_id), sada_old=values(sada_old), sada_name=values(sada_name);
↑もしも同じ値があったらカラム(sada_id)参照上書き
Query OK, 0 row affected (0.03 sec)
○テーブルの中身の表示 (sadachi_personal)
mysql> select * from sadachika_shop.sadachi_personal;
sada_id sada_old sada_name
1 31 佐藤
1 row in set (0.03 sec)
○値の入力(連続入力)(全入力のため省略文)
mysql> insert into sadachika_shop.sadachi_personal values(2, 19, '鈴木'), (3, 25, '坂本'), (4, 22, '橘高'), (5, 36, '松本'),
(6, 40, '北島'), (7, 41, '長谷川');
Query OK, 6 rows affected (0.03 sec)
Records: 6 Duplicates: 0 Warnings: 0
○テーブルの中身の表示 (sadachi_personal)
mysql> select * from sadachika_shop.sadachi_personal; *全てのカラムの値を取得する場合には、カラム名の代わりに「*」を記述する
sada_id sada_old sada_name
1 31 佐藤
2 19 鈴木
3 25 坂本
4 22 橘高
5 36 松本
6 40 北島
7 41 長谷川
7 rows in set (0.00 sec)
○カラム名の順番を入れ替えてテーブルの中身を表示させる (sadachi_personal)
mysql> select sada_id, sada_name, sada_id, sada_old from sadachika_shop.sadachi_personal; *sada_idを2回用いて、sada_nameを前に持ってきた。
↑1回目 ↑順番入れ替え ↑2回使用している
sada_id sada_name sada_id sada_old *2回用いたり、順番が入れ替わっている
1 佐藤 1 31
2 鈴木 2 19
3 坂本 3 25
4 橘高 4 22
5 松本 5 36
6 北島 6 40
7 長谷川 7 41
7 rows in set (0.00 sec)
○カラム名を選択してテーブルの中身を表示させる (sadachi_personal)
mysql> select sada_id, sada_name from sadachika_shop.sadachi_personal; *カラムを2項目だけ選んで表示。
sada_id sada_name
1 佐藤
2 鈴木
3 坂本
4 橘高
5 松本
6 北島
7 長谷川
7 rows in set (0.00 sec)
* 参考にしたサイトは→ こちら です。
これは赤色の文字例です。
これは青色の文字例です。