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、在空白处写上视图创建语句,点击左上方执行即可。

参考技术A 方法/步骤

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多表查询并创建视图的主要内容,如果未能解决你的问题,请参考以下文章

mysql学习之路_视图

MySQL数据库高阶语句之查询视图NULL值

oracle 创建一个传参查询视图

MySQL进阶-(约束多表设计视图备份与还原)

用SQL代码创建一个视图,并查询视图中的字段

mysql创建视图