该语句只是复制表结构以及数据,它不会复制与表关联的其他数据库对象,如索引,主键约束,外键约束,触发器等。
CREATE TABLE if not exists new_table
SELECT col1, col2, col3
FROM
existing_table
WHERE
conditions;
2、MySQL 数据库不支持 SELECT … INTO 语句,但支持 INSERT INTO … SELECT
其中在使用select into 语句与insert into select 语句时,新表要提前建立,并且新表与旧表的字段属性要一样才可以。
create table 新表 like 旧表;
新表建立之后才可以使用下面的两个语句:
SELECT * INTO 新表 FROM 旧表;
INSERT INTO 新表 SELECT * FROM 旧表;
只复制希望的列插入到另一个已存在的表中:
INSERT INTO 新表 (column_name(s)) SELECT column_name(s) FROM 旧表;
实例:
INSERT INTO Websites (name, country) SELECT app_name, country FROM apps;
对于mysql的复制相同表结构方法,有create table as 和create table like 两种
(1)create table 新表 like 旧表;
(2)create table 新表 as select * from 旧表 limit 0;
二者的区别:
(1)as用来创建相同表结构并复制源表数据
(2)like用来创建完整表结构和全部索引
(3)oracle支持as,也是只有表结构没有索引
(4)oracle不支持like。
访问不同数据库中的表:数据库名.表名 ,采用点 的形式。
有时,您要将表复制到其他数据库。 在这种情况下,可使用以下语句:
CREATE TABLE destination_db.new_table
LIKE source_db.existing_table;
INSERT destination_db.new_table
SELECT *
FROM source_db.existing_table;
具体流程:
1、创建数据库
CREATE DATABASE IF NOT EXISTS testdb;
2、通过将其结构从示例数据库(yiibaidb)中的offices表复制出来,在testdb中创建了offices表。
CREATE TABLE testdb.offices LIKE yiibaidb.offices;
3、我们将数据从yiibaidb.offices表复制到testdb.offices表中。
INSERT testdb.offices
SELECT *
FROM yiibaidb.offices;
1、使用mysqldump工具将数据库导出并转储到sql文件:mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -h IP -u 用户名 -p 数据库名 > 导出的文件名
2 :(导出某张表的表结构不含数据)
mysqldump -h localhost -u root -p -d test pollution > G:\arcgisworkspace\zypdoc\test.sql
3:(导出某张表的表结构和数据,不加-d)
mysqldump -h 127.0.0.1 -u root -p test pollution > G:\arcgisworkspace\zypdoc\test.sql
mysqldump-u root -p yiibaidb >d:\database_bak\yiibaidb.sql
其中>表示导出。
2、导入sql文件
在MySQL中新建数据库,这时是空数据库,如新建一个名为news的目标数据库
create database if not exists news;
use news;
导入文件:
source 路径+导入的文件名;
source d:\mysql.sql;
要复制一个MySQL数据库,您需要执行以下步骤:
首先,使用CREATE DATABASE语句创建一个新的数据库。
其次,使用mysqldump工具导出要复制的数据库的所有数据库对象和数据。
第三,将SQL转储文件导入新的数据库。
作为一个演示,假设要把yiibaidb数据库复制到yiibaidb_backup数据库:
步骤1, 创建yiibaidb_backup数据库:
首先,登录到MySQL数据库服务器:
C:\Users\Administrator> mysql -u root -p
Enter password: **********
Shell
然后,使用CREATE DATABASE语句如下:
CREATE DATABASE yiibaidb_backup;
第三,使用SHOW DATABASES命令验证:
SHOW DATABASES
步骤2
使用mysqldump工具将数据库对象和数据转储到SQL文件中。
假设要将数据库对象和数据库转储到位于D:\database_bak文件夹的SQL文件中,这里是以下命令:
mysqldump -u root -p yiibaidb >d:\database_bak\yiibaidb.sql
Enter password: **********
基本上,此命令指示mysqldump使用具有密码的root用户帐户登录到MySQL服务器,并将数据库对象和yiibaidb数据库的数据导出到d:\database_bak\yiibaidb.sql。 请注意,运算符(>)表示导出。
步骤2
将d:\database_bak\yiibaidb.sql文件导入到yiibaidb_backup数据库。
mysql -u root -p yiibaidb_backup < d:\database_bak\yiibaidb.sql
Enter password: **********
Shell
请注意,运算符(<)表示导入。
要验证导入,可以使用SHOW TABLES命令快速检查。
SHOW TABLES FROM yiibaidb_backup;
1.复制data下数据库的文件夹
2.复制data下的ibdata1到目标文件夹中
3.删除ib_logfile0、iblogfile1