使用MySQL LIKE运算符创建新表,该表具有旧表的属性且不包含重复项?
要使用 LIKE 运算符实现此目的,语法如下:
CREATE TABLE yourTableName2 LIKE yourTableName1;
为了理解语法,让我们创建一个表并向其中插入一些记录。以下是在创建表时使用的查询:
mysql> create table Employee −> ( −> EmployeeId int −> , −> EmployeeName varchar(100) −> ); Query OK, 0 rows affected (0.54 sec)
使用 INSERT 命令将记录插入表中。查询如下:
mysql> insert into Employee values(1,'Carol'); Query OK, 1 row affected (0.18 sec) mysql> insert into Employee values(2,'John'); Query OK, 1 row affected (0.16 sec) mysql> insert into Employee values(3,'Johnson'); Query OK, 1 row affected (0.11 sec)
使用 SELECT 语句显示所有记录。显示所有记录的查询如下:
mysql> select *from StudentTable;
以下是输出结果:
+------+---------+ | Id | Name | +------+---------+ | 3 | Johnson | +------+---------+ 1 row in set (0.00 sec)
现在您可以实现我在开头讨论的上述语法。以下是在使用 LIKE 运算符创建表时使用的查询。
mysql> create table StudentModifyTableDemo Like Employee; Query OK, 0 rows affected (0.50 sec)
您可以使用 DESC 命令检查新表的定义。查询如下:
mysql> desc StudentModifyTableDemo;
以下是输出结果:
+--------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------------+--------------+------+-----+---------+-------+ | EmployeeId | int(11) | YES | | NULL | | | EmployeeName | varchar(100) | YES | | NULL | | +--------------+--------------+------+-----+---------+-------+ 2 rows in set (0.12 sec)
现在您可以将 Employee 表的所有记录插入到 StudentModifyTableDemo 表中。
查询如下:
mysql> insert into StudentModifyTableDemo select *from Employee; Query OK, 3 rows affected (0.16 sec) Records: 3 Duplicates: 0 Warnings: 0
现在您可以检查所有记录是否都存在于第二个表中。查询如下:
mysql> select *from StudentModifyTableDemo;
以下是输出结果:
+------------+--------------+ | EmployeeId | EmployeeName | +------------+--------------+ | 1 | Carol | | 2 | John | | 3 | Johnson | +------------+--------------+ 3 rows in set (0.00 sec)
广告