❶ sql server如何判斷視圖是否存在
SELECT count(*) as cut FROM sysviews WHERE object_id = '[dbo].[視圖名]'
if fieldByName('cut')>0 then
//存在
else
//不存在
❷ SQL 創建的視圖是真實存在的嗎
不創建視圖當然可以了,
視圖就相當於你的查詢語句,
它不是實質的存在,
但它保存在資料庫里,
它本身沒有數據,它的數據都是根據數據表來得到,
因些不能對它的數據進行修改
❸ sql 中在什麼情況下使用視圖,有什麼好處
什麼情況下會用到視圖?
比如說一個比較復雜的查詢不想每次都寫很多語句,就可以寫個視圖。下次查詢的時候是需要使用select * from視圖名就可以了。
或者給特定用戶開放某些表的讀取許可權,但要加一些行和列的限制,也可以寫個視圖。
視圖的好處,可以主要分為四點:
第一點: 使用視圖,可以定製用戶數據,聚焦特定的數據。
解釋:
在實際過程中,公司有不同角色的工作人員。
以銷售公司為例:,采購人員,可以需要一些與其有關的數據,而與他無關的數據,對沒有任何意義,我們可以根據這一實際情況,專門為采購人員創建一個視圖,以後他在查詢數據時,只select*fromview_caigou就可以了。
第二點:使用視圖,可以簡化數據操作。
解釋:
在使用查詢時,在很多時候要使用聚合函數,同時還要顯示其它欄位的信息,可能還會需要關聯到其它表,這時寫的語句可能會很長,如果這個動作頻繁發生的話,則可以創建視圖。以後要用的話,只需要select*fromview1就可以了。
第三點:使用視圖,基表中的數據就有了一定的安全性
因為視圖是虛擬的,物理上是不存在的,只是存儲了數據的集合,故可以將基表中重要的欄位信息,可以不通過視圖給用戶,視圖是動態的數據的集合,數據是隨著基表的更新而更新。同時,用戶對視圖,不可以隨意的更改
和刪除,可以保證數據的安全性。
第四點:可以合並分離的數據,創建分區視圖
隨著社會的發展,公司業務量不斷的擴大,一個大公司,下屬都設有很多的分公司,為了管理方便,需要統一表的結構,定期查看各公司業務情況,而分別看各個公司的數據很不方便,沒有很好的可比性,如果將這些數據合並為一個表格里,就方便多了,這時就可以使用union關鍵字,將各分公司的數據合並為一個視圖。
❹ 在sql資料庫里的視圖是什麼意思,怎麼理解
視圖為原始資料庫數據的一種變換,是查看錶中數據的另外一種方式。可以將視圖看成是一個移動的窗口,通過它可以看到感興趣的數據。視圖為從一個或多個實際表中獲得的,這些表的數據存放在資料庫中。那些用於產生視圖的表叫做該視圖的基表。一個視圖也可以從另一個視圖中產生。
視圖的定義存在資料庫中,與此定義相關的數據並沒有再存一份於資料庫中。通過視圖看到的數據存放在基表中。
(4)sql視圖是存在的嗎擴展閱讀
視圖有很多優點,主要表現在:
1、視點集中
使用戶只關心它感興趣的某些特定數據和他們所負責的特定任務。這樣通過只允許用戶看到視圖中所定義的數據而不是視圖引用表中的數據而提高了數據的安全性。
2、簡化操作
視圖大大簡化了用戶對數據的操作。因為在定義視圖時,若視圖本身就是一個復雜查詢的結果集,這樣在每一次執行相同的查詢時,不必重新寫這些復雜的查詢語句,只要一條簡單的查詢視圖語句即可。可見視圖向用戶隱藏了表與表之間的復雜的連接操作。
3、定製數據
視圖能夠實現讓不同的用戶以不同的方式看到不同或相同的數據集。因此,當有許多不同水平的用戶共用同一資料庫時,這顯得極為重要。
4、合並分割數據
在有些情況下,由於表中數據量太大,故在表的設計時常將表進行水平分割或垂直分割,但表的結構的變化卻對應用程序產生不良的影響。如果使用視圖就可以重新保持原有的結構關系,從而使外模式保持不變,原有的應用程序仍可以通過視圖來重載數據。
5、安全性
視圖可以作為一種安全機制。通過視圖用戶只能查看和修改他們所能看到的數據。其它資料庫或表既不可見也不可以訪問。如果某一用戶想要訪問視圖的結果集,必須授予其訪問許可權。視圖所引用表的訪問許可權與視圖許可權的設置互不影響。
❺ SQL中怎麼判斷視圖是否存在
SQL Server 2000
IF EXISTS (SELECT * FROM sysviews WHERE object_id = '[dbo].[視圖名]'
SQL Server 2005
IF EXISTS (SELECT * FROM sys.views WHERE object_id = '[dbo].[視圖名]'
❻ sql中視圖與表的區別
sql中視圖與表的區別為:性質不同、存儲內容不同、操作不同。
一、性質不同
1、視圖:視圖不是一個獨立的文件,是由一個或幾個基本表導出形成的虛表。
2、表:表是資料庫中用來存儲數據的對象,是有結構的數據的集合,是整個資料庫系統的基礎。
二、存儲內容不同
1、視圖:視圖存儲的內容是來自本地數據源或遠程數據源的定義,不存放實際數據。
2、表:表存儲的內容是本地數據源的數據。
三、操作不同
1、視圖:操作者只可以對視圖進行查操作,不能進行增刪改操作。
2、表:操作者可以對表進行增刪改查四種操作。
❼ SQL 視圖是否是依賴表存在
對,視圖是由表做為基礎而產生的虛擬表,基內容基於基礎表,基礎表更改後,視圖做相應改變,所以視圖依賴表存在
❽ 如何判斷mysql 中視圖是否存在
可以通過select查詢視圖的方式,來判斷視圖是否存在。
--1.假設現在新建一個視圖
create or replace force view test_view as
select * from dept;
--2.通過count(1)查出來的是,該視圖中記錄的總條數
select count(1) from test_view;
--3.如果要判斷該視圖是否存在,直接查看該視圖中的內容即可
select * from test_view;
-- 如果有欄位等內容,說明視圖是存在的。反之,無法成功編譯,因為視圖不存在。
❾ 請問SQL中視圖與查詢的區別
SQL中視圖與查詢的區別為:功能不同、歸屬不同、數據來源不同。
一、功能不同
1、視圖:視圖可以更新欄位內容並返回原表。
2、查詢:查詢文件中的記錄數據不能修改。
二、歸屬不同
1、視圖:視圖不是一個獨立的文件,它保存在資料庫中。
2、查詢:查詢是一個獨立的文件,不屬於資料庫。
三、數據來源不同
1、視圖:視圖的數據來源可以是本地數據源,也可以是遠程數據源。
2、查詢:查詢的數據來源只有本地數據源,不能訪問遠程數據源。
❿ SQL 創建的視圖會存放到硬碟上嗎
對是保存在資料庫中,視圖是一張虛擬表,保存在資料庫中的是SQL語句
應該在.mdf文件中