特に別の列の前にMySQLに列を追加することは不可能ですか?
いいえ、ALTERを使用して別の列の前に列を簡単に追加できます。
注 −テーブル行内の特定の位置に列を追加するには、FIRSTまたはAFTERを使用します。col_name最初にテーブルを作成しましょう-
mysql> create table DemoTable -> ( -> Id int, -> Name varchar(20), -> CountryName varchar(100) -> ); Query OK, 0 rows affected (0.67 sec)
テーブルからすべての列名を確認しましょう-
mysql> show columns from DemoTable;
出力
これにより、次の出力が生成されます-
+-------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------+--------------+------+-----+---------+-------+ | Id | int(11) | YES | | NULL | | | Name | varchar(20) | YES | | NULL | | | CountryName | varchar(100) | YES | | NULL | | +-------------+--------------+------+-----+---------+-------+ 3 rows in set (0.00 sec)
以下は、MySQLの別の列の前に列を追加するためのクエリです。
mysql> alter table DemoTable add Age int AFTER Name; Query OK, 0 rows affected (1.50 sec) Records: 0 Duplicates: 0 Warnings: 0
上記の表のすべての列名をもう一度確認してみましょう-
mysql> show columns from DemoTable;
出力
これにより、次の出力が生成されます。列名が正常に追加されました-
+-------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------+--------------+------+-----+---------+-------+ | Id | int(11) | YES | | NULL | | | Name | varchar(20) | YES | | NULL | | | Age | int(11) | YES | | NULL | | | CountryName | varchar(100) | YES | | NULL | | +-------------+--------------+------+-----+---------+-------+ 4 rows in set (0.00 sec)
-
別のMySQLテーブルの列に基づいて列を更新します
このために、結合の概念を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1 -> ( -> Id int, -> Name varchar(10) -> ); Query OK, 0 rows affected (0.51 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1 values(100,'Bob&
-
MySQLを使用して、対応する重複値のレコードを別の列に追加します
このために、GROUP BY句とともに集計関数SUM()を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable -> ( -> Name varchar(20), -> Value int -> ); Query OK, 0 rows affected (2.08 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable va