削除の応用 桁を指定したり、値が大きい方から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
* 参考にしたサイトは→ こちら です。
これは赤色の文字例です。
これは青色の文字例です。