データの更新、アップデート 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;




* 参考にしたサイトは→ こちら です。

これは赤色の文字例です。

これは青色の文字例です。