将选择查询的结果重新生成一张新表格
Posted 这个昵称得改
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将选择查询的结果重新生成一张新表格相关的知识,希望对你有一定的参考价值。
比如想要生成类似如下的表格
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
以上是关于将选择查询的结果重新生成一张新表格的主要内容,如果未能解决你的问题,请参考以下文章
SQL server中用一段语句得到的查询结果 怎么当成一张新表进行更新操作