1. sql中視圖的定義與作用是什麼做好結合實例講解一下,視圖能存儲數據嗎與表有什麼區別
從用戶角度來看,一個視圖是從一個特定的角度來查看資料庫中的數據。從資料庫系統內部來看,一個視圖是由SELECT語句組成的查詢定義的虛擬表。從資料庫系統內部來看,視圖是由一張或多張表中的數據組成的,從資料庫系統外部來看,視圖就如同一張表一樣,對表能夠進行的一般操作都可以應用於視圖,例如查詢,插入,修改,刪除操作等。
更多視圖的知識,請在這里查看
http://ke..com/view/71981.htm
語法
CREATE VIEW view [(field1[, field2[, ...]])] AS selectstatement
CREATE VIEW 語句可分為以下幾個部分:
部分 說明
view 欲創建的索引的名稱。
field1, field2 選擇語句中標明的相應欄位名.
示例:
CREATE VIEW Customers
AS
SELECT *
FROM CompanyData.dbo.Customers_33
2. sql中視圖與表的區別
sql中視圖與表的區別為:性質不同、存儲內容不同、操作不同。
一、性質不同
1、視圖:視圖不是一個獨立的文件,是由一個或幾個基本表導出形成的虛表。
2、表:表是資料庫中用來存儲數據的對象,是有結構的數據的集合,是整個資料庫系統的基礎。
二、存儲內容不同
1、視圖:視圖存儲的內容是來自本地數據源或遠程數據源的定義,不存放實際數據。
2、表:表存儲的內容是本地數據源的數據。
三、操作不同
1、視圖:操作者只可以對視圖進行查操作,不能進行增刪改操作。
2、表:操作者可以對表進行增刪改查四種操作。
3. SQL中表的類型
在SQL里,基本表的關鍵字是TABLE,是一張二維表,存放數據集的表。視圖的關鍵字是VIEW,視圖可以理解為虛擬表,里邊是不存放數據的,只是存放一條查詢語句,查詢視圖時顯示的數據都是從基本表中根據條件篩選出來的結果。 其具體定義如下:(1)所謂基本表,是這樣的一種表,它本身是實際存在的,每個表在存儲中可用一個存儲文件來表示(一個基本表就是一個關系),它不是由其他表導出的表。
(2)視圖是資料庫中的虛擬表,由一個或幾個基本表導出,用於讓用戶變換角度來操作基本表。資料庫中只保存視圖的定義,視圖中不存放對應的數據。 (3)導出表:在基本表的基礎上通過定義視圖而生成的表,稱為導出表。導出表是虛表,其本身不存儲於資料庫中,資料庫僅在數據字典中存儲其定義。
視圖(view)是在基本表之上建立的表,它的結構(即所定義的列)和內容(即所有數據行)都來自基本表,它依據基本表存在而存在。一個視圖可以對應一個基本表,也可以對應多個基本表。視圖是基本表的抽象和在邏輯意義上建立的新關系
4. 在sql資料庫里的視圖是什麼意思,怎麼理解
視圖為原始資料庫數據的一種變換,是查看錶中數據的另外一種方式。可以將視圖看成是一個移動的窗口,通過它可以看到感興趣的數據。視圖為從一個或多個實際表中獲得的,這些表的數據存放在資料庫中。那些用於產生視圖的表叫做該視圖的基表。一個視圖也可以從另一個視圖中產生。
視圖的定義存在資料庫中,與此定義相關的數據並沒有再存一份於資料庫中。通過視圖看到的數據存放在基表中。
(4)sql視圖數據類型擴展閱讀
視圖有很多優點,主要表現在:
1、視點集中
使用戶只關心它感興趣的某些特定數據和他們所負責的特定任務。這樣通過只允許用戶看到視圖中所定義的數據而不是視圖引用表中的數據而提高了數據的安全性。
2、簡化操作
視圖大大簡化了用戶對數據的操作。因為在定義視圖時,若視圖本身就是一個復雜查詢的結果集,這樣在每一次執行相同的查詢時,不必重新寫這些復雜的查詢語句,只要一條簡單的查詢視圖語句即可。可見視圖向用戶隱藏了表與表之間的復雜的連接操作。
3、定製數據
視圖能夠實現讓不同的用戶以不同的方式看到不同或相同的數據集。因此,當有許多不同水平的用戶共用同一資料庫時,這顯得極為重要。
4、合並分割數據
在有些情況下,由於表中數據量太大,故在表的設計時常將表進行水平分割或垂直分割,但表的結構的變化卻對應用程序產生不良的影響。如果使用視圖就可以重新保持原有的結構關系,從而使外模式保持不變,原有的應用程序仍可以通過視圖來重載數據。
5、安全性
視圖可以作為一種安全機制。通過視圖用戶只能查看和修改他們所能看到的數據。其它資料庫或表既不可見也不可以訪問。如果某一用戶想要訪問視圖的結果集,必須授予其訪問許可權。視圖所引用表的訪問許可權與視圖許可權的設置互不影響。
5. 怎樣查看SQL視圖的欄位類型
SSMS,
1、【對象樹】選中視圖,
2、展開視圖,出現「列」
3、展開「列」
一目瞭然:)
6. 視圖sql的功能
使用SQL視圖可以實現下列任一或所有功能:
1,將用戶限定在表中的特定行上。
例如,只允許雇員看見工作跟蹤表內記錄其工作的行。
2,將用戶限定在特定列上。
例如,對於那些不負責處理工資單的雇員,只允許他們看見雇員表中的姓名列、辦公室列、工作電話列、郵件列和部門列,而不能看見任何包含工資信息或個人信息的列。
3,將多個表中的列聯接起來,使它們看起來象一個表。
4,聚合信息而非提供詳細信息。
例如,顯示一個列的和,或列的最大值和最小值。 一個視圖可以引用另一個視圖。例如,titleview 顯示的信息對管理人員很有用,但公司通常只在季度或年度財務報表中才公布本年度截止到現在的財政數字。可以建立一個視圖,在其中包含除 au_ord 和 ytd_sales 外的所有 titleview 列。使用這個新視圖,客戶可以獲得已上市的書籍列表而不會看到財務信息:
CREATE VIEW Cust_titleview
AS
SELECT title, au_lname, price, pub_id
FROM titleview
視圖可用於在多個資料庫或 Microsoft® SQL Server™ 2000 實例間對數據進行分區。分區視圖可用於在整個伺服器組內分布資料庫處理。伺服器組具有與伺服器聚集相同的性能優點,並可用於支持最大的 Web 站點或公司數據中心的處理需求。原始表被細分為多個成員表,每個成員表包含原始表的行子集。每個成員表可放置在不同伺服器的資料庫中。每個伺服器也可得到分區視圖。分區視圖使用Transact-SQLUNION 運算符,將在所有成員表上選擇的結果合並為單個結果集,該結果集的行為與整個原始表的復本完全一樣。例如在三個伺服器間進行表分區。在第一個伺服器上定義如下的分區視圖:
CREATE VIEW PartitionedView AS
SELECT *
FROM MyDatabase.dbo.PartitionTable1
UNION ALL
SELECT *
FROM Server2.MyDatabase.dbo.PartitionTable2
UNION ALL
SELECT *
FROM Server3.MyDatabase.dbo.PartitionTable3
在其它兩個伺服器上定義類似的分區視圖。利用這三個視圖,三個伺服器上任何引用 PartitionedView 的 Transact-SQL 語句都將看到與原始表中相同的行為。似乎每個伺服器上都存在原始表的復本一樣,而實際上每個表只有一個成員表和分區視圖。有關更多信息,請參見視圖使用方案。
只要所做的修改隻影響視圖所引用的其中一個基表,就可以更新所有 SQL Server 版本內的視圖(可以對其執行 UPDATE、DELETE 或 INSERT 語句)。
-- Increase the prices for publisher '0736' by 10%.
UPDATE titleview
SET price = price * 1.10
WHERE pub_id = '0736'
GO
SQL Server 2000 支持可引用視圖的更復雜的 INSERT、UPDATE 和 DELETE 語句。可在視圖上定義 INSTEAD OF 觸發器,指定必須對基表執行的個別更新以支持 INSERT、UPDATE 或 DELETE 語句。另外,分區視圖還支持 INSERT、UDPATE 和 DELETE 語句修改視圖所引用的多個成員表。
索引視圖 是 SQL Server 2000 具有的功能,可顯著提高復雜視圖類型的性能,這些視圖類型通常在數據倉庫或其它決策支持系統中出現。
視圖的結果集通常不保存在資料庫中,因此視圖也稱為虛擬表。視圖的結果集動態包含在語句邏輯中並在運行時動態生成。有關更多信息,請參見視圖解析。
復雜的查詢(如決策支持系統中的查詢)可引用基表中的大量行,並將大量信息聚積在相對較簡潔的聚合中,如總和或平均值。SQL Server 2000 支持在執行此類復雜查詢的視圖上創建聚集索引。當執行 CREATE INDEX 語句時,視圖 SELECT 的結果集將永久存儲在資料庫中。SQL 語句此後若引用該視圖,響應時間將會顯著縮短。對基本數據的修改將自動反映在視圖中。
SQL Server 2000 CREATE VIEW 語句支持 SCHEMABINDING 選項,以防止視圖所引用的表在視圖未被調整的情況下發生改變。必須為任何創建索引的視圖指定 SCHEMABINDING。
7. 在SQLServer中,下面關於視圖的描述,說法正確的是()。
1、視圖是一種基於表而定製的虛擬表。
2、視圖兼有查詢和表的特點。
3、視圖與表類似的地方是:可以用來更新表中的信息,並將更新結果永遠保存在磁碟上->得出B選項正確。
4、它與查詢類似的地方是,可以用來從一個或多個關聯的表中查找有用的信息。->得出A選項正確 答案補充 。
(7)sql視圖數據類型擴展閱讀:
但是,不像其它的語言,如C、Pascal等,SQL沒有循環結構(比如if-then-else、do-while)以及函數定義等等的功能。而且SQL只有一個數據類型的固定設置,換句話說,你不能在使用其它編程語言的時候創建你自己的數據類型。
SQL功能強大,但是概括起來,它可以分成以下幾組:
DML(DataManipulationLanguage,數據操作語言):用於檢索或者修改數據;
DDL(DataDefinitionLanguage,數據定義語言):用於定義數據的結構,比如創建、修改或者刪除資料庫對象;
DCL(DataControlLanguage,數據控制語言):用於定義資料庫用戶的許可權。
8. 在SQL2008創建視圖時,如何對日期/時間數據類型進行篩選操作
指定資料庫,需要有所有表查詢許可權和視圖創建許可權
use [database]
Grant select to [userName]
GRANT CREATE VIEW TO [userName]