StarRocks中最主要的OLAP类型的表设计咱们前面已经梳理完了,除此之外,StarRocks中还涉及到了一些与表设计相关的内容,我们也一并进行展开。首先,咱们来简单说一下视图功能。
1视图定义
StarRocks也拥有视图功能,且其与MySQL中的视图概念及语法非常类似。StarRocks中的视图也是一种虚拟存在的表,其行和列的数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的,只保存了sql逻辑,不保存查询结果。
2视图优势
视图的优势主要有:
1)重用sql语句;
2)简化复杂的sql操作,不必知道它的查询细节;
3)保护数据,提高安全性。
3视图创建
创建视图的语法与MySQL的语法基本一致:
create view view_name
As select_statement;
咱们也举个例子:
CREATE VIEW myv1
AS
SELECT device_code,device_price,total
FROM table01 a
JOIN table02 b ON a.user_id = b.user_id;
查询视图:
mysql> select * from myv1;
+-------------------+--------------------+---------+
| device_code | device_price | total |
+-------------------+--------------------+---------+
| 28 | 15.49 | 15.49 |
| 27 | 9.99 | 20.98 |
| 27 | 9.99 | 20.98 |
+-------------------+--------------------+---------+
4修改删除
修改视图的语法:
alter view view_name
As select_statement;
例如修改视图myv1:
alter view myv1
As
SELECT device_code,device_price,total
FROM table01 a
JOIN table02 b ON a.user_id = b.user_id
limit 1;
删除视图的语法:
drop view [if exists] view_name;
mysql> drop view if exists myv1;
查看视图的语法:
show tables;
如果需要查询某个视图的定义,可以使用show create view命令进行查看:
show create view view_name;