首页 > 其他 > 详细

JOIN与视图

时间:2020-06-11 21:39:20      阅读:47      评论:0      收藏:0      [点我收藏+]

inner join与natural join 区别:

inner join 需要指定连接条件,而natural join 自动判断连接条件不需要指定。

 

self join:

一部分self join可以用别的语句替代,但使用self join 在面对大量数据时可以实现语句的自动全面执行。

但self join 还可以解决一些特定的问题。

 

natura join没有判断语句。

 

在看别的资料时有说 自然联结分为 内自然连接(natural join)和外自然连接(natural left join)(natural right join)

outer join 和 外自然连接什么关系?

 

视图(可更新条件)

这意味着我们可以使用insert或update语句通过可更新视图插入或更新基表的行。 另外,我们还可以使用delete语句通过视图删除底层表的行。但是,要创建可更新视图,定义视图的select语句不能包含以下任何元素:

聚合函数,如:min,max,sum,avg,count等。
DISTINCT子句
GROUP BY子句
HAVING子句
左连接或外连接。
UNION或UNION ALL子句
SELECT子句中的子查询或引用该表的where子句中的子查询出现在FROM子句中。
引用FROM子句中的不可更新视图
仅引用文字值
对基表的任何列的多次引用
————————————————
版权声明:本文为CSDN博主「luyaran」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

特别要注意not null列的限制

例如

--创建一个表

create table hotels 

(guest_id varchar(45) not null,

 guest_name varchar(20) not nll,

 star_rating int not null,

 primary key(guest_id)

);

--创建基于上述表的视图1

create view hotel_view1

as

select guest_id,guest_name,star_rating

from hotels;

--向视图1中插入数据,可工作

insert into hotel_view1

values(‘100000‘,‘jim‘,4);

--创建视图2

create view hotel_view2

as

select guest_name,star_rating

from hotels;

--向视图2中插入数据

insert into hotel_view2

values(‘tom‘,5);

--出现error

 

JOIN与视图

原文:https://www.cnblogs.com/qian135811/p/13080772.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!