データの更新、アップデート free71
Friday,July,19,2013
20%OFFとかに使えそうな感じですね。
割引クーポンにも応用できそう。
例、商品一覧
木炭 Charcoal 525円
鉛筆 Pencil 105円
油絵具 Oil paint 400円
アクリル絵具 Acrylic paints 350円
筆 Brush 735円
○特定のデータベース内のテーブルを表示させる
SHOW TABLES FROM sadachika_shop;
○テーブルを作る ↓データベース名 ↓テーブル名
mysql> create table sadachika_shop.sadachi_uriage(sada_name varchar(20), sada_price int, sada_count int);
*カラム名sada_name VARCHAR型, カラム名sada_price INT型, カラム名sada_count INT型
Query OK, 0 rows affected (0.08 sec)
○入力 全てのカラムに値を格納するので省略文を用いた。*全カラムへ値を格納するので入力は省略文を使い、1回で格納をすませる。
mysql> insert into sadachika_shop.sadachi_uriage values('Charcoal', 525, 2), ('Pencil', 105, 1), ('Oil paint', 420, 14), ('Acrylic paints', 365, 8), ('Brush', 735, 9);
Query OK, 5 rows affected (0.06 sec)
Records: 5 Duplicates: 0 Warnings: 0
○テーブルの中身の表示 (sadachi_uriage)
mysql> select * from sadachika_shop.sadachi_uriage;
sada_name sada_price sada_count
Charcoal 525 2
Pencil 105 1
Oil paint 420 14
Acrylic paints 365 8
Brush 735 9
5 rows in set (0.00 sec)
○値をアップデート
「sada_name」カラムの値が'木炭Charcoal'のデータの「sada_price」カラムの値段を420に変更する。
mysql> update sadachika_shop.sadachi_uriage set sada_price = 420 where sada_name = 'Charcoal';
Query OK, 1 rows affected (0.03 sec)
Rows matched: 1 Changed: 1 Warnings: 0
○値をアップデート
「sada_name」カラムの値が'鉛筆 Pencil'のデータの「sada_count」カラムの値に9を追加します。sada_countの合計を10にする
mysql> update sadachika_shop.sadachi_uriage set sada_count = sada_count + 9 where sada_name = 'Pencil';
Query OK, 1 rows affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
○テーブルの中身の表示 (sadachi_uriage)
mysql> select * from sadachika_shop.sadachi_uriage;
sada_name sada_price sada_count
Charcoal 420 2 *140に変更
Pencil 105 10 *1 + 9 = 10 10へ変更
Oil paint 420 14
Acrylic paints 365 8
Brush 735 9
5 rows in set (0.00 sec)
○値をアップデート
「sada_count」カラムの値が10以下のデータに対して「sada_price」カラムの値から0.20(80%OFF)を掛けます。
mysql> update sadachika_shop.sadachi_uriage set sada_price = sada_price * 0.20 where sada_count <= 10;
Query OK, 4 rows affected (0.03 sec)
Rows matched: 4 Changed: 4 Warnings: 0
○テーブルの中身の表示 (sadachi_uriage)
mysql> select * from sadachika_shop.sadachi_uriage;
sada_name sada_price sada_count
Charcoal 84 2 *80%OFF
Pencil 21 10 *80%OFF
Oil paint 420 14 *10以上は対象外
Acrylic paints 73 8 *80%OFF
Brush 147 9 *80%OFF
5 rows in set (0.00 sec)
○値をアップデート
「sada_count」カラムの値が10以下のデータに対して「sada_price」カラムの値から50(50円のクーポン)を引きます。
mysql> update sadachika_shop.sadachi_uriage set sada_price = sada_price - 50 where sada_count <= 10;
Query OK, 4 rows affected (0.03 sec)
Rows matched: 4 Changed: 4 Warnings: 0
○テーブルの中身の表示 (sadachi_uriage)
mysql> select * from sadachika_shop.sadachi_uriage;
sada_name sada_price sada_count
Charcoal 34 2 *84 - 50 = 34
Pencil -29 10 *21 - 50 = -29
Oil paint 420 14 *10以上は対象外
Acrylic paints 23 8 *73 - 50 = 23
Brush 97 9 *147 - 50 = 97
5 rows in set (0.00 sec)
○値をアップデート
元に戻す。「sada_count」カラムの値が10以下のデータに対して「sada_price」カラムの値から50を足す。
mysql> update sadachika_shop.sadachi_uriage set sada_price = sada_price + 50 where sada_count <= 10;
○テーブルの中身の表示 (sadachi_uriage)
mysql> select * from sadachika_shop.sadachi_uriage;
sada_name sada_price sada_count
Charcoal 84 2 * 34 + 50 = 84
Pencil 21 10 *-29 + 50 = 21
Oil paint 420 14 *10以上は対象外
Acrylic paints 73 8 * 23 + 50 = 73
Brush 147 9 * 97 + 50 = 147
5 rows in set (0.00 sec)
○値をアップデート
全てのデータに対して「sada_price」カラムと「sada_count」カラムの0に設定します。
mysql> update sadachika_shop.sadachi_uriage set sada_price = 0, sada_count = 0;
Query OK, 5 rows affected (0.03 sec)
Rows matched: 5 Changed: 5 Warnings: 0
○テーブルの中身の表示 (sadachi_uriage)
mysql> select * from sadachika_shop.sadachi_uriage;
sada_name sada_price sada_count
Charcoal 0 0
Pencil 0 0
Oil paint 0 0
Acrylic paints 0 0
Brush 0 0
5 rows in set (0.00 sec)
お手本メモ
[例1]idカラムの値が10のデータのpriceカラムの値を1000に設定する
UPDATE uriage SET price = 1000 WHERE id = 10;
[例2]countカラムの値が100より小さいデータのpriceカラムの値を半分に設定する
UPDATE uriage SET price = price / 2 WHERE count < 100;
[例3]全てのデータのcountカラムの値を0にし、priceカラムの値を0に設定する
UPDATE uriage SET count = 0, price = 0;
* 参考にしたサイトは→ こちら です。
これは赤色の文字例です。
これは青色の文字例です。