MySQL复制表数据操作sql语句

MySQL复制表数据操作相信大家都不会太陌生,下面就为您详细介绍MySQL复制表数据到新表的步骤,希望对您会有所启迪。 

1.MySQL复制表结构及数据到新表 

 代码如下 复制代码

   CREATE TABLE 新表 

SELECT * FROM 旧表 

   

2.只复制表结构到新表 

 代码如下 复制代码

   CREATE TABLE 新表 

SELECT * FROM 旧表 WHERE 1=2 

即:让WHERE条件不成立. 

方法二:(低版本的mysql不支持,mysql4.0.25 不支持,mysql5已经支持了) 

 代码如下 复制代码

CREATE TABLE 新表 

LIKE 旧表 

   

3.复制旧表的数据到新表(假设两个表结构一样) 
   

 代码如下 复制代码

INSERT INTO 新表 

SELECT * FROM 旧表 

   

4.复制旧表的数据到新表(假设两个表结构不一样) 

 代码如下 复制代码

   

INSERT INTO 新表(字段1,字段2,…….) 

SELECT 字段1,字段2,…… FROM 旧表

示例如下:

 

将 production 数据库中的 mytbl 表快速复制为 mytbl_new,2个命令如下:

 代码如下 复制代码

 

CREATE TABLE mytbl_new LIKE production.mytbl;

INSERT mytbl_new SELECT * FROM production.mytbl;

 

第一个命令是创建新的数据表 mytbl_new ,并复制 mytbl 的数据表结构。

第二个命令是讲数据表 mytbl 中的数据复制到新表 mytbl_new 。

 注:production.mytbl是指定要复制表的数据库名称为 production 。它是可选的。

假如没有production. ,MySQL数据库将会假设mytbl在当前操作的数据库。

其它方法:

方案1:

复制整个表  
CREATE TABLE   new_table   SELECT   *   FROM   old_table;  

复制,不复制数据  
CREATE TABLE   new_table   SELECT   *   FROM   old_table   where   0;

注意:本方案其实只是把select语句的结果建一个表。所以new_table这个表不会有主键、索引。

方案2:

假如我们有以下这样一个表:

id      username    password
-----------------------------------
1       admin       *************
2       sameer      *************
3       stewart     *************

CREATE TABLE IF NOT EXISTS `admin` (
`id` int(6) unsigned NOT NULL auto_increment,
`username` varchar(50) NOT NULL default '',
`password` varchar(100) default NULL,
PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

1. 下面这个语句会拷贝表结构到新表newadmin中。 (不会拷贝表中的数据)

CREATE TABLE newadmin LIKE admin

2. 下面这个语句会拷贝数据到新表中。 注意:这个语句其实只是把select语句的结果建一个表。所以newadmin这个 表不会有主键,索引。

 代码如下 复制代码

 

CREATE TABLE newadmin 
(
SELECT *
FROM admin
)

 

3. 如果你要真正的复制一个表。可以用下面的语句。

 代码如下 复制代码

CREATE TABLE newadmin LIKE admin;
INSERT INTO newadmin SELECT * FROM admin;

4. 我们可以操作不同的数据库。

 代码如下 复制代码

CREATE TABLE newadmin LIKE shop.admin;
CREATE TABLE newshop.newadmin LIKE shop.admin;

5. 我们也可以拷贝一个表中其中的一些字段。

 

 代码如下 复制代码
CREATE TABLE newadmin 
(
SELECT username, password FROM admin
)

6. 我们也可以讲新建的表的字段改名。

 

 代码如下 复制代码
CREATE TABLE newadmin 
(
SELECT id, username AS uname, password AS pass FROM admin
)

7. 我们也可以拷贝一部分数据。

 

 代码如下 复制代码
CREATE TABLE newadmin 
(
SELECT * FROM admin WHERE LEFT(username,1) = 's'
)

8. 我们也可以在创建表的同时定义表中的字段信息。

 

 代码如下 复制代码
CREATE TABLE newadmin
(
id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY
)
(
SELECT * FROM admin
)
时间: 2024-08-03 22:00:22

MySQL复制表数据操作sql语句的相关文章

mysql 复制表数据,表结构的3种方法

 什么时候我们会用到复制表?例如:我现在对一张表进行操作,但是怕误删数据,所以在同一个数据库中建一个表结构一样,表数据也一样的表,以作备份.如果用mysqldump比较麻烦,备份.MYD,.MYI这样的文件呢,操作起来也还是麻烦. 一,复制表结构 方法1: mysql> create table a like users; //复制表结构 Query OK, 0 rows affected (0.50 sec)   mysql> show tables; +------+ | Tables_i

SQL Server 开发之 复制表数据的SQL脚本生成器

server|脚本|数据 使用SQL Server 2000自带的"生成SQL脚本"工具,可以生成创建表.视图.存储过程等的SQL脚本.那么,能否将表中的数据也生成为SQL脚本,在查询分析器中执行这些脚本后自动将数据导入到SQL Server中呢?答案是肯定的.下面的存储过程是一位高人写的,这位高人的姓氏已无人知晓,但SQL Server社区中偶尔还可看到此不朽之作.CREATE PROCEDURE  dbo.OutputData       @tablename   sysname 

MySQL多表联合查询sql语句

最简的一种联合查询  代码如下 复制代码 SELECT * FROM table1 n, table2 i WHERE n.itemid = i.itemid 例 推广地点表promotion_addr字段:name,id 电话报竣表unicom_record字段:date, sheet_id(关联sheet表id) 报单表sheet字段:id,promotion_addr_id(关联promotion_addr表id) 要求统计某个月已报竣各推广地点的推广个数:    代码如下 复制代码  

Mysql数据库中对表操作sql语句总结

  --创建数据库 create database school --打开数据库 use school --创建表 create table student ( id int, name varchar(20), sex char(2), age int, date datetime, info text, bak varchar(500) ) --查看表结构 exec sp_help student --修改.添加列(字段) alter table student add tel varcha

mysql删除重复数据记录sql语句总结

我最常用的方法是  代码如下 复制代码 //删除id重复的数据,适合id是手工主键 delete person as a from person as a, (     select *,min(id) from person group by id having count(1) > 1 ) as b where a.id = b.id //查找重复的,并且除掉最小的那个  代码如下 复制代码 delete tb_person as a from tb_person as a, ( selec

Mysql大量插入数据时SQL语句的优化

1) 对于Myisam类型的表,可以通过以下方式快速的导入大量的数据.     ALTER TABLE tblname DISABLE KEYS;    loading the data    ALTER TABLE tblname ENABLE KEYS;这两个命令用来打开或者关闭Myisam表非唯一索引的更新.在导入大量的数据到一个非空的Myisam表时,通过设置这两个命令,可以提高导入的效率.对于导入大量数据到一个空的Myisam表,默认就是先导入数据然后才创建索引的,所以不用进行设置.

MySQL复制表结构 表数据sql语句总结

复制整个表  代码如下 复制代码 create table new_table select * from old_table; 复制表,不复制数据  代码如下 复制代码 create table new_table select * from old_table where 0; 主键,索引,自增等其他额外特征不会被带到新表中.这点和其他的数据库产品类似. 上面为核心两句了 1.MySQL复制表结构及数据到新表  代码如下 复制代码 CREATE TABLE `新表` SELECT * FRO

复制数据库表中两个字段数据的SQL语句

复制数据库表中两个字段数据的SQL语句 今天为表新添加一个字段,但又想与表中的另一个字段值相同,由于数据过多想通过sql语句实现,经测试下面的这句话确实很好用.   复制代码 代码如下: update jb51_temp set B=A jb51_temp 代表表明 A是有数值的字段,B是新添加的字段 ,记住空值表放到前面,如果set a=b,那么你的数值都为空了,就麻烦了,建议操作前备份数据库. 如何将一个字段里的值复制添加到另一个字段中 比如,有二个字段A和B,A字段是值是"我",

复制数据库表中两个字段数据的SQL语句_数据库其它

复制数据库表中两个字段数据的SQL语句 今天为表新添加一个字段,但又想与表中的另一个字段值相同,由于数据过多想通过sql语句实现,经测试下面的这句话确实很好用. 复制代码 代码如下: update jb51_temp set B=A jb51_temp 代表表明 A是有数值的字段,B是新添加的字段 ,记住空值表放到前面,如果set a=b,那么你的数值都为空了,就麻烦了,建议操作前备份数据库. 如何将一个字段里的值复制添加到另一个字段中 比如,有二个字段A和B,A字段是值是"我",B字