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