おさらい、格納した値をアップデート。
さらに新しいカラムを追加し構造も編集する。それを新しい値へアップデート。 free80

Thursday,July,25,2013

○テーブルの中身の表示 
mysql> select * from sadachika_shop.sadachi_products;
sada_id    sada_name     sada_category
1          牛乳             飲み物
2          たこ焼き         食べ物
3          りんご           果物
4          ワイン           飲み物
5          ピザ             食べ物
6          ブドウ           果物 
7          にんじん         野菜
8          コーラ           飲み物
9          牛丼             食べ物
10         キューイフルーツ 果物
11         ほうれん草       野菜
12         ビール           飲み物
13         天丼             食べ物
1          牛乳             Drink
2          たこ焼き         Food
3          りんご           Fruit
4          ワイン           Drink
5          ピザ             Food
6          ブドウ           Fruit 
7          にんじん         Vegetables
8          コーラ           Drink
9          牛丼             Food
10         キューイフルーツ Fruit
11         ほうれん草       Vegetables
12         ビール           Drink
13         天丼             Food

○○カラムを追加する。追加したカラムは、既存のテーブルの最後に追加される
ALTER TABLE tbl_name ADD [COLUMN] column_definition;
ALTER TABLE sadachika_shop.sadachi_products ADD sada_price int;
Query OK, 0 rows affected (0.34 sec)
Records: 0 Duplicates: 0 Warnings: 0
ALTER TABLE sadachika_shop.sadachi_products ADD sada_releasedate date;
Query OK, 0 rows affected (0.06 sec)
Records: 0 Duplicates: 0 Warnings: 0

○テーブルの中身の表示 
mysql> select * from sadachika_shop.sadachi_products;
sada_id    sada_name     sada_category    sada_price    sada_releasedate
1          牛乳             飲み物              NULL    NULL
2          たこ焼き         食べ物              NULL    NULL
3          りんご           果物                NULL    NULL
4          ワイン           飲み物              NULL    NULL
5          ピザ             食べ物              NULL    NULL
6          ブドウ           果物                NULL    NULL
7          にんじん         野菜                NULL    NULL
8          コーラ           飲み物              NULL    NULL
9          牛丼             食べ物              NULL    NULL
10         キューイフルーツ 果物                NULL    NULL
11         ほうれん草       野菜                NULL    NULL
12         ビール           飲み物              NULL    NULL
13         天丼             食べ物              NULL    NULL
1          牛乳             Drink               NULL    NULL
2          たこ焼き         Food                NULL    NULL
3          りんご           Fruit               NULL    NULL
4          ワイン           Drink               NULL    NULL
5          ピザ             Food                NULL    NULL
6          ブドウ           Fruit               NULL    NULL
7          にんじん         Vegetables          NULL    NULL
8          コーラ           Drink               NULL    NULL
9          牛丼             Food                NULL    NULL
10         キューイフルーツ Fruit               NULL    NULL
11         ほうれん草       Vegetables          NULL    NULL
12         ビール           Drink               NULL    NULL
13         天丼             Food                NULL    NULL

○アップデート
                     ↓db名       ↓テーブル名    ↓カラム名   ↓更新するデータ        ↓基準のカラムの桁
mysql> update sadachika_shop.sadachi_results set sada_name = '佐藤' where sada_name = '橘高';
                                                                                       ↓カラムへ格納後には年号に表示される
mysql> update sadachika_shop.sadachi_products set sada_price = 198, sada_releasedate = 10131018 where sada_name = '牛乳' and sada_category = '飲み物';
mysql> update sadachika_shop.sadachi_products set sada_price = 100, sada_releasedate = 10120725 where sada_name = 'たこ焼き' and sada_category = '食べ物';
mysql> update sadachika_shop.sadachi_products set sada_price = 100, sada_releasedate = 10120725 where sada_name = 'たこ焼き';
Query OK, 1 row affected (0.00 sec)
Rows matched: 2 Changed: 1 Warnings: 0
mysql> update sadachika_shop.sadachi_products set sada_price = 150, sada_releasedate = 10130108 where sada_name = 'りんご' and sada_category = '果物';
mysql> update sadachika_shop.sadachi_products set sada_price = 250, sada_releasedate = 10130312 where sada_name = 'ワイン' and sada_category = '飲み物';
mysql> update sadachika_shop.sadachi_products set sada_price = 450, sada_releasedate = 10110503 where sada_name = 'ピザ' and sada_category = '食べ物';
mysql> update sadachika_shop.sadachi_products set sada_price = 300, sada_releasedate = 10130716 where sada_name = 'ブドウ' and sada_category = '果物';
mysql> update sadachika_shop.sadachi_products set sada_price = 35, sada_releasedate = 10130317 where sada_name = 'にんじん' and sada_category = '野菜';
mysql> update sadachika_shop.sadachi_products set sada_price = 98, sada_releasedate = 10120521 where sada_name = 'コーラ' and sada_category = '飲み物';
mysql> update sadachika_shop.sadachi_products set sada_price = 350, sada_releasedate = 10110225 where sada_name = '牛丼' and sada_category = '食べ物';
mysql> update sadachika_shop.sadachi_products set sada_price = 160, sada_releasedate = 10130919 where sada_name = 'キューイフルーツ' and sada_category = '果物';
mysql> update sadachika_shop.sadachi_products set sada_price = 145, sada_releasedate = 10130425 where sada_name = 'ほうれん草' and sada_category = '野菜';
mysql> update sadachika_shop.sadachi_products set sada_price = 220, sada_releasedate = 10120701 where sada_name = 'ビール' and sada_category = '飲み物';
mysql> update sadachika_shop.sadachi_products set sada_price = 460, sada_releasedate = 10130625 where sada_name = '天丼' and sada_category = '食べ物';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

○テーブルの中身の表示 
mysql> select * from sadachika_shop.sadachi_products;
sada_id    sada_name        sada_category     sada_price     sada_releasedate
1          牛乳             飲み物                   198     1013-10-18
2          たこ焼き         食べ物                   100     1012-07-25
3          りんご           果物                     150     1013-01-08
4          ワイン           飲み物                   250     1013-03-12
5          ピザ             食べ物                   450     1011-05-03
6          ブドウ           果物                     300     1013-07-16
7          にんじん         野菜                      35     1013-03-17
8          コーラ           飲み物                    98     1012-05-21
9          牛丼             食べ物                   350     1011-02-25
10         キューイフルーツ 果物                     160     1013-09-19
11         ほうれん草       野菜                     145     1013-04-25
12         ビール           飲み物                   220     1012-07-01
13         天丼             食べ物                   460     1013-06-25
1          牛乳             Drink                    NULL    NULL*対象項目
2          たこ焼き         Food                     100     1012-07-25
3          りんご           Fruit                    NULL    NULL
4          ワイン           Drink                    NULL    NULL*対象項目
5          ピザ             Food                     NULL    NULL
6          ブドウ           Fruit                    NULL    NULL 
7          にんじん         Vegetables               NULL    NULL
8          コーラ           Drink                    NULL    NULL*対象項目
9          牛丼             Food                     NULL    NULL*対象項目
10         キューイフルーツ Fruit                    NULL    NULL
11         ほうれん草       Vegetables               NULL    NULL
12         ビール           Drink                    NULL    NULL
13         天丼             Food                     NULL    NULL

○削除する 「sada_category」カラムの値が'Drink'のデータを対象に「sada_id」カラムの値が小さいものから3行のデータを削除する。
ASCを指定した場合は昇順
DESCを指定した場合は降順
mysql> delete from sadachika_shop.sadachi_products where sada_category = 'Drink' order by sada_id ASC limit 3; *削除対象を小さいものから3つに絞る
Query OK, 3 rows affected (0.03 sec)
delete from sadachika_shop.sadachi_products where sada_category = 'Drink';
Query OK, 1 rows affected (0.01 sec)
delete from sadachika_shop.sadachi_products where sada_category = 'Food';
Query OK, 4 rows affected (0.00 sec)
delete from sadachika_shop.sadachi_products where sada_category = 'Fruit';
Query OK, 3 rows affected (0.00 sec)
delete from sadachika_shop.sadachi_products where sada_category = 'Vegetables';
Query OK, 2 rows affected (0.00 sec)

○テーブルの中身の表示 
mysql> select * from sadachika_shop.sadachi_products;
sada_id    sada_name        sada_category  sada_price    sada_releasedate
1          牛乳             飲み物                198    1013-10-18
2          たこ焼き         食べ物                100    1012-07-25
3          りんご           果物                  150    1013-01-08
4          ワイン           飲み物                250    1013-03-12
5          ピザ             食べ物                450    1011-05-03
6          ブドウ           果物                  300    1013-07-16
7          にんじん         野菜                   35    1013-03-17
8          コーラ           飲み物                 98    1012-05-21
9          牛丼             食べ物                350    1011-02-25
10         キューイフルーツ 果物                  160    1013-09-19
11         ほうれん草       野菜                  145    1013-04-25
12         ビール           飲み物                220    1012-07-01
13         天丼             食べ物                460    1013-06-25

○カラムの構造を表示する
show columns from sadachika_shop.sadachi_products;
Field             Type         Null   Key    Default    Extra
sada_id           int(11)      YES           NULL
sada_name         varchar(20)  YES           NULL                 
sada_category     varchar(20)  YES           NULL                 
sada_price        int(11)      YES           NULL                  
sada_releasedate  date         YES           NULL                 *カラム名sada_releasedate DATE型 数字を入力すると、年号として格納される。                       
3 rows in set (0.13 sec)

○カラム定義だけを変更する。INT型はprimary VARCHAR型にはunique 設定を施す事で重複の値を許可しないように出来る。
mysql> alter table sadachika_shop.sadachi_products modify sada_id int(11) not null primary key;  *プライマリーキー設定、データ無しを許可しない設定。*名前だけ変更するのであってもあわせて型を入力する。
Query OK, 0 rows affected (0.17 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> show columns from sadachika_shop.sadachi_products;
Field             Type         Null   Key    Default    Extra
sada_id           int(11)      NO     PRI    NULL                 *Key項目がPRIに変わった
sada_name         varchar(20)  YES           NULL                 
sada_category     varchar(20)  YES           NULL                 
sada_price        int(11)      YES           NULL                  
sada_releasedate  date         YES           NULL                 *カラム名sada_releasedate DATE型 数字を入力すると、年号として格納される。                       
3 rows in set (0.13 sec)


おさらいメモ
○カラム定義だけを変更する
mysql> alter table sadachika_shop.sadachi_food modify hirayama_id smallint;
                                                       ↑対象のカラム ↑*変更したい型を入力する  {元はINT型 not null(データ無しを許さない)} → SMALLINT型へ変更を行なう
○カラム名の変更、データ型の変更
mysql> alter table sadachika_shop.sadachi_food change sada_id hirayama_id int not null; *名前だけ変更するのであってもあわせて型を入力する。
                                                       ↑旧カラム名   ↑新しく変更するカラム名(hirayama_id)

おさらいメモ。ユニークキーに設定すれば、この文も使用できるようになる。
○ON DUPLICATE KEY UPDATE句を使用して、重複する値の上書き格納を行なう
mysql> insert into sadachika_shop.sadachi_sales select hira_name, hira_count from sadachika_shop.hiraya_yamaguchisales 
    -> on duplicate key update sada_count=sada_count+values(sada_count);
                                   ↑本家    ↑本家         ↑本家

○カラムの先頭に表示する場合は「FIRST」
ALTER TABLE tbl_name ADD [COLUMN] column_definition FIRST;
ALTER TABLE sadachika_shop.sadachi_food ADD hirayama_cate int FIRST; *細かい設定を入れようとしたんだが出来ないdefault 'none'とか

○指定したカラムの後に挿入する場合は「AFTER」の後にカラム名を指定する
ALTER TABLE tbl_name ADD [COLUMN] column_definition AFTER col_name;
ALTER TABLE sadachika_shop.sadachi_food ADD hirayama_cate int AFTER hirayama_id;

○カラム削除
ALTER TABLE tbl_name DROP [COLUMN] col_name;
mysql> alter table sadachika_shop.sadachi_food drop column hirayama_cate;


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

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

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