おさらい、格納した値をアップデート。
さらに新しいカラムを追加し構造も編集する。それを新しい値へアップデート。 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;
* 参考にしたサイトは→ こちら です。
これは赤色の文字例です。
これは青色の文字例です。