zoukankan      html  css  js  c++  java
  • mysql复制表以及复制数据库

    (一)将旧表复制到新表

    1、CREATE TABLE新表 SELECT* FROM旧表;

    该语句只是复制表结构以及数据,它不会复制与表关联的其他数据库对象,如索引主键约束外键约束触发器等。

    1. CREATE TABLE if not exists new_table
    2. SELECT col1, col2, col3
    3. FROM
    4. existing_table
    5. WHERE
    6. 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 两种

    create table 新表 like 旧表;

    create table 新表 as select * from 旧表 limit 0;

    二者的区别:

    as用来创建相同表结构并复制源表数据

    like用来创建完整表结构和全部索引

    oracle支持as,也是只有表结构没有索引
    oracle不支持like。

    (三)MySQL复制表到另一个数据库

    访问不同数据库中的表:数据库名.表名 ,采用点 的形式。

    有时,您要将表复制到其他数据库。 在这种情况下,可使用以下语句:

    1. CREATE TABLE destination_db.new_table
    2. LIKE source_db.existing_table;
    3.  
    4. INSERT destination_db.new_table
    5. SELECT *
    6. FROM source_db.existing_table;
    SQL

    具体流程:

    1. CREATE DATABASE IF NOT EXISTS testdb;
    SQL

    其次,通过将其结构从示例数据库(yiibaidb)中的offices表复制出来,在testdb中创建了offices表。

    1. CREATE TABLE testdb.offices LIKE yiibaidb.offices;
    SQL

    第三,我们将数据从yiibaidb.offices表复制到testdb.offices表中。

    1. INSERT testdb.offices
    2. SELECT *
    3. FROM yiibaidb.offices;

     

    (四)MySQL数据库导入导出


    1、使用mysqldump工具将数据库导出并转储到sql文件:mysqldump -u 用户名 -p 数据库名 > 导出的文件名 
    mysqldump -h IP -u 用户名 -p 数据库名 > 导出的文件名

    2 :(导出某张表的表结构不含数据)
    mysqldump -h localhost -u root -p -d test pollution > G:arcgisworkspacezypdoc est.sql
    3:(导出某张表的表结构和数据,不加-d)
    mysqldump -h 127.0.0.1 -u root -p test pollution > G:arcgisworkspacezypdoc est.sql
    mysqldump-u root -p yiibaidb >d:database_bakyiibaidb.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:UsersAdministrator> mysql -u root -p
    Enter password: **********
    
    Shell

    然后,使用CREATE DATABASE语句如下:

    1. CREATE DATABASE yiibaidb_backup;
    SQL

    第三,使用SHOW DATABASES命令验证:

    1. SHOW DATABASES
    SQL

    步骤2

    使用mysqldump工具将数据库对象和数据转储到SQL文件中。

    假设要将数据库对象和数据库转储到位于D:database_bak文件夹的SQL文件中,这里是以下命令:

    1. C:UsersAdministrator> mysqldump -u root -p yiibaidb > d:database_bakyiibaidb.sql
    2. Enter password: **********
    SQL

    基本上,此命令指示mysqldump使用具有密码的root用户帐户登录到MySQL服务器,并将数据库对象和yiibaidb数据库的数据导出到d:database_bakyiibaidb.sql。 请注意,运算符(>)表示导出。

    步骤2

    d:database_bakyiibaidb.sql文件导入到yiibaidb_backup数据库。

    C:UsersAdministrator> mysql -u root -p yiibaidb_backup < d:database_bakyiibaidb.sql
    Enter password: **********
    
    Shell

    请注意,运算符(<)表示导入。

    要验证导入,可以使用SHOW TABLES命令快速检查。

    mysql> SHOW TABLES FROM yiibaidb_backup;

     

  • 相关阅读:
    【杭电】[2071]无限的路
    【杭电】[1161]Eddy's mistakes
    【杭电】[1859]最小长方形
    【杭电】[2083]简易版之最短距离
    【CodeForces】[614A]Link/Cut Tree
    【杭电】[2076]夹角有多大
    【杭电】[2055]An easy problem
    【杭电】[2036]改革春风吹满地
    【杭电 】[2040]亲和数
    【杭电】[2044]一只小蜜蜂...
  • 原文地址:https://www.cnblogs.com/snake23/p/9593887.html
Copyright © 2011-2022 走看看