SQL中的視圖提高了資料庫系統的安全性。
視圖能夠對機密數據提供安全保護。有了視圖機制,就可以在設計資料庫應用系統時,對不同的用戶定義不同的視圖,使機密數據不出現在不應看到這些數據的用戶視圖上,這樣就由視圖的機制自動提供了對機密數據的安全保護功能。
sql語言的特點:
1、綜合統一
SQL語言集數據定義語言DDL、數據操縱語言DML、數據控制語言DCL的功能於一體,語言風格統一,可以獨立完成資料庫生命周期中的全部活動,包括定義關系模式、錄入數據以建立資料庫、查詢、更新、維護、資料庫重構、資料庫安全性控制等一系列操作要求;
這就為資料庫應用系統開發提供了良好的環境,例如用戶在資料庫投入運行後,還可根據需要隨時地逐步地修改模式,並不影響資料庫的運行,從而使系統具有良好的可擴充性。
2、高度非過程化
非關系數據模型的數據操縱語言是面向過程的語言,用其完成某項請求,必須指定存取路徑。而用SQL語言進行數據操作,用戶只需提出「做什麼」,而不必指明「怎麼做」,因此用戶無需了解存取路徑,存取路徑的選擇以及SQL語句的操作過程由系統自動完成。這不但大大減輕了用戶負擔,而且有利於提高數據獨立性。
3、面向集合的操作方式
SQL語言採用集合操作方式,不僅查找結果可以是元組的集合,而且一次插入、刪除、更新操作的對象也可以是元組的集合。
非關系數據模型採用的是面向記錄的操作方式,任何一個操作其對象都是一條記錄。例如查詢所有平均成績在80分以上的學生姓名,用戶必須說明完成該請求的具體處理過程,即如何用循環結構按照某條路徑一條一條地把滿足條件的學生記錄讀出來。
(1)sql數據對視圖影響擴展閱讀:
SQL語言具數據定義、數據操作、數據控制等三個常見功能:
1、SQL數據定義功能
能夠定義資料庫的三級模式結構,即外模式、全局模式和內模式結構。在SQL中,外模式有叫做視圖(View),全局模式簡稱模式(Schema),內模式由系統根據資料庫模式自動實現,一般無需用戶過問。
2、SQL數據操縱功能
包括對基本表和視圖的數據插入、刪除和修改,特別是具有很強的數據查詢功能。
3、SQL的數據控制功能
主要是對用戶的訪問許可權加以控制,以保證系統的安全性。
2. SQL 當數據很多時,使用視圖是否影響速度
影響不大,畢竟視圖就是一張虛擬表
3. 對sql視圖進行修改時是否會改變基本數據表數據
會的。
視圖只是資料庫在磁碟上的一個縮小范圍的邏輯影像,任何修改都會修改到基本數據表的。
4. sql 中在什麼情況下使用視圖,有什麼好處
什麼情況下會用到視圖?
比如說一個比較復雜的查詢不想每次都寫很多語句,就可以寫個視圖。下次查詢的時候是需要使用select * from視圖名就可以了。
或者給特定用戶開放某些表的讀取許可權,但要加一些行和列的限制,也可以寫個視圖。
視圖的好處,可以主要分為四點:
第一點: 使用視圖,可以定製用戶數據,聚焦特定的數據。
解釋:
在實際過程中,公司有不同角色的工作人員。
以銷售公司為例:,采購人員,可以需要一些與其有關的數據,而與他無關的數據,對沒有任何意義,我們可以根據這一實際情況,專門為采購人員創建一個視圖,以後他在查詢數據時,只select*fromview_caigou就可以了。
第二點:使用視圖,可以簡化數據操作。
解釋:
在使用查詢時,在很多時候要使用聚合函數,同時還要顯示其它欄位的信息,可能還會需要關聯到其它表,這時寫的語句可能會很長,如果這個動作頻繁發生的話,則可以創建視圖。以後要用的話,只需要select*fromview1就可以了。
第三點:使用視圖,基表中的數據就有了一定的安全性
因為視圖是虛擬的,物理上是不存在的,只是存儲了數據的集合,故可以將基表中重要的欄位信息,可以不通過視圖給用戶,視圖是動態的數據的集合,數據是隨著基表的更新而更新。同時,用戶對視圖,不可以隨意的更改
和刪除,可以保證數據的安全性。
第四點:可以合並分離的數據,創建分區視圖
隨著社會的發展,公司業務量不斷的擴大,一個大公司,下屬都設有很多的分公司,為了管理方便,需要統一表的結構,定期查看各公司業務情況,而分別看各個公司的數據很不方便,沒有很好的可比性,如果將這些數據合並為一個表格里,就方便多了,這時就可以使用union關鍵字,將各分公司的數據合並為一個視圖。
5. SQL2005資料庫視圖的作用,我們在什麼時候會用到視圖。
作用:
簡單性:簡化用戶對數據的理解,可以簡化操作。常用的查詢可定義為視圖,從而使用戶
不必為以後的操作每次指定全部的條件。
安全性:通過視圖用戶只能查詢和修改所能見到的數據。通過視圖,用戶可被限制在數據
的不同子集上:使用許可權可被限制在基表的行的子集上、列的子集上、基表中的
數據的統計匯總上、在另一視圖的一個子集上或一些視圖和基表合並後的子集上。
邏輯數據獨立性:視圖可幫助用戶屏蔽真實表結構變化帶來的影響。
用到視圖的時候:
1). 經常使用的查詢
2). 要保證表的結構和數據安全
6. SQL中使用視圖的優點和缺點是什麼
視圖的優點與缺點
在程序設計的時候必須先了解視圖的優缺點,這樣可以揚長避短,視圖具有如下的一些優點:
● 簡單性。視圖不僅可以簡化用戶對數據的理解,也可以簡化他們的操作。那些被經常使用的查詢可以被定義為視圖,從而使用戶不必為以後的操作每次都指定全部的條件。
● 安全性。通過視圖用戶只能查詢和修改他們所能見到的數據。資料庫中的其他數據則既看不見也取不到。資料庫授權命令可以使每個用戶對資料庫的檢索限制到特定的資料庫對象上,但不能授權到資料庫特定行和特定的列上。通過視圖,用戶可以被限制在數據的不同子集上。
● 邏輯數據獨立性。視圖可以使應用程序和資料庫表在一定程度上獨立。如果沒有視圖,應用一定是建立在表上的。有了視圖之後,程序可以建立在視圖之上,從而程序與資料庫表被視圖分割開來。
視圖也存在一些缺點,主要如下。
● 性能:SQL Server必須把視圖的查詢轉化成對基本表的查詢,如果這個視圖是由一個復雜的多表查詢所定義,那麼,即使是視圖的一個簡單查詢,SQL Server也把它變成一個復雜的結合體,需要花費一定的時間。
● 修改限制:當用戶試圖修改視圖的某些行時,SQL Server必須把它轉化為對基本表的某些行的修改。對於簡單視圖來說,這是很方便的,但是,對於比較復雜的視圖,可能是不可修改的。
所以,在定義資料庫對象時,不能不加選擇地來定義視圖,應該權衡視圖的優點和缺點,合理地定義視圖。
7. 視圖sql的優缺點
一,視圖著重於特定數據。
視圖可以讓用戶或者程序開發人員只看到他們所需要的數據,而不需要把表中的所有信息與欄位暴露出來,這樣增強了數據的安全性。
二,簡化數據的操作,易維護。
我們可以將經常用到的多表聯合查詢出來的數據,或特定的結果集定義為視圖,這樣就起到了模塊化數據的作用。我們在使用這些數據時直接查詢該視圖就可以,而不用到處寫長長的SQL語句,這樣也起到易維護的作用。
三,視圖可以限定查詢數據。
比如:對於不同的用戶,我們只提供部分數據給他。這樣,我們就可以在視圖中限定結果集,然後返回該視圖給他。這樣,無論用戶怎麼對視圖定義查詢條件,他也不能查詢出我們不想提供給他的數據。 雖然視圖可以給我們帶來種種便利,但不意味著我們就可以濫用它。因為視圖其實就是一段SQL語句,所以它的結果都是每次調用時動態生成的。如果不合理的定義視圖,必然帶來性能上的損耗。
下面是我們在創建視圖應該要注意的幾點:
一,操作視圖會比直接操作基礎表要慢,所以我們盡量避免在大型表上創建視圖。
二,盡量不要創建嵌套視圖,就是在視圖中使用視圖。 這樣在查詢時,會多次重復訪問基礎表,帶來性能損耗。
三,盡量在視圖只返回所需的信息,盡量不要在視圖使用不需要訪問的表。
四,在大型表或者復雜定義的視圖,可以使用存儲過程代替。
五,頻繁使用的視圖,可以使用索引視圖來代替。
8. 向 SQL 視圖 中添加,刪除,修改會影響 基表嗎
當然會影響到基表。
視圖能對查詢出來的記錄進行修改,並將修改後的數據回送到源表中。
如果是在vfp中,只要在視圖設計器的「更新條件」選項卡中選中「發送SQL更新」,就可將修改後的數據回送到源表中。否則,數據不回送。