mysql視圖怎么更改,mysql視圖可以增刪改嗎

如何在MySQL中創(chuàng)建視圖?

CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]\x0d\x0a VIEW view_name [(column_list)]\x0d\x0a AS select_statement\x0d\x0a [WITH [CASCADED | LOCAL] CHECK OPTION]\x0d\x0a\x0d\x0a該語(yǔ)句能創(chuàng)建新的視圖,如果給定了OR REPLACE子句,該語(yǔ)句還能替換已有的視圖。select_statement是一種SELECT語(yǔ)句,它給出了視圖的定義。該語(yǔ)句可從基表或其他視圖進(jìn)行選擇。\x0d\x0a該語(yǔ)句要求具有針對(duì)視圖的CREATE VIEW權(quán)限,以及針對(duì)由SELECT語(yǔ)句選擇的每一列上的某些權(quán)限。對(duì)于在SELECT語(yǔ)句中其他地方使用的列,必須具有SELECT權(quán)限。如果還有OR REPLACE子句,必須在視圖上具有DROP權(quán)限。\x0d\x0a視圖屬于數(shù)據(jù)庫(kù)。在默認(rèn)情況下,將在當(dāng)前數(shù)據(jù)庫(kù)創(chuàng)建新視圖。要想在給定數(shù)據(jù)庫(kù)中明確創(chuàng)建視圖,創(chuàng)建時(shí),應(yīng)將名稱指定為db_name.view_name。\x0d\x0amysql CREATE VIEW test.v AS SELECT * FROM t;\x0d\x0a\x0d\x0a表和視圖共享數(shù)據(jù)庫(kù)中相同的名稱空間,因此,數(shù)據(jù)庫(kù)不能包含具有相同名稱的表和視圖。\x0d\x0a視圖必須具有唯一的列名,不得有重復(fù),就像基表那樣。默認(rèn)情況下,由SELECT語(yǔ)句檢索的列名將用作視圖列名。要想為視圖列定義明確的名稱,可使用可選的column_list子句,列出由逗號(hào)隔開的ID。column_list中的名稱數(shù)目必須等于SELECT語(yǔ)句檢索的列數(shù)。\x0d\x0aSELECT語(yǔ)句檢索的列可以是對(duì)表列的簡(jiǎn)單引用。也可以是使用函數(shù)、常量值、操作符等的表達(dá)式。\x0d\x0a對(duì)于SELECT語(yǔ)句中不合格的表或視圖,將根據(jù)默認(rèn)的數(shù)據(jù)庫(kù)進(jìn)行解釋。通過(guò)用恰當(dāng)?shù)臄?shù)據(jù)庫(kù)名稱限定表或視圖名,視圖能夠引用表或其他數(shù)據(jù)庫(kù)中的視圖。\x0d\x0a能夠使用多種SELECT語(yǔ)句創(chuàng)建視圖。視圖能夠引用基表或其他視圖。它能使用聯(lián)合、UNION和子查詢。SELECT甚至不需引用任何表。在下面的示例中,定義了從另一表選擇兩列的視圖,并給出了根據(jù)這些列計(jì)算的表達(dá)式:\x0d\x0amysql CREATE TABLE t (qty INT, price INT);\x0d\x0amysql INSERT INTO t VALUES(3, 50);\x0d\x0amysql CREATE VIEW v AS SELECT qty, price, qty*price AS value FROM t;\x0d\x0amysql SELECT * FROM v;\x0d\x0a+------+-------+-------+\x0d\x0a| qty | price | value |\x0d\x0a+------+-------+-------+\x0d\x0a| 3 | 50 | 150 |\x0d\x0a+------+-------+-------+\x0d\x0a\x0d\x0a視圖定義服從下述限制:\x0d\x0a· SELECT語(yǔ)句不能包含F(xiàn)ROM子句中的子查詢。\x0d\x0a· SELECT語(yǔ)句不能引用系統(tǒng)或用戶變量。\x0d\x0a· SELECT語(yǔ)句不能引用預(yù)處理語(yǔ)句參數(shù)。\x0d\x0a· 在存儲(chǔ)子程序內(nèi),定義不能引用子程序參數(shù)或局部變量。\x0d\x0a· 在定義中引用的表或視圖必須存在。但是,創(chuàng)建了視圖后,能夠舍棄定義引用的表或視圖。要想檢查視圖定義是否存在這類問(wèn)題,可使用CHECK TABLE語(yǔ)句。\x0d\x0a· 在定義中不能引用TEMPORARY表,不能創(chuàng)建TEMPORARY視圖。\x0d\x0a· 在視圖定義中命名的表必須已存在。\x0d\x0a· 不能將觸發(fā)程序與視圖關(guān)聯(lián)在一起。\x0d\x0a在視圖定義中允許使用ORDER BY,但是,如果從特定視圖進(jìn)行了選擇,而該視圖使用了具有自己ORDER BY的語(yǔ)句,它將被忽略。\x0d\x0a對(duì)于定義中的其他選項(xiàng)或子句,它們將被增加到引用視圖的語(yǔ)句的選項(xiàng)或子句中,但效果未定義。例如,如果在視圖定義中包含LIMIT子句,而且從特定視圖進(jìn)行了選擇,而該視圖使用了具有自己LIMIT子句的語(yǔ)句,那么對(duì)使用哪個(gè)LIMIT未作定義。相同的原理也適用于其他選項(xiàng),如跟在SELECT關(guān)鍵字后的ALL、DISTINCT或SQL_SMALL_RESULT,并適用于其他子句,如INTO、FOR UPDATE、LOCK IN SHARE MODE、以及PROCEDURE。\x0d\x0a如果創(chuàng)建了視圖,并通過(guò)更改系統(tǒng)變量更改了查詢處理環(huán)境,會(huì)影響從視圖獲得的結(jié)果:\x0d\x0amysql CREATE VIEW v AS SELECT CHARSET(CHAR(65)), COLLATION(CHAR(65));\x0d\x0aQuery OK, 0 rows affected (0.00 sec)\x0d\x0a \x0d\x0amysql SET NAMES 'latin1';\x0d\x0aQuery OK, 0 rows affected (0.00 sec)\x0d\x0a \x0d\x0amysql SELECT * FROM v;\x0d\x0a+-------------------+---------------------+\x0d\x0a| CHARSET(CHAR(65)) | COLLATION(CHAR(65)) |\x0d\x0a+-------------------+---------------------+\x0d\x0a| latin1 | latin1_swedish_ci |\x0d\x0a+-------------------+---------------------+\x0d\x0a1 row in set (0.00 sec)\x0d\x0a \x0d\x0amysql SET NAMES 'utf8';\x0d\x0aQuery OK, 0 rows affected (0.00 sec)\x0d\x0a \x0d\x0amysql SELECT * FROM v;\x0d\x0a+-------------------+---------------------+\x0d\x0a| CHARSET(CHAR(65)) | COLLATION(CHAR(65)) |\x0d\x0a+-------------------+---------------------+\x0d\x0a| utf8 | utf8_general_ci |\x0d\x0a+-------------------+---------------------+\x0d\x0a1 row in set (0.00 sec)\x0d\x0a\x0d\x0a可選的ALGORITHM子句是對(duì)標(biāo)準(zhǔn)SQL的MySQL擴(kuò)展。ALGORITHM可取三個(gè)值:MERGE、TEMPTABLE或UNDEFINED。如果沒有ALGORITHM子句,默認(rèn)算法是UNDEFINED(未定義的)。算法會(huì)影響MySQL處理視圖的方式。\x0d\x0a對(duì)于MERGE,會(huì)將引用視圖的語(yǔ)句的文本與視圖定義合并起來(lái),使得視圖定義的某一部分取代語(yǔ)句的對(duì)應(yīng)部分。\x0d\x0a對(duì)于TEMPTABLE,視圖的結(jié)果將被置于臨時(shí)表中,然后使用它執(zhí)行語(yǔ)句。\x0d\x0a對(duì)于UNDEFINED,MySQL將選擇所要使用的算法。如果可能,它傾向于MERGE而不是TEMPTABLE,這是因?yàn)镸ERGE通常更有效,而且如果使用了臨時(shí)表,視圖是不可更新的。\x0d\x0a明確選擇TEMPTABLE的1個(gè)原因在于,創(chuàng)建臨時(shí)表之后、并在完成語(yǔ)句處理之前,能夠釋放基表上的鎖定。與MERGE算法相比,鎖定釋放的速度更快,這樣,使用視圖的其他客戶端不會(huì)被屏蔽過(guò)長(zhǎng)時(shí)間。\x0d\x0a視圖算法可以是UNDEFINED,有三種方式:\x0d\x0a· 在CREATE VIEW語(yǔ)句中沒有ALGORITHM子句。\x0d\x0a· CREATE VIEW語(yǔ)句有1個(gè)顯式ALGORITHM = UNDEFINED子句。\x0d\x0a· 為僅能用臨時(shí)表處理的視圖指定ALGORITHM = MERGE。在這種情況下,MySQL將生成告警,并將算法設(shè)置為UNDEFINED。\x0d\x0a正如前面所介紹的那樣,通過(guò)將視圖定義中的對(duì)應(yīng)部分合并到引用視圖的語(yǔ)句中,對(duì)MERGE進(jìn)行處理。在下面的示例中,簡(jiǎn)要介紹了MERGE的工作方式。在該示例中,假定有1個(gè)具有下述定義的視圖v_merge:\x0d\x0aCREATE ALGORITHM = MERGE VIEW v_merge (vc1, vc2) AS\x0d\x0aSELECT c1, c2 FROM t WHERE c3 100;\x0d\x0a\x0d\x0a示例1:假定發(fā)出了下述語(yǔ)句:\x0d\x0aSELECT * FROM v_merge;\x0d\x0a\x0d\x0aMySQL以下述方式處理語(yǔ)句:\x0d\x0a· v_merge成為t\x0d\x0a· *成為vc1、vc2,與c1、c2對(duì)應(yīng)\x0d\x0a· 增加視圖WHERE子句\x0d\x0a所產(chǎn)生的將執(zhí)行的語(yǔ)句為:\x0d\x0aSELECT c1, c2 FROM t WHERE c3 100;\x0d\x0a\x0d\x0a示例2:假定發(fā)出了下述語(yǔ)句:\x0d\x0aSELECT * FROM v_merge WHERE vc1 100) AND (c1

成都創(chuàng)新互聯(lián)公司2013年成立,先為綠春等服務(wù)建站,綠春等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為綠春企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

回答于?2022-11-16

MySQL創(chuàng)建視圖時(shí),要加上什么屬性才能在創(chuàng)建視圖后修改視圖里的數(shù)據(jù)呢?

語(yǔ)法

: CREATE VIEW 視圖名 [(列名1,列名2,……)]

[WITH ENCRYPTION]

AS

SELECT_STATEMENT

[WITH CHECK OPTION]----就是這個(gè)屬性決定該視圖能否修改數(shù)據(jù),真實(shí)作用是修改視圖的數(shù)據(jù)最終是在產(chǎn)生視圖的基表中,繼而表現(xiàn)在視圖上。

功能:創(chuàng)建視圖

例1:創(chuàng)建一個(gè)成績(jī)單視圖

CREATE VIEW dbo.vw_cjd(name, cid, result)

AS

SELECT name, report.cid, report.result FROM student JOIN report

ON student.sid=report.sid

例2:顯示成績(jī)單視圖

Select * from vw_cjd

修改視圖與刪除視圖

1. 修改視圖

語(yǔ)法:ALTER VIEW 視圖名 [(列名1,列名2,……)] [WITH ENCRYPTION]

AS

SELECT statement [WITH CHECK OPTION]

例:修改視圖vw_cjd

ALTER VIEW vw_cjd

AS

Select name, report.cid, report.result, address From student join report

ON student.sid=report.sid

查看Select * from vw_cjd

2. 刪除視圖

語(yǔ)法:DROP VIEW 視圖名

例:刪除視圖vw_cjd

DROP VIEW vw_cjd

視圖定義信息

一、視圖定義信息

1.在企業(yè)管理體制器中查看

2.查詢視圖Information_schema.views

3.查詢系統(tǒng)表syscomments

4.使用命令 sp_helptext 對(duì)象名

二、隱藏視圖定義

with encryption

通過(guò)視圖修改數(shù)據(jù)

¨ 只能影響一個(gè)基表;

¨ 如果指定WITH CHECK OPTION選項(xiàng),那么要驗(yàn)證所修改的數(shù)據(jù)。

怎么在mysql中修改視圖語(yǔ)句

.create or replace view 語(yǔ)句。//如視圖存在則覆蓋,如不存在則創(chuàng)建。

create or replace view algorith=temptable view student_view(nid,id,name) as select id,pid,title from student;

mysql 如何對(duì)視圖的名稱重命名?

建立視圖的語(yǔ)句本身就可以寫成create or replace,也就是建立或者重建。所以個(gè)人想到的辦法就是:刪除--再命名重建,或者也可以先建立新的視圖-再刪除舊的,新舊視圖并不沖突。

至于重命名,我能想到的只有rename命令,不過(guò)這個(gè)能操作視圖嗎,我表示懷疑,你可以試試(按照操作表的方式試試),不過(guò)估計(jì)不行。

mysql 視圖

1、什么是視圖

視圖:MySQL從5.0.1版本開始提供視圖功能。一種虛擬存在的表,行和列的數(shù)據(jù)來(lái)自定義視圖的查詢中使用的表,并且是在使用視圖時(shí)動(dòng)態(tài)生成的,只保存了sql邏輯,不保存查詢結(jié)果

2、視圖應(yīng)用場(chǎng)景

多個(gè)地方用到同樣的查詢結(jié)果該查詢結(jié)果使用的sql語(yǔ)句較復(fù)雜

4、視圖的好處

使用簡(jiǎn)單安全數(shù)據(jù)獨(dú)立?

5、創(chuàng)建或者修 改視圖

創(chuàng)建視圖的語(yǔ)法:

修改視圖的語(yǔ)法

6、視圖更新性

視圖的可更新性和視圖中查詢的定義有關(guān)系,以下類型的視圖是不能更新的。(1)包含以下關(guān)鍵字的sql語(yǔ)句:分組函數(shù)、distinct、group ?by、having、union或者union all(2)常量視圖(3)Select中包含子查詢(4)join(5)from一個(gè)不能更新的視圖(6)where子句的子查詢引用了from子句中的表

7、刪除視圖的語(yǔ)法

用戶可以一次刪除一個(gè)或者多個(gè)視圖,前提是必須有該視圖的drop權(quán)限。

8、查看視圖結(jié)構(gòu)的語(yǔ)法

show tables;如果需要查詢某個(gè)視圖的定義,可以使用show create view命令進(jìn)行查看

分享文章:mysql視圖怎么更改,mysql視圖可以增刪改嗎
路徑分享:http://m.kartarina.com/article20/heihco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、全網(wǎng)營(yíng)銷推廣、小程序開發(fā)、網(wǎng)站排名、外貿(mào)建站、標(biāo)簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
主站蜘蛛池模板: 热の无码热の有码热の综合| 无码成人一区二区| 亚洲熟妇无码av另类vr影视| 一本无码人妻在中文字幕免费| 久久久精品天堂无码中文字幕| 中文无码vs无码人妻 | 亚洲av专区无码观看精品天堂| 亚洲爆乳无码专区www| 亚洲日韩乱码中文无码蜜桃臀网站 | 无码精品人妻一区二区三区漫画| 亚洲国产成AV人天堂无码| 精品无码国产污污污免费网站国产| 毛片免费全部播放无码| 日韩人妻系列无码专区| 无码人妻精品一区二区三| 超清无码无卡中文字幕| 久久国产精品成人无码网站| 久久午夜伦鲁片免费无码| 亚洲AV中文无码乱人伦在线视色| 亚洲精品无码久久久久秋霞 | 亚洲无码高清在线观看| 直接看的成人无码视频网站| 亚洲国产精品无码久久SM| 永久免费av无码网站大全| 西西人体444www大胆无码视频| 日韩精品人妻系列无码专区 | 永久无码精品三区在线4| 少妇人妻偷人精品无码视频| 亚洲午夜AV无码专区在线播放| 国产在线无码制服丝袜无码| 亚洲AV无码国产精品永久一区| 无码国产精品一区二区免费| 日韩AV无码精品人妻系列| 久久午夜无码鲁丝片直播午夜精品 | 91精品日韩人妻无码久久不卡| 亚洲Av永久无码精品三区在线| 东京热无码av一区二区| 久久久久无码专区亚洲av| 亚洲中久无码不卡永久在线观看| 伊人久久大香线蕉无码麻豆| 一区二区三区无码高清视频|