mysql多表查询并创建视图
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql多表查询并创建视图相关的知识,希望对你有一定的参考价值。
请教大家怎么把以上三张表进行连接查询,而且是吧SaleNumber,AllPrice这两列进行合并求和,然后创建视图呢???我用连接查询出现了笛卡儿积。。。。
参考技术A mysql在多个数据表上创建视图在MySQL中,使用CREATE VIEW语句也可以在两个或两个以上的数据表上创建视图。
实例
在department表和worker表上创建一个名为worker_view1的视图。
1. 创建视图的代码如下:
CREATE ALGORITHM=MERGE VIEW
worker_view1(name,department,sex,age,location)
AS SELECT name,department.d_name,sex,birthday,address
FROM worker,department WHERE worker.d_id=department.d_id
WITH LOCAL CHECK OPTION;
在DOS提示符窗口中查看MySQL在多个数据表上创建视图的操作效果。如下图所示:
在DOS提示符窗口中查看MySQL在多个数据表上创建视图的操作效果
从上图中可以看出,代码的执行结果显示视图创建成功。
2. 使用DESC语句查询虚拟表的结构。如下图所示:
使用DESC语句查询虚拟表的结构
从上图中可以看出,视图worker_view1的属性分别为name、department、sex、age和location。
视图指定的属性列表对应着两个不同的表的属性列(字段)。
视图的属性名与属性列表中的属性名相同。
该实例中的SELECT语句查询出了department表的d_name字段,还有worker表的name、sex、birthday和address。其中,department表的d_name字段对应视图的department字段;worker表的birthday字段对应视图的age字段。
同时,视图worker_view1的ALGORITHM的值指定为MERGE。还增加了WITH LOCAL CHECK OPTION约束。
本示例说明,视图可以将多个表上的操作简洁的表示出来。
提示
同时在多个表上创建视图是非常有用的。比如,系统中有student表、department表、score表和grade表,分别存储学生的信息、院系信息、课程信息和成绩信息。可以在这4个表上创建一个视图,用来显示学生姓名、学号、班级、院系、所选课程和课程成绩。追问
能针对性点嘛?
mysql中如何建立视图?
在查询页面用语句创建就可以。
1、打开Navicat for MySQL,并登录到指定数据库。
2、点击上方查询。
3、点击新建查询。
4、在空白处写上视图创建语句,点击左上方执行即可。
1
为了不影响其他的数据库表,新建一张数据库表t_worker_info,代码如下:
create table t_worker_info(
id int(8) primary key not null auto_increment,
w_id int(10) not null,
w_name varchar(20) not null,
w_age int(3),
w_sex varchar(10),
w_birth varchar(20)
);
2
创建t_worker_info后,查看一下数据结构,代码如下:
desc t_worker_info;
3
双击选中的数据库,在Views鼠标右键“Create View...”,打开编辑窗口,并在窗口中输入代码,代码如下:
CREATE VIEW `view_worker_info` AS
SELECT * FROM t_worker_info;
4
查看创建视图的基本信息,利用desc或describe语句,代码如下:
desc view_worker_info;
5
查看视图信息,如存储引擎、数据长度等,如果上述指标都为null,说明视图是虚表,代码如下:
show table status like 'view_worker_info';
6
查看创建视图的详细信息,需要用到show create view 视图名,代码如下:
show create view view_worker_info; 参考技术B SQL SERVER 数据库应用技术第二版(张浦生主编)课后习题答案,谁有急求!
浏览次数:29次悬赏分:0 | 离问题结束还有 12 小时 | 提问者:普罗旺斯987 | 检举
还能输入 9999 字
插入图片插入地图
参考资料:匿名回答
提交回答
回答 共2条
自己做吧
追问
可是不会呢
回答
问我呀
追问
你会啊,告诉我吧,千恩万谢
回答者: sytdeedee | 六级 | 2011-6-14 13:25 | 检举
凌吧!不给人积分就想要答案 啊
追问
你是谁啊本回答被提问者采纳 参考技术C CREATE [OR REPLACE] [ALGORITHM = UNDEFINED | MERGE | TEMPTABLE]
VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
以上是关于mysql多表查询并创建视图的主要内容,如果未能解决你的问题,请参考以下文章