• mysql复制表结构和内容


    许多时候我们想复制一张表部分或者全部内容,或者只复制一张表的框架,这种需求应该说我们很常见。

    其实想要实现这种需求十分简单。

    表一:

    mysql> select * from student_info;
    +----+-----------+------+
    | id | name      | sex  |
    +----+-----------+------+
    |  1 | 科比      ||
    |  2 | 毛线      ||
    |  3 | 黄鱼      ||
    |  4 | 子栋      ||
    |  5 | 子豪      ||
    |  6 | 小鸟      ||
    |  7 | 星爷      ||
    |  8 | 戴鹏      ||
    |  9 | 秦子琪    ||
    +----+-----------+------+
    9 rows in set (0.00 sec)
    student_info

    表二:

    mysql> select * from student_addr;
    +--------+--------------+
    | name   | addr         |
    +--------+--------------+
    | 科比   | 湖北罗田     |
    | 小鸟   | 湖北襄阳     |
    | 子豪   | 江苏扬州     |
    | 毛线   | 湖北孝感     |
    | 子栋   | 湖北洪湖     |
    | 黄鱼   | 湖北罗田     |
    +--------+--------------+
    6 rows in set (0.00 sec)
    student_addr

    表三:

    mysql> select * from student_score;
    +--------+-------+-------+--------+
    | name   | MYSQL | LIUNX | python |
    +--------+-------+-------+--------+
    | 科比   |    56 |    87 |     74 |
    | 毛线   |    87 |    95 |     78 |
    | 小鸟   |    60 |    78 |     87 |
    | 子豪   |    54 |    67 |     57 |
    | 子栋   |    90 |    95 |     94 |
    | 黄鱼   |    78 |    69 |     90 |
    | 星爷   |    24 |    45 |     42 |
    +--------+-------+-------+--------+
    7 rows in set (0.00 sec)
    student_score

    需求一:我想要一张新的学生信息表,表名new_student_info,只想要湖北的同学的信息。

    SQL语句:create table new_student_info (select * from student_addr where addr like '湖北%');

    mysql> create table new_student_info (select * from student_addr where addr like '湖北%');
    Query OK, 5 rows affected (0.01 sec)
    Records: 5  Duplicates: 0  Warnings: 0
    
    mysql> select * from new_student_info;
    +--------+--------------+
    | name   | addr         |
    +--------+--------------+
    | 科比   | 湖北罗田     |
    | 小鸟   | 湖北襄阳     |
    | 毛线   | 湖北孝感     |
    | 子栋   | 湖北洪湖     |
    | 黄鱼   | 湖北罗田     |
    +--------+--------------+
    5 rows in set (0.00 sec)
    执行结果

    需求二:我想复制表三的框架,表名new_student_score.

    SQL语句:create table new_student_score select * from student_score where 1=2;

    mysql> create table new_student_score select * from student_score where 1=2;  #where后面的条件随便写
    Query OK, 0 rows affected (0.01 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    
    mysql> select * from new_student_score;  #框架存在
    Empty set (0.00 sec)
    
    mysql> desc new_student_score;
    +--------+----------+------+-----+---------+-------+
    | Field  | Type     | Null | Key | Default | Extra |
    +--------+----------+------+-----+---------+-------+
    | name   | char(10) | YES  |     | NULL    |       |
    | MYSQL  | int(4)   | YES  |     | NULL    |       |
    | LIUNX  | int(4)   | YES  |     | NULL    |       |
    | python | int(4)   | YES  |     | NULL    |       |
    +--------+----------+------+-----+---------+-------+
    4 rows in set (0.01 sec)
    执行结果

    需求三:一张新的表,囊括所有信息,表名info_all

    SQL语句:

    mysql> create table info_all
        -> select new.id,new.name,new.sex,new.addr,sc.python,sc.MYSQL,sc.LIUNX
        -> from (
        -> select student_info.id,student_info.name,student_info.sex,student_addr.addr
        -> from student_info left join student_addr
        -> on student_info.name = student_addr.name) as new
        -> left join student_score as sc on new.name=sc.name;
    mysql> select * from info_all;
    +----+-----------+------+--------------+--------+-------+-------+
    | id | name      | sex  | addr         | python | MYSQL | LIUNX |
    +----+-----------+------+--------------+--------+-------+-------+
    |  1 | 科比      || 湖北罗田     |     74 |    56 |    87 |
    |  2 | 毛线      || 湖北孝感     |     78 |    87 |    95 |
    |  3 | 黄鱼      || 湖北罗田     |     90 |    78 |    69 |
    |  4 | 子栋      || 湖北洪湖     |     94 |    90 |    95 |
    |  5 | 子豪      || 江苏扬州     |     57 |    54 |    67 |
    |  6 | 小鸟      || 湖北襄阳     |     87 |    60 |    78 |
    |  7 | 星爷      || NULL         |     42 |    24 |    45 |
    |  8 | 戴鹏      || NULL         |   NULL |  NULL |  NULL |
    |  9 | 秦子琪    || NULL         |   NULL |  NULL |  NULL |
    +----+-----------+------+--------------+--------+-------+-------+
    9 rows in set (0.00 sec)
    执行结果
  • 相关阅读:
    XP下VS2010 数据库实体模型添加代码项使用 ADO.NET DBContext 添加错误
    URL路径优化
    题解poj2096
    对不起
    TELE poj1155 题解
    在 Linux 上创建第一个 Service Fabric Java 应用程序
    关于日常使用Azure MySQL中遇到的连接问题以及排查方法分享
    在 Azure 中创建静态 HTML Web 应用
    修改Linux时区的2种办法
    怎样在 Azure 应用服务中生成和部署 Java API 应用
  • 原文地址:https://www.cnblogs.com/yangmingxianshen/p/8001778.html
Copyright © 2020-2023  润新知