当前位置:网站首页>MySQL view
MySQL view
2022-07-05 12:12:00 【ziyi813】
MySQL View
Introduce
View view It's a virtual table , It's not real , Its essence is based on SQL Statement to get a dynamic data set , And name it , Users only need to use the view name to get the result set , And you can use it as a table .
The database only stores the definition of the view , There is no data stored in view , These data are still put in the original data table .
 When using views to query data , The database system will take the corresponding data from the original data table . therefore , The data in the view depends on the data in the source data table , Source data change , The data displayed in the view will also change .
effect
Simplify the code , Reusable queries can be closed into views for reuse , At the same time, it can make complex queries easy to understand and use
Security reasons , If there are a lot of data in a table , A lot of information doesn't want to be seen by everyone , You can use the view , Such as : There is a table that shows only names and some insensitive fields open to others , ID card and salary are not displayed , It can be applied to different users , Set different views .
View creation
Grammar format :
create [or replace] [algorithm = {undefind | mgerge | templtable } }]
view view_name [ {column_list} ]
as select_statement
[with [cascaded | local ] check option ]
Parameter description :
- algorithm: optional , Algorithm for view selection
- view_name: Represents the name of the view to be created
- column_list: optional , Specifies the noun for each attribute in the view , By default, it is the same as select The properties of the query in the statement are the same
- select_statement: Represents a complete query statement , Import the query record into the view
- [width [cascaded | local ] check option ]: optional , It means that updating the view should be within the permission range of the view
The operation sample :
-- Create view 1
create or replace view view1_emp
as
select emp_name from emp;

-- Query all tables , Differentiate view
select full tables;
Modify the view
Modifying a view means modifying the definition of a table that already exists in the database . When some fields in this table change , You can modify the view to keep it consistent with this table .MySQL Pass through CREATE REPLACE VIEW Statement and ALTER VIEW Statement to modify the view .
Format :
alter view View name as select sentence
Example :
-- Modify the view
alter view view1_emp
AS
select emp_name, salary from emp;
Update the view
Some views are updatable . in other words , Can be in UPDATE、DELETE perhaps INTER And so on , In a more basic form ( Data source table ) The content of . For updatable views , Rows in the view and rows in the base table must have a one-to-one relationship , If the view contains any of the following structures , So it's not updatable .
- Aggregate functions (SUM(), MIN(), MAX(), AVG(), COUNT() etc. )
- DISTINCT
- GROUP BY
- HAVING
- UNION perhaps UNION ALL
- JOIN
- FORM Non updatable view in Clause
- WHERE Subquery in Clause , quote FROM Table in clause
- Reference text values only
Although the data can be updated in the view , But there are a lot of restrictions , In general , It's best to use the view as a virtual table for querying data , Instead of updating data through views . because , When using views to update data , If the limitation of updating data is not fully considered , Data update may fail .
Other operations of view
Rename view
-- Rename view
rename table view1_emp to myview1;
Delete view
-- Delete view
drop view if exists myview1
边栏推荐
- Reading notes of growth hacker
- POJ-2499 Binary Tree
- byte2String、string2Byte
- Acid transaction theory
- 自动化测试生命周期
- pytorch-多层感知机MLP
- The solution of outputting 64 bits from printf format%lld of cross platform (32bit and 64bit)
- [deploy pytoch project through onnx using tensorrt]
- Simply solve the problem that the node in the redis cluster cannot read data (error) moved
- 2022年国内云管平台厂商哪家好?为什么?
猜你喜欢
[loss functions of L1, L2 and smooth L1]
Seven ways to achieve vertical centering
[singleshotmultiboxdetector (SSD, single step multi frame target detection)]
Pytorch MLP
什么是数字化存在?数字化转型要先从数字化存在开始
pytorch-多层感知机MLP
Reinforcement learning - learning notes 3 | strategic learning
【yolov3损失函数】
Principle of redis cluster mode
【云原生 | Kubernetes篇】Ingress案例实战(十三)
随机推荐
What is the difference between canvas and SVG?
[upsampling method opencv interpolation]
Flutter2 heavy release supports web and desktop applications
byte2String、string2Byte
你做自动化测试为什么总是失败?
How can beginners learn flutter efficiently?
Want to ask, how to choose a securities firm? Is it safe to open an account online?
[deploy pytoch project through onnx using tensorrt]
Pytorch softmax regression
嵌入式软件架构设计-消息交互
Reinforcement learning - learning notes 3 | strategic learning
Simple production of wechat applet cloud development authorization login
调查显示传统数据安全工具在60%情况下无法抵御勒索软件攻击
abap查表程序
[loss functions of L1, L2 and smooth L1]
[singleshotmultiboxdetector (SSD, single step multi frame target detection)]
A guide to threaded and asynchronous UI development in the "quick start fluent Development Series tutorials"
Redis master-slave mode
Acid transaction theory
leetcode:1200. Minimum absolute difference