show full tables from 數(shù)據(jù)庫名 [like 'pattern']
目前成都創(chuàng)新互聯(lián)已為千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、網(wǎng)站托管維護(hù)、企業(yè)網(wǎng)站設(shè)計、法庫網(wǎng)站維護(hù)等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
"[]"表示可選的, like后面跟的是表名的模糊查詢,.
舉例:
一個視圖的名字叫v_user, SQL語句可以寫為show full tables from 數(shù)據(jù)庫名 like '%v_user%';
MySQL查詢視圖
1、什么是視圖
視圖:MySQL從5.0.1版本開始提供視圖功能。一種虛擬存在的表,行和列的數(shù)據(jù)來自定義視圖的查詢中使用的表,并且是在使用視圖時動態(tài)生成的,只保存了sql邏輯,不保存查詢結(jié)果
2、視圖應(yīng)用場景
多個地方用到同樣的查詢結(jié)果該查詢結(jié)果使用的sql語句較復(fù)雜
4、視圖的好處
使用簡單安全數(shù)據(jù)獨(dú)立?
5、創(chuàng)建或者修 改視圖
創(chuàng)建視圖的語法:
修改視圖的語法
6、視圖更新性
視圖的可更新性和視圖中查詢的定義有關(guān)系,以下類型的視圖是不能更新的。(1)包含以下關(guān)鍵字的sql語句:分組函數(shù)、distinct、group ?by、having、union或者union all(2)常量視圖(3)Select中包含子查詢(4)join(5)from一個不能更新的視圖(6)where子句的子查詢引用了from子句中的表
7、刪除視圖的語法
用戶可以一次刪除一個或者多個視圖,前提是必須有該視圖的drop權(quán)限。
8、查看視圖結(jié)構(gòu)的語法
show tables;如果需要查詢某個視圖的定義,可以使用show create view命令進(jìn)行查看
一.視圖概述
視圖是一個虛擬表,其內(nèi)容由查詢定義。同真實(shí)的表一樣,視圖包含一系列帶有名稱的列和行數(shù)據(jù)。但是,視圖并不在數(shù)據(jù)庫中以存儲的數(shù)據(jù)值集形式存在。行和列數(shù)據(jù)來自由定義視圖的查詢所引用的表,并且在引用視圖時動態(tài)生成。
對其中所引用的基礎(chǔ)表來說,視圖的作用類似于篩選。定義視圖的篩選可以來自當(dāng)前或其它數(shù)據(jù)庫的一個或多個表,或者其它視圖。通過視圖進(jìn)行查詢沒有任何限制,通過它們進(jìn)行數(shù)據(jù)修改時的限制也很少。
視圖是存儲在數(shù)據(jù)庫中的查詢的SQL 語句,它主要出于兩種原因:安全原因, 視圖可以隱藏一些數(shù)據(jù),如:社會保險基金表,可以用視圖只顯示姓名,地址,而不顯示社會保險號和工資數(shù)等,另一原因是可使復(fù)雜的查詢易于理解和使用。
視圖:查看圖形或文檔的方式。
視圖是從一個或多個表或視圖中導(dǎo)出的表,其結(jié)構(gòu)和數(shù)據(jù)是建立在對表的查詢基礎(chǔ)上的。和表一樣,視圖也是包括幾個被定義的數(shù)據(jù)列和多個數(shù)據(jù)行,但就本質(zhì)而言這些數(shù)據(jù)列和數(shù)據(jù)行來源于其所引用的表。
所以視圖不是真實(shí)存在的基礎(chǔ)表而是一張?zhí)摫?,視圖所對應(yīng)的數(shù)據(jù)并不實(shí)際地以視圖結(jié)構(gòu)存儲在數(shù)據(jù)庫中,而是存儲在視圖所引用的表中。
視圖一經(jīng)定義便存儲在數(shù)據(jù)庫中,與其相對應(yīng)的數(shù)據(jù)并沒有像表那樣又在數(shù)據(jù)庫中再存儲一份,通過視圖看到的數(shù)據(jù)只是存放在基本表中的數(shù)據(jù)。對視圖的操作與對表的操作一樣,可以對其進(jìn)行查詢、修改(有一定的限制)、刪除。
當(dāng)對通過視圖看到的數(shù)據(jù)進(jìn)行修改時,相應(yīng)的基本表的數(shù)據(jù)也要發(fā)生變化,同時,若基本表的數(shù)據(jù)發(fā)生變化,則這種變化也可以自動地反映到視圖中。
1) mysql show table status where comment='view';
(說明:Mysql5.1支持視圖,視圖被看作一種抽象表,因此顯示視圖狀態(tài)的語句與顯示表狀態(tài)的語句相同,只是在comment列中以‘view’區(qū)分)
2) mysql select * from information_schema.tables where table_schema='yourDatabaseName' and table_type='view';
(說明:這種方法通過系統(tǒng)表查找,效果同上,顯示信息更詳細(xì)。如果不能正確顯示結(jié)果,可能是大小寫的問題,Mysql在不同系統(tǒng)平臺不同配置參數(shù)下的顯示結(jié)果可能不同,注意這點(diǎn)。)
可以通過select查詢視圖的方式,來判斷視圖是否存在。
--1.假設(shè)現(xiàn)在新建一個視圖
create or replace force view test_view as
select * from dept;
--2.通過count(1)查出來的是,該視圖中記錄的總條數(shù)
select count(1) from test_view;
--3.如果要判斷該視圖是否存在,直接查看該視圖中的內(nèi)容即可
select * from test_view;
-- 如果有字段等內(nèi)容,說明視圖是存在的。反之,無法成功編譯,因?yàn)橐晥D不存在。
使用示例
使用示例
使用示例
檢查選項(xiàng)的使用
mysql是可以基于視圖創(chuàng)建視圖,它會檢查視圖所依賴的視圖的規(guī)則
如果再基于v2創(chuàng)建視圖v3,v3沒有定義檢查選項(xiàng),則此時向v3中插入數(shù)據(jù)時,不會檢查是否滿足v3的條件,但是會檢查是否滿足v2和v1的條件
local選項(xiàng)相比于cascaded,不會自動向上添加選項(xiàng)
如創(chuàng)建一個視圖,此時視圖中只包含一條數(shù)據(jù)
例如,現(xiàn)要查詢每個學(xué)生選修的課程(多對多,三張表),將SQL保存到視圖,以后再想查詢,直接select * from 視圖即可