mysql join和视图区别_JOIN与视图

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子句中的不可更新视图

仅引用文字值

对基表的任何列的多次引用

————————————————

版权声明:本文为优快云博主「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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值