當前位置:首頁 » 編程語言 » 視圖sql

視圖sql

發布時間: 2022-01-23 04:30:00

『壹』 如何寫下面視圖的sql

創建表,數據:

createtabletable1
(教師編號int,
星期幾int,
是否有課varchar(2));

insertintotable1values(1,1,'是');
insertintotable1values(3,2,'是');
insertintotable1values(1,1,'是');
insertintotable1values(3,3,'是');
insertintotable1values(2,2,'是');
insertintotable1values(2,3,'是');
insertintotable1values(1,1,'是');
insertintotable1values(1,2,'是');

執行:

select教師編號,
sum(casewhen星期幾=1then1else0end)as星期一,
sum(casewhen星期幾=2then1else0end)as星期二,
sum(casewhen星期幾=3then1else0end)as星期三
fromtable1groupby教師編號

結果:

以上sqlserver下執行,其他資料庫語法基本差不多。

『貳』 SQL視圖查詢

視圖可以被看成是虛擬表或存儲查詢。可通過視圖訪問的數據不作為獨特的對象存儲在資料庫內。資料庫內存儲的是 SELECT 語句。SELECT 語句的結果集構成視圖所返回的虛擬表。用戶可以用引用表時所使用的方法,在 Transact-SQL 語句中通過引用視圖名稱來使用虛擬表

視圖使用方案
視圖通常用來集中、簡化和自定義每個用戶對資料庫的不同認識。視圖可用作安全機制,方法是允許用戶通過視圖訪問數據,而不授予用戶直接訪問視圖基礎表的許可權。從(或向)Microsoft® SQL Server™ 2000 復制數據時也可使用視圖來提高性能並分區數據。

著重於特定數據
視圖讓用戶能夠著重於他們所感興趣的特定數據和所負責的特定任務。不必要的數據可以不出現在視圖中。這同時增強了數據的安全性,因為用戶只能看到視圖中所定義的數據,而不是基礎表中的數據。有關出於安全考慮使用視圖的更多信息,請參見使用視圖作為安全機制。

簡化數據操作
視圖可以簡化用戶操作數據的方式。可將經常使用的聯接、投影、聯合查詢和選擇查詢定義為視圖,這樣,用戶每次對特定的數據執行進一步操作時,不必指定所有條件和限定。例如,一個用於報表目的,並執行子查詢、外聯接及聚合以從一組表中檢索數據的復合查詢,就可以創建為一個視圖。視圖簡化了對數據的訪問,因為每次生成報表時無須寫或提交基礎查詢,而是查詢視圖。有關數據操作的更多信息,請參見查詢基礎知識。
還可以創建內嵌的用戶定義函數,在邏輯上作為參數化視圖運行,或作為在 WHERE 子句搜索條件中含有參數的視圖運行。有關更多信息,請參見內嵌用戶定義函數。
自定義數據
視圖允許用戶以不同的方式查看數據,即使他們同時使用相同的數據時也如此。這在具有不同目的和技術水平的用戶共享同一個資料庫時尤為有利。例如,可定義一個視圖以僅檢索由客戶經理處理的客戶數據。視圖可以根據使用該視圖的客戶經理的登錄 ID 決定檢索哪些數據。
導出和導入數據
可使用視圖將數據導出至其它應用程序。例如,可能希望使用 pubs 資料庫中的 stores 和 sales 表在 Microsoft® Excel 中分析銷售數據。為此,可創建一個基於 stores 和 sales 表的視圖。然後使用 bcp 實用工具導出由視圖定義的數據。也可使用 bcp 實用工具或 BULK INSERT 語句將數據從數據文件中導入某些視圖,條件是可以使用 INSERT 語句在視圖中插入行。有關向視圖中復制數據的限制的更多信息,請參見 INSERT。有關使用 bcp 實用工具和 BULK INSERT 語句從(或向)視圖中復制數據的更多信息,請參見向(或從)視圖中復制數據。
組合分區數據
Transact-SQL UNION 集合運算符可在視圖內使用,以將來自不同表的兩個或多個查詢結果組合成單一的結果集。這在用戶看來是一個單獨的表,稱為分區視圖。例如,如果一個表含有華盛頓的銷售數據,另一個表含有加利福尼亞的銷售數據,即可從 UNION 創建這兩個表的視圖。該視圖代表了這兩個區域的銷售數據。
使用分區視圖時,首先創建幾個相同的表,指定一個約束以決定可在各個表中添加的數據范圍。視圖即使用這些基表創建。當查詢該視圖時,SQL Server 自動決定查詢所影響的表,並僅引用這些表。例如,如果一個查詢指定只需要華盛頓州的銷售數據,則 SQL Server 只讀取含有華盛頓銷售數據的表,而並不訪問其餘的表。
分區試圖可基於來自多個異類源——如遠程伺服器——的數據,而不僅僅局限於同一資料庫中的表。例如,要將分別存儲組織中不同區域數據的幾台遠程伺服器上的數據組合起來,可以創建分布式查詢,從每個數據源中檢索數據,然後基於這些分布式查詢創建視圖。所有查詢都只從包含查詢所請求數據的遠程伺服器上讀取表中的數據,其它在視圖中由分布式查詢引用的伺服器均不被訪問。
當在多個表或伺服器上分割數據時,因為需掃描的數據較少,所以只訪問一部分數據的查詢運行得較快。如果表位於不同的伺服器或一台多處理器的計算機上,同樣可以對查詢所涉及的表進行同時掃描,從而改進查詢的性能。此外,象索引重建或表備份這樣的維護任務可更快地執行。
通過使用分區視圖,數據的外觀象是一個單一表,且能以單一表的方式進行查詢,而無須手動引用真正的基礎表。
如果滿足下列任一條件,則分區視圖可被更新:
在帶有邏輯的視圖上定義支持 INSERT、UPDATE 和 DELETE 語句的 INSTEAD OF 觸發器。
視圖和 INSERT、UPDATE 及 DELETE 語句均遵從為可更新分區視圖定義的規則。有關更多信息,請參見創建分區視圖。

『叄』 SQL視圖查詢語句

視圖查詢語言為select語句,和查詢表語句沒有任何區別。
sql:select xisn, object_id, session_id, locked_mode from v$locked_object;
解釋:以上語句就是查詢出資料庫中死鎖視圖下的相應信息語句,結構就是「select 欄位 from 視圖名稱」;
備註:資料庫中視圖通常用「V$」進行命名(這個是命名規范,不是非得用)。

『肆』 sql如何創建視圖

使用create view語句就可以創建視圖了,具體語句如下:

create view viewname as select * from Tab_EdsProd(Tab_EdsProd是表的名字)where (後面可以接一線限制的條件)。

刪除視圖:drop view viewname。

(4)視圖sql擴展閱讀

視圖的作用:

1、使用視圖,可以定製用戶數據,聚焦特定的數據。

2、使用視圖,可以簡化數據操作。

3、使用視圖,基表中的數據就有了一定的安全性。因為視圖是虛擬的,物理上是不存在的,只是存儲了數據的集合,我們可以將基表中重要的欄位信息,可以不通過視圖給用戶。

視圖是動態的數據的集合,數據是隨著基表的更新而更新。同時,用戶對視圖,不可以隨意的更改和刪除,可以保證數據的安全性。

4、使用視圖可以合並分離的數據,創建分區視圖。

參考資料:網路-sql語句大全

『伍』 視圖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。

『陸』 SQL視圖的定義和簡單使用

CREATE VIEW V1 AS
SELECT 課名,COUNT(*) AS 選課人數,AVG(成績) AS 平均成績

FROM 課程 JOIN 選課 ON 課程.課號=選課.課號

GROUP BY 課名
GO

SELECT TOP 1 *
FROM V1
ORDER BY 平均成績 DESC

『柒』 請問SQL中視圖與查詢的區別

SQL中視圖與查詢的區別為:功能不同、歸屬不同、數據來源不同。

一、功能不同

1、視圖:視圖可以更新欄位內容並返回原表。

2、查詢:查詢文件中的記錄數據不能修改。

二、歸屬不同

1、視圖:視圖不是一個獨立的文件,它保存在資料庫中。

2、查詢:查詢是一個獨立的文件,不屬於資料庫。

三、數據來源不同

1、視圖:視圖的數據來源可以是本地數據源,也可以是遠程數據源。

2、查詢:查詢的數據來源只有本地數據源,不能訪問遠程數據源。

『捌』 求SQL視圖語句

兩個表沒有連接關鍵字,我加了一個加了一個PERSONID欄位與EMPLOYEE欄位對應,你可以自已根據實際情況改為實際的邏輯連接ID。
USE HumanResources--打開要建立視圖的資料庫
CREATE VIEW vEmployeeContact AS
Person.DBO.Contact.Title AS SALUTATION,
Person.DBO.Contact.FirstName+' '
+Person.DBO.Contact.MiddleName
+' '+Person.DBO.Contact.LastName
AS NAME,
Person.DBO.Contact.EmailAddress,
Person.DBO.Contact.Phone,
Employee.EmployeeID,
Employee.Title
FROM Person.DBO.Contact,Employee
WHERE Person.DBO.Contact.Personid=Employee.EmployeeID--加了一個PERSONID欄位
GO

『玖』 oracle 視圖sql語句怎麼寫

方法和詳細的操作步驟如下:

1、第一步,通過pl
/ sql登錄到oracle資料庫,見下圖,轉到下面的步驟。

『拾』 sql視圖怎麼寫

視圖是一種特殊的表(虛擬表),它其實質就是一條查詢語句的別名

語法:CREATE
VIEW
視圖名字(欄位)
AS
子查詢

子查詢就是sql查詢語句了,比如:CREATE
VIEW
v_emp_dept20
AS
SELECT
empno,ename,sal
FROM
emp
WHERE
deptno=20
;

熱點內容
微信如何評論圖片安卓 發布:2024-11-14 11:56:34 瀏覽:848
游戲遍地腳本 發布:2024-11-14 11:56:32 瀏覽:759
怎樣編譯一個背單詞系統 發布:2024-11-14 11:54:47 瀏覽:176
傳奇這個配置怎麼樣 發布:2024-11-14 11:48:25 瀏覽:376
配置橫向防火牆是什麼意思 發布:2024-11-14 11:42:34 瀏覽:731
手機緩存文件能打開嗎 發布:2024-11-14 11:41:00 瀏覽:492
存儲系統集成 發布:2024-11-14 11:14:54 瀏覽:584
雲伺服器搭建方法圖解 發布:2024-11-14 11:14:53 瀏覽:309
挑戰伺服器吃雞是什麼 發布:2024-11-14 10:59:07 瀏覽:932
自繳社保演算法 發布:2024-11-14 10:43:53 瀏覽:554