mysql/mariadb将选择查询的结果重新生成一张新表格

比如想要生成类似如下的表格

mysql> select student.*,sc.cno,course.cname,sc.grade,course.cpno,course.ccredit from student,sc,course where student.sno=sc.sno and sc.cno=course.cno;

第一种直接生成:

 

mysql> create table temp(select student.*,sc.cno,course.cname,sc.grade,course.cpno,course.ccredit from student,sc,course where student.sno=sc.sno and sc.cno=course.cno);
Query OK, 19 rows affected (0.09 sec)
Records: 19  Duplicates: 0  Warnings: 0

mysql> show tables;
+-------------------+
| Tables_in_groupdb |
+-------------------+
| course            |
| dept              |
| emp               |
| jwc               |
| salgrade          |
| sc                |
| student           |
| temp              |
+-------------------+
8 rows in set (0.05 sec)
mysql> select * from temp;

第二种先创建一个表格:

首先查看各个表格的结构:

mysql> desc student;desc sc;desc course;

+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| sno   | varchar(11) | NO   | PRI | NULL    |       |
| sname | varchar(20) | YES  | UNI | NULL    |       |
| ssex  | varchar(2)  | YES  |     | NULL    |       |
| sage  | smallint(6) | YES  |     | NULL    |       |
| sdept | varchar(20) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
5 rows in set (0.05 sec)

+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| sno   | varchar(11) | NO   | PRI | NULL    |       |
| cno   | varchar(4)  | NO   | PRI | NULL    |       |
| grade | smallint(6) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.05 sec)

+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| cno     | varchar(4)  | NO   | PRI | NULL    |       |
| cname   | varchar(40) | YES  |     | NULL    |       |
| cpno    | varchar(4)  | YES  | MUL | NULL    |       |
| ccredit | smallint(6) | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+
4 rows in set (0.05 sec)

再对表格进行创建并插入数据:

mysql> create table jwc (sno varchar(11) not null,sname varchar(20) not null,ssex varchar(2),sage smallint(6),sdept varchar(20),cno varchar(4),cname varchar(40),grade smallint(6),cpno varchar(4),ccredit smallint(6));
Query OK, 0 rows affected (0.67 sec)

mysql> insert into jwc(select student.*,sc.cno,course.cname,sc.grade,course.cpno,course.ccredit from student,sc,course where student.sno=sc.sno and sc.cno=course.cno);
Query OK, 19 rows affected (0.06 sec)
Records: 19  Duplicates: 0  Warnings: 0
mysql> desc temp;
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| sno     | varchar(11) | NO   |     | NULL    |       |
| sname   | varchar(20) | YES  |     | NULL    |       |
| ssex    | varchar(2)  | YES  |     | NULL    |       |
| sage    | smallint(6) | YES  |     | NULL    |       |
| sdept   | varchar(20) | YES  |     | NULL    |       |
| cno     | varchar(4)  | NO   |     | NULL    |       |
| cname   | varchar(40) | YES  |     | NULL    |       |
| grade   | smallint(6) | YES  |     | NULL    |       |
| cpno    | varchar(4)  | YES  |     | NULL    |       |
| ccredit | smallint(6) | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+
10 rows in set (0.05 sec)

 2018-04-30

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值