如何在MySQL中从另一个表添加列到表中?
是的,我们可以从另一个表中添加列到表中。首先让我们创建两个表。创建表的查询语句如下 –
< 第一个表>
mysql> create table FirstTable
-> (
-> UserId int,
-> UserName varchar(20)
-> );
Query OK, 0 rows affected (1.48 sec)
现在创建第二个表。创建第二个表的查询语句如下 –
< 第二个表>
mysql> create table SecondTable
-> (
-> UserId int,
-> UserAge int
-> );
Query OK, 0 rows affected (1.57 sec)
现在,向第一个表添加一个名为Age的列。首先添加Age列,然后使用UPDATE命令将此Age列设置为SecondTable的UserAge列。查询语句如下 –
mysql> ALTER TABLE FirstTable ADD COLUMN Age TINYINT UNSIGNED DEFAULT 0;
Query OK, 0 rows affected (1.53 sec)
Records: 0 Duplicates: 0 Warnings: 0
现在,以下是将第一个表更新为将Age列设置为SecondTable的UserAge列的查询 –
mysql> UPDATE FirstTable tbl1
-> INNER JOIN SecondTable tbl2 ON tbl1.UserId = tbl2.UserId
-> SET tbl1.Age = tbl2.UserAge;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0 Changed: 0 Warnings: 0
现在,使用DESC命令检查第一个表的描述。查询语句如下 –
mysql> desc FirstTable;
以下是显示我们成功从其他表中添加列的输出 –
+----------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+---------------------+------+-----+---------+-------+
| UserId | int(11) | YES | | NULL | |
| UserName | varchar(20) | YES | | NULL | |
| Age | tinyint(3) unsigned | YES | | 0 | |
+----------+---------------------+------+-----+---------+-------+
3 rows in set (0.53 sec)
阅读更多:MySQL 教程
极客教程