mysql 复制表结构、表数据的方法

From: http://blog.163.com/[email protected]/blog/static/109463675201191173221759/

MySQL 添加列,修改列,删除列的sql语句写法

ALTER TABLE:添加,修改,删除表的列,约束等表的定义。

  • 查看列:desc 表名;

  • 修改表名:alter table t_book rename to bbb;
  • 添加列:alter table 表名 add column 列名 varchar(30);
  • 删除列:alter table 表名 drop column 列名;
  • 修改列名: alter table bbb change nnnnn hh int;
  • 修改列属性:alter table t_book modify name varchar(22);

一,复制表结构
方法1:
mysql> create table a like users;         //复制表结构 
Query OK, 0 rows affected (0.50 sec)  
mysql> show tables;  
+----------------+  
| Tables_in_test |  
+----------------+  
| a              |  
| users          |  
+----------------+  
2 rows in set (0.00 sec) 
mysql> create table a like users;         //复制表结构
Query OK, 0 rows affected (0.50 sec)
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| a              |
| users          |
+----------------+
2 rows in set (0.00 sec)

方法2:
mysql> create table b select * from users limit 0;   //复制表结构 
Query OK, 0 rows affected (0.00 sec)  
Records: 0  Duplicates: 0  Warnings: 0  
mysql> show tables;  
+----------------+  
| Tables_in_test |  
+----------------+  
| a              |  
| b              |  
| users          |  
+----------------+  
3 rows in set (0.00 sec) 
mysql> create table b select * from users limit 0;   //复制表结构
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| a              |
| b              |
| users          |
+----------------+
3 rows in set (0.00 sec)

方法3:
mysql> show create table users\G;          //显示创表的sql  这里也可以用 desc users;显示表的结构
*************************** 1. row ***************************  
Table: users  
Create Table: CREATE TABLE `users` (       //改表名 
`ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,  
`user_name` varchar(60) NOT NULL DEFAULT ‘‘,  
`user_pass` varchar(64) NOT NULL DEFAULT ‘‘,  
PRIMARY KEY (`ID`)  
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8  //改auto_increment 
1 row in set (0.00 sec) 
mysql> show create table users\G;          //显示创表的sql
*************************** 1. row ***************************
Table: users
Create Table: CREATE TABLE `users` (       //改表名
`ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`user_name` varchar(60) NOT NULL DEFAULT ‘‘,
`user_pass` varchar(64) NOT NULL DEFAULT ‘‘,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8  //改auto_increment
1 row in set (0.00 sec)把sql语句copy出来,改一下表名和atuo_increment,然后在执行一下。
二,复制表数据,以及表结构
方法1:
mysql> create table c select * from users;      //复制表的sql 
Query OK, 4 rows affected (0.00 sec)  
Records: 4  Duplicates: 0  Warnings: 0 
mysql> create table c select * from users;      //复制表的sql
Query OK, 4 rows affected (0.00 sec)
Records: 4  Duplicates: 0  Warnings: 0

方法2:
mysql> create table d select user_name,user_pass from users where id=1;  
Query OK, 1 row affected (0.00 sec)  
Records: 1  Duplicates: 0  Warnings: 0 
mysql> create table d select user_name,user_pass from users where id=1;
Query OK, 1 row affected (0.00 sec)
Records: 1  Duplicates: 0  Warnings: 0上面的2种方法,方便,快捷,灵活性强。
方法3:
先创建一个空表, INSERT INTO 新表 SELECT * FROM 旧表 ,或者
INSERT INTO 新表(字段1,字段2,…….) SELECT 字段1,字段2,…… FROM 旧表
这种方法不是很方便,也是我以前经常用的。

时间: 2024-10-05 08:35:56

mysql 复制表结构、表数据的方法的相关文章

mysql复制表结构和数据

1.复制表结构: create table newName like oldName;//可以复制所有结构. 或者: create table newName select * from oldName where 1<>1;//让where条件不成立,只能拷贝结构,无法拷贝内容,且外键约束 .主键约束.唯一约束不会被复制.2.向已存在的表中复制数据: 如果两表结构一样: insert into newName select * from oldName; 如果两表结构不样: insert i

复制表结构和数据SQL语句

select * into 目标表名 from 源表名 insert into 目标表名(fld1, fld2) select fld1, 5 from 源表名 以上两句都是将 源表 的数据插入到 目标表,但两句又有区别的: 第一句(select into from)要求目标表不存在,因为在插入时会自动创建. 第二句(insert into select from)要求目标表存在,由于目标表已经存在,所以我们除了插入源表的字段外,还可以插入常量,如例中的:5. 1:复制表结构及数据到新表 sel

MySQL 如何只导出 指定的表 的表结构和数据 ( 转 )

MySQL 如何只导出 指定的表 的表结构和数据 ( 转 ) 2011-01-04 15:03:33 分类: MySQL MySQL 如何只导出 指定的表 的表结构和数据 导出更个库的表结构如下:mysqldump -uroot -p -d databasename > createtab.sql, 如果只想导出 表 test1,test2,test3 的 表结构 和 数据呢?该如何导出? mysqldump -uroot -p -d databasename test1 test2 test3

Oracle与Sql Server复制表结构及数据

1.Oracle create table 新表名 AS SELECT * FROM 源表名 2.Sql Server SELECT * into 新表名 from 源表名 Oracle与Sql Server复制表结构及数据

数据库:表结构及数据复制实例

方案11.1复制整个表(含数据,无主键索引):old_table--->new_tableCREATE TABLE new_table SELECT * FROM old_table; 1.2  复制整个表结构(无数据,无主键索引):old_table--->new_tableCREATE TABLE   new_table   SELECT   *   FROM   old_table   where   0; 方案22.1复制整个表结构(无数据,含主键索引):old_table--->

用命令从mysql中导出/导入表结构及数据

在命令行下mysql的数据导出有个很好用命令mysqldump,它的参数有一大把,可以这样查看:mysqldump最常用的:mysqldump -uroot -pmysql databasefoo table1 table2 > foo.sql这样就可以将数据库databasefoo的表table1,table2以sql形式导入foo.sql中,其中-uroot参数表示访问数据库的用户名是root,如果有密码还需要加上-p参数Eg: C:\Users\jack> mysqldump -uroo

SQL复制表结构和数据

1.复制表结构和数据 select * into 目的数据库名.dbo.目的表名 from 原表名 select * into my0735home.dbo.infoMianTest from infoMian 2.复制表的一部分列(非*) select 列名1,列名2,列名3 into 目的数据库名.dbo.目的表名 from 原表名 select id,title,mtype,stype,author,tel,nr into infoMianTest2 from infomian 3备份表的

sqlserver删除所有表(表结构和数据)

要删除某个数据库,或者删除数据库中的所有表(删除表结构和数据),需要先删除表间的外键约束,才能删除表.如删除数据库db_wy中的所有表: --/第1步**********删除所有表的外键约束*************************/ DECLARE c1 cursor for select 'alter table ['+ object_name(parent_obj) + '] drop constraint ['+name+']; ' from sysobjects where x

Oracle备份表结构和数据

--创建一份表结构 create table BASE_GOODSPAYMENT_SETTING_BAK as select * from BASE_GOODSPAYMENT_SETTING ; --将数据插入到备份表中 insert into BASE_GOODSPAYMENT_SETTING_BAK select * from BASE_GOODSPAYMENT_SETTING; 这是Oracle的备份表结构和数据,因为实际工作对表进行大规模的数据改动都要讲数据进行备份,否则丢了数据那是很头

PLSQL怎样导出oracle表结构和数据

1.导出表结构和数据方式1.tools->export user objects是导出表结构 tools ->export user object 选择选项,导出.sql文件 说明:导出的是建表语句(包括存储结构) 方式2.tools->export tables 是导出表结构还有数据 用pl/sql developer导出表的数据时有三种方式:Oracle Export,Sql Insert,pl/sql developer用中间的sql inserts页面,选中create tabl