削除の応用 桁を指定したり、値が大きい方から3番目までを指定するなどして削除の応用を学ぶ。 free74
Saturday,July,20,2013
商品一覧 sada_price sada_cate sada_count
木炭 Charcoal 525円 Pens and pencils 5
鉛筆 Pencil 105円 Pens and pencils 1
油絵具 Oil paint 400円 Paints 14
アクリル絵具 Acrylic paints 350円 Paints 8
筆 Brush 735円 Pens and pencils 2
キャンバス Canvas 3150円 Others 4
スケッチブック Sketchbook 2940円 Others 12
sada_cate
絵具 Paints
筆記具 Pens and pencils
その他 Others
///////////////////////ここまでの奮闘記は別記下に記載////////////////////////////
○テーブルの中身の表示 (sadachi_uriage)
mysql> select * from sadachika_shop.sadachi_uriage;
sada_name sada_price sada_cate sada_count
Charcoal 525 Pens and pencils 5 *対象項目
Pencil 105 Pens and pencils 1
Oil paint 400 Paints 14
Acrylic paints 350 Paints 8
Brush 735 Pens and pencils 2 *対象項目
Canvas 3150 Others 4
Sketchbook 2940 Others 12
7 rows in set (0.00 sec)
○○削除する桁数と並べ替え
「sada_cate」カラムの値が'Pens and pencils'のデータを対象に「sada_count」カラムの値が大きいものから2行のデータを削除してみます。
mysql> delete from sadachika_shop.sadachi_uriage where sada_cate = 'Pens and pencils' order by sada_count DESC limit 2; *削除対象を大きいものから2つに絞る。
↑カラム名 ↑削除対象の値 ↑*DESCを指定した場合は降順(大きい)
Query OK, 2 rows affected (0.02 sec)
ASCを指定した場合は昇順
DESCを指定した場合は降順
お手本 ASC DESC の指定が無い場合は値が小さいものからになるみたい。
「cate」カラムの値が'Fruit'のデータを対象に「sales」カラムの値が少ないものから3行のデータを削除する。
mysql> delete from uriage where cate = 'Fruit' order by sales limit 3;
○テーブルの中身の表示 (sadachi_uriage)
mysql> select * from sadachika_shop.sadachi_uriage;
sada_name sada_price sada_cate sada_count
*削除された
Pencil 105 Pens and pencils 1
Oil paint 400 Paints 14
Acrylic paints 350 Paints 8 *次の対象項目
*削除された
Canvas 3150 Others 4
Sketchbook 2940 Others 12
5 rows in set (0.00 sec)
○○削除する桁数と並べ替え
「sada_cate」カラムの値が'Paints'のデータを対象に「sada_count」カラムの値が小さいものから1行のデータを削除してみます。
mysql> delete from sadachika_shop.sadachi_uriage where sada_cate = 'Paints' order by sada_count ASC limit 1; *削除対象を小さいものから1つに絞る。
↑カラム名 ↑削除対象の値 ↑*ASCを指定した場合は昇順(小さい)
Query OK, 1 row affected (0.00 sec)
ASCを指定した場合は昇順
DESCを指定した場合は降順
○テーブルの中身の表示 (sadachi_uriage)
mysql> select * from sadachika_shop.sadachi_uriage;
sada_name sada_price sada_cate sada_count
Pencil 105 Pens and pencils 1
Oil paint 400 Paints 14 *次の対象項目
*削除された
Canvas 3150 Others 4
Sketchbook 2940 Others 12
4 rows in set (0.00 sec)
お手本 メモ 若干例2がよく分らないけれど、組み込めそうなのでメモ。
[例1]categoryカラムの値が'Fruit'のデータを10行分削除する
DELETE FROM uriage WHERE category = 'Fruit' LIMIT 10;
[例2]salesカラムの値が少ない順に5行分削除する
DELETE FROM uriage ORDER BY sales LIMIT 5;
○○削除する桁数と並べ替え カラムsada_count の値が13より大きければ削除する。
mysql> delete from sadachika_shop.sadachi_uriage where sada_count > 13;
Query OK, 1 row affected (0.03 sec)
お手本 [例2]countカラムの値が100より小さいデータを削除する
DELETE FROM uriage WHERE count < 100;
○テーブルの中身の表示 (sadachi_uriage)
mysql> select * from sadachika_shop.sadachi_uriage;
sada_name sada_price sada_cate sada_count
Pencil 105 Pens and pencils 1
*削除された
Canvas 3150 Others 4 *次の対象項目
Sketchbook 2940 Others 12 *次の対象項目
3 rows in set (0.00 sec)
○○指定して削除
mysql> delete from sadachika_shop.sadachi_uriage where sada_cate = 'Others';
Query OK, 2 rows affected (0.03 sec)
[例1]idカラムの値が10のデータを削除する
DELETE FROM uriage WHERE id = 10;
○テーブルの中身の表示 (sadachi_uriage)
mysql> select * from sadachika_shop.sadachi_uriage;
sada_name sada_price sada_cate sada_count
Pencil 105 Pens and pencils 1 *次の対象項目
*削除された
*削除された
1 row in set (0.00 sec)
○○単独での削除
mysql> delete from sadachika_shop.sadachi_uriage where sada_count = 1;
Query OK, 1 row affected (0.00 sec)
○テーブルの中身の表示 (sadachi_uriage)
mysql> select * from sadachika_shop.sadachi_uriage; *削除されたみたい
Empty set (0.00 set)
お手本をメモ
[例1]idカラムの値が10のデータを削除する
DELETE FROM uriage WHERE id = 10;
[例2]countカラムの値が100より小さいデータを削除する
DELETE FROM uriage WHERE count < 100;
[例3]全てのデータを削除する
DELETE FROM uriage;
応用おさらいメモ
ASCを指定した場合は昇順
DESCを指定した場合は降順
○○カラム名sada_count の小さい方から3件、50(50円クーポン)を引いて行く。
↓db名 ↓テーブル名 ↓変更するカラム名の値↓カラム名の値
mysql> update sadachika_shop.sadachi_uriage set sada_price = sada_price - 50
-> order by sada_count ASC limit 3; *カラム名sada_count の内、小さい方から3件を更新する。
↑*カラム名 ↑*ASCを指定した場合は昇順
○基本はこの品揃えがサンプルになります。
/////////////////////奮闘記////////////////////////////
商品一覧 sada_price sada_count
木炭 Charcoal 525円 2
鉛筆 Pencil 105円 1
油絵具 Oil paint 400円 14
アクリル絵具 Acrylic paints 350円 8
筆 Brush 735円 5
キャンバス Canvas 3150円 4
スケッチブック Sketchbook 2940円 12
○テーブルの中身の表示 (sadachi_uriage)
mysql> select * from sadachika_shop.sadachi_uriage;
sada_name sada_price sada_count
Charcoal 525 2 *対象品目475+50=525
Pencil 105 1 *対象品目 55+50=105
Oil paint 400 14
Acrylic paints 350 8
Brush 735 5
Canvas 3150 4 *対象品目3100+50=3150
Sketchbook 2940 12
7 rows in set (0.00 sec)
WHERE句は省略可能ですが、その場合はテーブル内の全てのデータが削除されます。
○カラムを後ろに、前に、位置を指定して追加する。 おさらいfree61
○テーブル(sadachi_uriage) へ、カテゴリーカラム(sada_cate)を追加する。
○指定したカラムの後に挿入する場合は「AFTER」の後にカラム名を指定する
mysql> ALTER TABLE tbl_name ADD [COLUMN] column_definition AFTER col_name;
mysql> ALTER TABLE sadachika_shop.sadachi_uriage ADD sada_cate varchar(20) AFTER sada_price;
○カラムの構造を見る
mysql> show columns from sadachika_shop.sadachi_uriage; *columns(新聞など印刷物の)縦の段; 欄.
Field Type Null Key Default Extra
sada_name varchar(20) YES UNI データなし *メモ ユニークキーが上書きの基準に使えます。基準値のカラムへは上書き出来ませんが、それ以外のカラムへは上書きします。
sada_price int(11) YES 0
sada_cate varchar(20) YES NULL *追加された。カラム名sada_cate VARCHAR(20)型
sada_count int(11) YES 0
○テーブルの中身の表示 (sadachi_uriage)
mysql> select * from sadachika_shop.sadachi_uriage;
sada_name sada_price sada_cate sada_count *カラム名sada_sate が増えた
Charcoal 525 NULL 2
Pencil 105 NULL 1
Oil paint 400 NULL 14
Acrylic paints 350 NULL 8
Brush 735 NULL 5
Canvas 3150 NULL 4
Sketchbook 2940 NULL 12
7 rows in set (0.00 sec)
○アップデート
絵具 Paints
筆記具 Pens and pencils
その他 Others
↓db名 ↓テーブル名 ↓カラム名 ↓更新・格納するデータ ↓基準カラムの桁となる
mysql> update sadachika_shop.sadachi_uriage set sada_cate = 'Pens and pencils' where sada_name = 'Charcoal';
Query OK, 1 row affected (0.09 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> update sadachika_shop.sadachi_uriage set sada_cate = 'Pens and pencils' where sada_name = 'Pencil';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> update sadachika_shop.sadachi_uriage set sada_cate = 'Paints' where sada_name = 'Oil paint';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> update sadachika_shop.sadachi_uriage set sada_cate = 'Paints' where sada_name = 'Acrylic paints';
Query OK, 1 row affected (0.02 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> update sadachika_shop.sadachi_uriage set sada_cate = 'Pens and pencils' where sada_name = 'Brush';
Query OK, 1 row affected (0.02 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> update sadachika_shop.sadachi_uriage set sada_cate = 'Others' where sada_name = 'Canvas';
Query OK, 1 row affected (0.02 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> update sadachika_shop.sadachi_uriage set sada_cate = 'Others' where sada_name = 'Sketchbook';
Query OK, 1 row affected (0.02 sec)
Rows matched: 1 Changed: 1 Warnings: 0
○テーブルの中身の表示 (sadachi_uriage)
mysql> select * from sadachika_shop.sadachi_uriage;
sada_name sada_price sada_cate sada_count *カラム名sada_sate が増えた
Charcoal 525 Pens and pencils 2 *アップデートを試みる
Pencil 105 Pens and pencils 1
Oil paint 400 Paints 14
Acrylic paints 350 Paints 8
Brush 735 Pens and pencils 5 *アップデートを試みる
Canvas 3150 Others 4
Sketchbook 2940 Others 12
7 rows in set (0.00 sec)
○アップデート カラムsada_name Charcoal桁のsada_countを2→5へ変更
mysql> update sadachika_shop.sadachi_uriage set sada_count = 5 where sada_name = 'Charcoal';
Query OK, 1 row affected (0.02 sec)
Rows matched: 1 Changed: 1 Warnings: 0
カラムsada_name Brush桁のsada_countを5→2へ変更
mysql> update sadachika_shop.sadachi_uriage set sada_count = 2 where sada_name = 'Brush';
Query OK, 1 row affected (0.02 sec)
Rows matched: 1 Changed: 1 Warnings: 0
○テーブルの中身の表示 (sadachi_uriage)
mysql> select * from sadachika_shop.sadachi_uriage;
sada_name sada_price sada_cate sada_count
Charcoal 525 Pens and pencils 5 *2→5へ変更された
Pencil 105 Pens and pencils 1
Oil paint 400 Paints 14
Acrylic paints 350 Paints 8
Brush 735 Pens and pencils 2 *5→2へ変更された
Canvas 3150 Others 4
Sketchbook 2940 Others 12
7 rows in set (0.00 sec)
free70.html←間違っているので訂正した
○アップデート
↓db名 ↓テーブル名 ↓カラム名 ↓更新するデータ ↓基準のカラムの桁
mysql> update sadachika_shop.sadachi_results set sada_name = '佐藤' where sada_name = '橘高';
mysql> update sadachika_shop.sadachi_results set sada_id = 4 where sada_id = 3;
mysql> update sadachika_shop.sadachi_results set sada_id = 3 where sada_id = 2;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
* 参考にしたサイトは→ こちら です。
これは赤色の文字例です。
これは青色の文字例です。