当前位置:网站首页>MySQL advanced part 1: View

MySQL advanced part 1: View

2022-07-05 06:13:00 Dawnlighttt


View overview


View (View) It's a virtual existence table . The view does not actually exist in the database , Row and column data comes from tables used in queries that define views , And it's dynamically generated when using views . Generally speaking , The view is just a line SELECT The result set returned after the statement is executed . So when we create views , The main job is to create this SQL On the query statement .

The advantages of a view over a regular table include the following .

  • Simple : Users of views do not need to care about the structure of the corresponding tables 、 Association and screening criteria , It is already the result set of filtered composite conditions for users .
  • Security : Users of views can only access the result set they are allowed to query , Permission management of a table cannot be limited to a row or a column , But it can be realized simply by view .
  • Data independence : Once the structure of the view is determined , It can shield the influence of table structure change on users , Adding columns to the source table has no effect on the view ; Source table change column name , Can be solved by modifying the view , No impact on visitors .

Create or modify views


The syntax for creating a view is :

CREATE [OR REPLACE] [ALGORITHM = {
   UNDEFINED | MERGE | TEMPTABLE}]

VIEW view_name [(column_list)]

AS select_statement

[WITH [CASCADED | LOCAL] CHECK OPTION]

ALTER [ALGORITHM = {
   UNDEFINED | MERGE | TEMPTABLE}]

VIEW view_name [(column_list)]

AS select_statement

[WITH [CASCADED | LOCAL] CHECK OPTION]
 Options  : 
	WITH [CASCADED | LOCAL] CHECK OPTION  Decide whether to allow the data to be updated so that the record no longer meets the view conditions .
	
	LOCAL :  You can update as long as you meet the conditions of this view .
	CASCADED :  All the conditions for all views for that view must be met to update .  The default value is .

Example , establish city_country_view View , The implementation is as follows SQL :

create view city_country_view 
as 
select t.*,c.country_name from country c , city t where c.country_id = t.country_id;

Query view :

 Insert picture description here

from MySQL 5.1 Version start , Use SHOW TABLES The command not only displays the name of the table , The name of the view is also displayed , There is no way to display views separately SHOW VIEWS command .

 Insert picture description here


Again , In the use of SHOW TABLE STATUS When ordered , It can not only display the information of the table , At the same time, it can also display the information of the view .

 Insert picture description here

If you need to query the definition of a view , have access to SHOW CREATE VIEW Command to view :

 Insert picture description here

Delete view


grammar :

DROP VIEW [IF EXISTS] view_name [, view_name] ...[RESTRICT | CASCADE]	

Example , Delete view city_country_view :

DROP VIEW city_country_view ;

 Insert picture description here


原网站

版权声明
本文为[Dawnlighttt]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202140620215790.html