1. sql Server 2008 在多維資料庫方面有哪些功能上的改進
1、聚合設計方面的改進:
• 新的聚合設計器。新的聚合設計器更便於瀏覽和修改聚合設計。現在,聚合設計在顯示時按度量值組分組。現在,為高級用戶提供了一個用來進行手動聚合設計的新視圖。
• 經過簡化和增強的聚合設計和基於用法的優化向導。使用這些經過更新的向導,您可以一次修改一個或多個分區中聚合的存儲設置並且更方便地設置聚合用法設置。基於用法的優化向導現在還允許您將新聚合追加到現有聚合。
• 新的 AMO 警告。當用戶偏離聚合設計最佳實踐時,會以這些新的警告消息向用戶發出警報。
2、多維數據集方面的改進:
多維數據集向導已經得以簡化和增強。這些改進可幫助您用更少的步驟創建更好的多維數據集。
3、維度設計方面的改進:
• 新的屬性關系設計器。該維度編輯器具有新的屬性關系設計器,這個新設計器更便於瀏覽和修改屬性關系。
• 新的 AMO 警告。當用戶偏離設計最佳實踐或在資料庫設計中出現邏輯錯誤時,會以這些新的警告消息向用戶發出警報。
• 經過簡化和增強的維度向導。這個最新版本的向導可自動檢測父子層次結構,提供更安全的默認錯誤配置,並支持成員屬性的規范。
• 新的「鍵列」對話框。使用這個新的對話框,可以更輕松地編輯鍵列。
• 「屬性」面板中的鍵列支持。現在,可以在「屬性」面板中編輯鍵列。
• 經過更新的「維度結構」選項卡。此選項卡現在可用於新的屬性關系設計器,並且更加易於使用,從而可以更方便地修改屬性和層次結構
4、Analysis Services 中的備份和還原功能上的改進
Analysis Services 中的備份和還原功能具有新的存儲結構,所有備份和還原方案的性能都有所改善。
5、改進的存儲結構
新的存儲結構為存檔的資料庫提供更可靠的存儲庫。使用新的存儲結構,對資料庫文件的大小將不存在實際限制,對資料庫所能存儲的文件數量也沒有限制。
6、改進的性能
新的備份和還原功能使性能得到了改進。對不同大小的資料庫以及各種數量的文件的測試表明,性能有了顯著的提高。若要獲取特定需求下的實際值,建議您針對自己的資料庫執行測試。
7、Analysis Services 個性化擴展性方面的改進
使用 Analysis Services 個性化擴展,開發人員可以創建新的 Analysis Services 對象和功能,並在用戶會話的上下文中動態提供這些對象和功能。開發人員無需創建有關查找該擴展功能的地點或方式的詳細規范。相反,開發人員可以立即與最終用戶和其他開發人員共享這些新的對象和功能。
8、新示例位置的改進
聯機叢書不再提供 SQL Server 示例資料庫和示例應用程序。這些示例資料庫和示例應用程序現在位於 SQL Server Samples(SQL Server 示例)網站上。該網站便於用戶查找這些示例,還提供了與 Microsoft SQL Server 和商業智能相關的其他新示例。在 SQL Server 示例網站上,您可以執行下列操作:
• 瀏覽由開發人員、用戶和 Microsoft 最有價值專家 (MVP) 社區提供的示例。
• 下載示例資料庫和代碼項目。
查看或參與討論區,您可以在討論區報告和詢問與各技術領域的示例相關的問題。
2. SqlServer里「多維和數據挖掘模式」和「表格模式」到底是什麼意思
表格、 多維和數據挖掘是SQLServerAnalysis Services 提供用於創建商業智能語義模型的兩種方法,還有一種方法是Power Pivot for SharePoint。
可以使用多種方法來實現針對不同業務和用戶需求量身定製的建模體驗。「多維」是建立在開放標准基礎之上的成熟技術,已由 BI 軟體的眾多供應商採用,但難以駕馭。「表格」提供一種關系建模方法,很多開發人員認為它更加直觀。
所有模型將部署為在 Analysis Services 實例上運行的資料庫,可以使用一套數據提供程序通過客戶端工具來訪問,並通過 Excel、Reporting Services、Power BI 和其他供應商的 BI 工具在互動式靜態報告中可視化。
表格和多維解決方案使用 SSDT 構建,旨在用於在獨立上運行的公司 BI 項目Analysis Services實例在本地和表格模型中,Azure Analysis Services中的伺服器雲。這兩個解決方案將生成可與 BI 客戶端輕松集成的高性能分析資料庫。然而,每個解決方案在創建、使用和部署方式上都存在不同。本主題的大部分內容比較了這兩種類型,以方便你找到適當的方法。
3. sql 2005多維數據集部署
SQL Server 2005
10大頂尖資料庫管理特性
資料庫鏡像 利用新增資料庫鏡像解決方案擴展日誌傳送功能。您可以使用資料庫鏡像特性通過設置自動故障轉移至備用伺服器的方式來增強SQL Server系統的功能。
在線恢復 利用SQL Server 2005,資料庫管理員可以在SQL Server實例運行狀態下執行恢復操作。由於只有那些被恢復的數據無法使用,資料庫的其餘部分仍舊處於在線狀態且保持可用,因此,在線恢復特性能夠有效提高SQL Server的可用性。
在線索引操作 在線索引選項允許對底層表格、群集索引數據以及索引數據定義語言(DDL)執行過程中的所有相關索引執行並行修改(更新、刪除和插入操作)。舉例來說,當群集索引被重建時,您可以繼續對底層數據進行更新並針對其執行查詢操作。
快速恢復 新增的快速恢復選項將提高SQL Server資料庫的可用性。當事務日誌被前滾後,管理員可以重新連接正在恢復的資料庫。
安全增強特性 SQL Server 2005包含諸如資料庫加密、安全預設設置、口令策略強制、較細粒度許可權控制以及增強安全模型之類的安全增強特性。
新增的SQL Server Management Studio SQL Server 2005將引入一種新型集成化管理工具套件,SQL Server Management Studio。這種工具集包含用以對SQL Server資料庫進行開發、部署和故障診斷的新增功能以及針對原有功能的進一步增強。
專用管理員連接 SQL Server 2005將引入專用的管理員連接,管理員可以使用這種連接來訪問運行中的伺服器甚至被鎖定或因為某種原因而無法使用的伺服器。這項功能使管理員得以通過執行診斷功能或Transact-SQL語句的方式在伺服器上診斷問題。
快照隔離 SQL Server 2005將在資料庫級別上提供新的快照隔離(SI)級別。藉助SI特性,用戶可以利用資料庫的事務一致性視圖來訪問最新提交的數據行。這項功能將提供更高的可伸縮性。
數據分區 數據分區憑借能夠針對大型表格與索引進行高效管理的內建表格與索引分區特性得到了增強。
復制增強特性 對於分布式移動資料庫而言,SQL Server 2005提供了新的端到端復制功能,其中包括發布Oracle資料庫的能力。此外,SQL Server 2005還針對復制工具及其伸縮能力提供了新的增強特性。
10大頂尖開發特性
.NET Framework託管 憑借SQL Server 2005,開發人員可以使用熟悉的編程語言(如Microsoft Visual C# .NET和Microsoft Visual Basic .NET)來創建資料庫對象。同時,開發人員還可以創建兩種新型對象——用戶定義類型及聚合。
XML技術 擴展標記語言(XML)是一項通過本地網路和Internet在不同應用間散布數據的重要標准。SQL Server 2005具備針對XML文檔存儲與查詢的內建支持能力。
ADO.NET 2.0版 從針對SQL Types的新增支持能力到多維活動結果集(MARS),SQL Server 2005中的ADO.NET將完善數據集的訪問與操作方式,從而實現更高的伸縮性與靈活性。
安全增強特性 SQL Server 2005中的新型安全模型將把用戶從對象中獨立出來,提供較細粒度的訪問方式,並支持針對數據訪問的更強控制能力。此外,所有系統表格都將以視圖的形式實現,從而提供針對資料庫系統對象的更多控制能力。
Transact-SQL增強特性 SQL Server 2005提供了用以開發可伸縮性資料庫應用的新型語言功能。這些增強特性包括錯誤處理,遞歸查詢功能,關系型操作符PIVOT、APPLY、ROW_NUMBER,以及其它行級功能。
SQL Service Broker SQL Service Broker將面向大規模在線商務應用提供分布式非同步應用程序框架。
通知服務 通知服務允許企業創建能夠向各種設備提供及時個性化信息(如證券市場提示、新聞訂閱、裝運報警、和航班機票價格查詢)的豐富通知應用程序。藉助SQL Server 2005,通知服務將與諸如分析服務和SQL Server Management Studio之類的技術實現更為緊密的集成。
Web服務 藉助SQL Server 2005,開發人員可以在資料庫層次上開發Web服務,從而使SQL Server成為一個超文本傳輸協議(HTTP)監聽器並面向以Web服務為中心的應用提供新型數據訪問功能。
報表服務 在SQL Server 2005中,報表服務將提供與Visual Studio 2005一同發售的報表控制項。這種集成化報表控制項能夠面向企業級應用提供改進報表功能。
全文搜索增強特性 SQL Server 2005支持豐富的全文搜索應用程序。分類功能得到了進一步增強,能夠在分類基礎上提供更強的靈活性。查詢性能與伸縮性得到了顯著提高,同時,新型管理工具將能夠更加細致的洞察全文實現方式的整個過程。
10大頂尖商務智能特性
分析服務 在SQL Server 2005中,分析服務真正具備了實時分析能力。從得以增強的伸縮特性到與Microsoft Office的深度集成,SQL Server 2005將幫助企業在各個級別上對商務智能化能力加以擴展。
數據轉換服務(DTS) DTS是一套圖形化工具與可編程對象的集合,它允許您從不同數據源中提取、轉換並裝載(ETL)數據,並將其移植到一個或多個目標當中。SQL Server 2005將引入一種能夠提供完整ETL平台的全新設計DTS。
數據挖掘 SQL Server 2005引入了四種新型數據挖掘演算法,以及能夠幫助各種規模企業簡化數據挖掘方式的改進工具與向導。
報表服務 在SQL Server 2005中,報表服務將提供自助式服務、最終用戶特殊報表創建機制、面向聯機分析處理(OLAP)環境的增強查詢開發方式以及面向功能豐富且易於維護的企業報表環境的增強伸縮能力。
群集支持能力 憑借針對故障轉移群集機制的支持能力,得以增強的多實例支持能力以及分析服務對象與數據的備份及恢復能力,分析服務的可用性得到了提高。
關鍵性能指示器 關鍵性能指示器(KPI)為企業提供了定義自定義圖形化業務衡量標準的功能,這項特性有助於生成並跟蹤關鍵性企業級基準測試指標。
伸縮性與性能 諸如並行分區處理、遠程關系型聯機分析處理(ROLAP)或混合型聯機分析處理(HOLAP)分區創建、分布式分區數據集、持久性計算以及前攝式緩存機制這樣的特性將顯著提高SQL Server 2005中分析服務的伸縮性與性能。
One-Click多維數據集 當您在數據倉庫項目中創建多維數據集時,多維數據集向導將提供一個啟用One-Click多維數據集監測與建議功能的選項。這種選項將檢查數據源視圖中的關系並針對事實數據表、維度數據表和相關測量方式提出建議。
前攝性緩存 前攝性緩存將MOLAP級查詢性能與實時數據分析相結合,並且消除了維護OLAP存儲機制的需求。前攝性緩存以透明方式同步並維護專為執行高速查詢並將最終用戶從過載下的關系型資料庫中隔離出來的更新數據拷貝。這種緩存結構自動從統一數據模型(UDM)結構中得到,並且可以通過合理調優平衡潛在數據的性能。
與Microsoft Office系統相集成 由報表服務中的報表伺服器提供的報表可以在Microsoft SharePoint Portal Server以及諸如Microsoft Word與Microsoft Excel這樣的Microsoft Office系統應用程序環境下運行。您可以使用SharePoint特性來訂閱報表、創建新版報表和發布報表。同時,您還可以在Word或Excel中打開報表,以查看其HTML版本。
4. sql語句中的group by要怎麼用!!
語法SELECT 欄位表 FROM 表 WHERE標准 [GROUP BY 分組欄位表]Group by 是SQL Server 中常用的一種語法,語法如下:[ GROUP BY [ ALL ] group_by_expression [ ,...n ] [ WITH { CUBE | ROLLUP } ]]
1、最常用的就是這種語法,如下:Select CategoryID, AVG(UnitPrice), COUNT(UnitPrice) FROM dbo.Procts Where UnitPrice > 30GROUP BY CategoryID ORDER BY CategoryID DESC這個語句查詢出,所有產品分類的產品平均單價,單價計數。並且單價在 30 以上的記錄。
2、再看看這種語法,如下:Select CategoryID, AVG(DISTINCT UnitPrice), COUNT(DISTINCT UnitPrice) FROM dbo.Procts Where UnitPrice > 30GROUP BY CategoryID ORDER BY CategoryID DESC使用 DISTINCT 的時候,將會去除重復的價格平均單價。
3、如果希望在分類統計之後,再使用條件過濾,下面的語句可以做為參數:Select CategoryID, SUM(UnitPrice) AS SumPriceFROM dbo.ProctsGROUP BY CategoryIDHAVING SUM(UnitPrice) > 300HAVING 與 Where 語句類似,Where 是在分類之前過濾,而 HAVING 是在分類之後過濾。它和 Where 一樣使用 AND、OR、NOT、LIKE 組合使用。
4、如果希望再在分類統計中,添加匯總行,可以使用以下語句:Select CategoryID, SUM(UnitPrice), GROUPING(CategoryID) AS 'Grouping'FROM dbo.ProctsGROUP BY CategoryID WITH ROLLUPGrouping 這一列用於標識出哪一行是匯總行。它使用 ROLLUP 操作添加匯總行。
5、如果使用 WITH CUBE 將會產生一個多維分類數據集,如下:Select CategoryID, SupplierID, SUM(UnitPrice) AS SumPriceFROM dbo.ProctsGROUP BY CategoryID, SupplierID WITH CUBE 它會產生一個交叉表,產生所有可能的組合匯總。
6、使用 ROLLUP CUBE 會產生一個 NULL 空值,可以使用以下語法解決,如下:Select CASE WHEN (GROUPING(SupplierID) = 1) THEN '-1' ELSE SupplierID END AS SupplierID, SUM(UnitPrice) AS QtySumFROM dbo.ProctsGROUP BY SupplierID WITH CUBE
它首先檢查當前行是否為匯總行,如果是就可以設置一個值,這里設置為 '-1' 。
5. 數據量大,維度多怎麼sql做查詢,
1.對查詢進行優化,應盡量避免全表掃描,首先應考慮在 where 及 order by 涉及的列上建立索引。
2.應盡量避免在 where 子句中對欄位進行 null 值判斷,否則將導致引擎放棄使用索引而進行全表掃描,如:
select id from t where num is null
可以在num上設置默認值0,確保表中num列沒有null值,然後這樣查詢:
select id from t where num=0
3.應盡量避免在 where 子句中使用!=或<>操作符,否則將引擎放棄使用索引而進行全表掃描。
4.應盡量避免在 where 子句中使用 or 來連接條件,否則將導致引擎放棄使用索引而進行全表掃描,如:
select id from t where num=10 or num=20
可以這樣查詢:
select id from t where num=10
union all
select id from t where num=20
5.in 和 not in 也要慎用,否則會導致全表掃描,如:
select id from t where num in(1,2,3)
對於連續的數值,能用 between 就不要用 in 了:
select id from t where num between 1 and 3
6.下面的查詢也將導致全表掃描:
select id from t where name like '%abc%'
若要提高效率,可以考慮全文檢索。
7.如果在 where 子句中使用參數,也會導致全表掃描。因為SQL只有在運行時才會解析局部變數,但優化程序不能將訪問計劃的選擇推遲到運行時;它必須在編譯時進行選擇。然而,如果在編譯時建立訪問計劃,變數的值還是未知的,因而無法作為索引選擇的輸入項。如下面語句將進行全表掃描:
select id from t where num=@num
可以改為強制查詢使用索引:
select id from t with(index(索引名)) where num=@num
8.應盡量避免在 where 子句中對欄位進行表達式操作,這將導致引擎放棄使用索引而進行全表掃描。如:
select id from t where num/2=100
應改為:
select id from t where num=100*2
9.應盡量避免在where子句中對欄位進行函數操作,這將導致引擎放棄使用索引而進行全表掃描。如:
select id from t where substring(name,1,3)='abc'--name以abc開頭的id
select id from t where datediff(day,createdate,'2005-11-30')=0--『2005-11-30』生成的id
應改為:
select id from t where name like 'abc%'
select id from t where createdate>='2005-11-30' and createdate<'2005-12-1'
10.不要在 where 子句中的「=」左邊進行函數、算術運算或其他表達式運算,否則系統將可能無法正確使用索引。
11.在使用索引欄位作為條件時,如果該索引是復合索引,那麼必須使用到該索引中的第一個欄位作為條件時才能保證系統使用該索引,否則該索引將不會被使用,並且應盡可能的讓欄位順序與索引順序相一致。
12.不要寫一些沒有意義的查詢,如需要生成一個空表結構:
select col1,col2 into #t from t where 1=0
這類代碼不會返回任何結果集,但是會消耗系統資源的,應改成這樣:
create table #t(...)
13.很多時候用 exists 代替 in 是一個好的選擇:
select num from a where num in(select num from b)
用下面的語句替換:
select num from a where exists(select 1 from b where num=a.num)
14.並不是所有索引對查詢都有效,SQL是根據表中數據來進行查詢優化的,當索引列有大量數據重復時,SQL查詢可能不會去利用索引,如一表中有欄位sex,male、female幾乎各一半,那麼即使在sex上建了索引也對查詢效率起不了作用。
15.索引並不是越多越好,索引固然可以提高相應的 select 的效率,但同時也降低了 insert 及 update 的效率,因為 insert 或 update 時有可能會重建索引,所以怎樣建索引需要慎重考慮,視具體情況而定。一個表的索引數最好不要超過6個,若太多則應考慮一些不常使用到的列上建的索引是否有必要。
16.應盡可能的避免更新 clustered 索引數據列,因為 clustered 索引數據列的順序就是表記錄的物理存儲順序,一旦該列值改變將導致整個表記錄的順序的調整,會耗費相當大的資源。若應用系統需要頻繁更新 clustered 索引數據列,那麼需要考慮是否應將該索引建為 clustered 索引。
17.盡量使用數字型欄位,若只含數值信息的欄位盡量不要設計為字元型,這會降低查詢和連接的性能,並會增加存儲開銷。這是因為引擎在處理查詢和連接時會逐個比較字元串中每一個字元,而對於數字型而言只需要比較一次就夠了。
18.盡可能的使用 varchar/nvarchar 代替 char/nchar ,因為首先變長欄位存儲空間小,可以節省存儲空間,其次對於查詢來說,在一個相對較小的欄位內搜索效率顯然要高些。
19.任何地方都不要使用 select * from t ,用具體的欄位列表代替「*」,不要返回用不到的任何欄位。
20.盡量使用表變數來代替臨時表。如果表變數包含大量數據,請注意索引非常有限(只有主鍵索引)。
21.避免頻繁創建和刪除臨時表,以減少系統表資源的消耗。
22.臨時表並不是不可使用,適當地使用它們可以使某些常式更有效,例如,當需要重復引用大型表或常用表中的某個數據集時。但是,對於一次性事件,最好使用導出表。
23.在新建臨時表時,如果一次性插入數據量很大,那麼可以使用 select into 代替 create table,避免造成大量 log ,以提高速度;如果數據量不大,為了緩和系統表的資源,應先create table,然後insert。
24.如果使用到了臨時表,在存儲過程的最後務必將所有的臨時表顯式刪除,先 truncate table ,然後 drop table ,這樣可以避免系統表的較長時間鎖定。
25.盡量避免使用游標,因為游標的效率較差,如果游標操作的數據超過1萬行,那麼就應該考慮改寫。
26.使用基於游標的方法或臨時表方法之前,應先尋找基於集的解決方案來解決問題,基於集的方法通常更有效。
27.與臨時表一樣,游標並不是不可使用。對小型數據集使用 FAST_FORWARD 游標通常要優於其他逐行處理方法,尤其是在必須引用幾個表才能獲得所需的數據時。在結果集中包括「合計」的常式通常要比使用游標執行的速度快。如果開發時間允許,基於游標的方法和基於集的方法都可以嘗試一下,看哪一種方法的效果更好。
28.在所有的存儲過程和觸發器的開始處設置 SET NOCOUNT ON ,在結束時設置 SET NOCOUNT OFF 。無需在執行存儲過程和觸發器的每個語句後向客戶端發送 DONE_IN_PROC 消息。
29.盡量避免大事務操作,提高系統並發能力。
30.盡量避免向客戶端返回大數據量,若數據量過大,應該考慮相應需求是否合理。
6. SQL Server Analysis Services(如何實現)
Analysis Services 使您可以設計、創建和管理多維結構,(其中包含從關系資料庫等其他數據源聚合的數據),並通過這種方式來支持 OLAP。對於數據挖掘應用程序,Analysis Services 允許使用多種行業標準的數據挖掘演算法來設計、創建和可視化基於其他數據源的數據挖掘模型。或者也可以創建自己的數據挖掘演算法,將這些演算法加入到 SQL Server 中,並提供給開發人員和客戶使用。下面列出的重要主題有助於您進一步了解如何安裝、理解和使用 Analysis Services。概述和安裝Analysis Services 概念和對象本節介紹了數據挖掘和 OLAP 的對象和概念以及統一維度模型。多維數據集簡介對OLAP 感興趣的用戶會需要了解多維數據集,這是一種便於使用的數據查詢機制,不但快捷,而且響應時間不會出現波動。數據挖掘概念設計數據挖掘模型解決方案是一項挑戰性的任務。此資料有助於新用戶和中級用戶了解 SQL Server 2005 中涉及以及改進的內容。設計和創建開發Analysis Services 解決方案和項目Analysis Services 項目可以組織和管理在生成、調試和部署 Analysis Services 資料庫時所需要的項。項表示要部署到某個 SQL 資料庫中的對象的定義。規劃Analysis Services 部署從本節可以了解准備部署 Analysis Services 項目時需要了解的問題。管理管理Analysis Services本節涵蓋 Analysis Services 管理的所有方面,包括監視伺服器、備份、還原和優化性能。使用數據源視圖 (Analysis Services)數據源視圖是 SQL Server 2005 中的新增功能,它用於描述基礎數據源的架構。從本節可以了解這項重要功能的正確使用方法。備份和還原 Analysis Services 資料庫加密密鑰備份對於安全訪問 Analysis Services 資料庫至關重要。從本節可以了解其內容及其操作方法。編程MDX 語言參考 (MDX)從本節可以查找有關多維表達式 (MDX)(用於檢索 OLAP 信息的主要語言)的參考文檔。數據挖掘擴展插件 (DMX) 語句參考從本節查找有關數據挖掘擴展 (DMX)(用於檢索數據挖掘信息的主要語言)的參考信息。本節涵蓋數據定義語言 (DDL) 語句、數據操作語言 (DML) 語句和函數。請參閱其他資源SQL Server Analysis Services 幫助和信息 獲取SQL Server 2005 幫助 本文是否對您有所幫助?
7. SQL資料庫的操作
SQL包括了所有對資料庫的操作,主要是由4個部分組成:
1.數據定義:這一部分又稱為「SQL DDL」,定義資料庫的邏輯結構,包括定義資料庫、基本表、視圖和索引4部分。
2.數據操縱:這一部分又稱為「SQL DML」,其中包括數據查詢和數據更新兩大類操作,其中數據更新又包括插入、刪除和更新三種操作。
3.數據控制:對用戶訪問數據的控制有基本表和視圖的授權、完整性規則的描述,事務控制語句等。
4.嵌入式SQL語言的使用規定:規定SQL語句在宿主語言的程序中使用的規則。
下面我們將分別介紹: SQL數據定義功能包括定義資料庫、基本表、索引和視圖。
首先,讓我們了解一下SQL所提供的基本數據類型:(如^00100009b^)
1.資料庫的建立與刪除
(1)建立資料庫:資料庫是一個包括了多個基本表的數據集,其語句格式為:
CREATE DATABASE <資料庫名> 〔其它參數〕
其中,<資料庫名>在系統中必須是唯一的,不能重復,不然將導致數據存取失誤。〔其它參數〕因具體資料庫實現系統不同而異。
例:要建立項目管理資料庫(xmmanage),其語句應為:
CREATE DATABASE xmmanage
(2)資料庫的刪除:將資料庫及其全部內容從系統中刪除。
其語句格式為:DROP DATABASE <資料庫名>
例:刪除項目管理資料庫(xmmanage),其語句應為: DROP DATABASE xmmanage
2.基本表的定義及變更
本身獨立存在的表稱為基本表,在SQL語言中一個關系唯一對應一個基本表。基本表的定義指建立基本關系模式,而變更則是指對資料庫中已存在的基本表進行刪除與修改。 SQL是一種查詢功能很強的語言,只要是資料庫存在的數據,總能通過適當的方法將它從資料庫中查找出來。SQL中的查詢語句只有一個:SELECT,它可與其它語句配合完成所有的查詢功能。SELECT語句的完整語法,可以有6個子句。完整的語法如下:SELECT 目標表的列名或列表達式集合FROM 基本表或(和)視圖集合〔WHERE條件表達式〕〔GROUP BY列名集合〔HAVING組條件表達式〕〕〔ORDER BY列名〔集合〕…〕
簡單查詢,使用TOP子句
查詢結果排序order by
帶條件的查詢where,使用算術表達式,使用邏輯表達式,使用between關鍵字,使用in關鍵字,
模糊查詢like
整個語句的語義如下:從FROM子句中列出的表中,選擇滿足WHERE子句中給出的條件表達式的元組,然後按GROUPBY子句(分組子句)中指定列的值分組,再提取滿足HAVING子句中組條件表達式的那些組,按SELECT子句給出的列名或列表達式求值輸出。ORDER子句(排序子句)是對輸出的目標表進行重新排序,並可附加說明ASC(升序)或DESC(降序)排列。在WHERE子句中的條件表達式F中可出現下列操作符和運算函數:算術比較運算符:<,<=,>,>=,=,<>。邏輯運算符:AND,OR,NOT。集合運算符:UNION(並),INTERSECT(交),EXCEPT(差)。集合成員資格運算符:IN,NOT IN謂詞:EXISTS(存在量詞),ALL,SOME,UNIQUE。聚合函數:AVG(平均值),MIN(最小值),MAX(最大值),SUM(和),COUNT(計數)。F中運算對象還可以是另一個SELECT語句,即SELECT語句可以嵌套。上面只是列出了WHERE子句中可出現的幾種主要操作,由於WHERE子句中的條件表達式可以很復雜,因此SELECT句型能表達的語義遠比其數學原形要復雜得多。下面,我們以上面所建立的三個基本表為例,演示一下SELECT的應用:1.無條件查詢例:找出所有學生的的選課情況SELECT st_no,su_noFROM score例:找出所有學生的情況SELECT*FROM student「*」為通配符,表示查找FROM中所指出關系的所有屬性的值。2.條件查詢條件查詢即帶有WHERE子句的查詢,所要查詢的對象必須滿足WHERE子句給出的條件。例:找出任何一門課成績在70以上的學生情況、課號及分數SELECT UNIQUE student.st_class,student.st_no,student.st_name,student.st_sex,student.st_age,score.su_no,score.scoreFROM student,scoreWHERE score.score>=70 AND score.stno=student,st_no這里使用UNIQUE是不從查詢結果集中去掉重復行,如果使用DISTINCT則會去掉重復行。另外邏輯運算符的優先順序為NOT→AND→OR。例:找出課程號為c02的,考試成績不及格的學生SELECT st_noFROM scoreWHERE su_no=『c02』AND score<603.排序查詢排序查詢是指將查詢結果按指定屬性的升序(ASC)或降序(DESC)排列,由ORDER BY子句指明。例:查找不及格的課程,並將結果按課程號從大到小排列SELECT UNIQUE su_noFROM scoreWHERE score<60ORDER BY su_no DESC4.嵌套查詢嵌套查詢是指WHERE子句中又包含SELECT子句,它用於較復雜的跨多個基本表查詢的情況。例:查找課程編號為c03且課程成績在80分以上的學生的學號、姓名SELECT st_no,st_nameFROM studentWHERE stno IN (SELECT st_noFROM scoreWHERE su_no=『c03』 AND score>80 )這里需要明確的是:當查詢涉及多個基本表時用嵌套查詢逐次求解層次分明,具有結構程序設計特點。在嵌套查詢中,IN是常用到的謂詞。若用戶能確切知道內層查詢返回的是單值,那麼也可用算術比較運算符表示用戶的要求。5.計算查詢計算查詢是指通過系統提供的特定函數(聚合函數)在語句中的直接使用而獲得某些只有經過計算才能得到的結果。常用的函數有:COUNT(*) 計算元組的個數COUNT(列名) 對某一列中的值計算個數SUM(列名) 求某一列值的總和(此列值是數值型)AVG(列名) 求某一列值的平均值(此列值是數值型)MAX(列名) 求某一列值中的最大值MIN(列名) 求某一列值中的最小值例:求男學生的總人數和平均年齡SELECT COUNT(*),AVG(st_age)FROM studentWHERE st_sex=『男』例:統計選修了課程的學生的人數SELECT COUNT(DISTINCT st_no)FROM score注意:這里一定要加入DISTINCT,因為有的學生可能選修了多門課程,但統計時只能按1人統計,所以要使用DISTINCT進行過濾。 由於資料庫管理系統是一個多用戶系統,為了控制用戶對數據的存取權利,保持數據的共享及完全性,SQL語言提供了一系列的數據控制功能。其中,主要包括安全性控制、完整性控制、事務控制和並發控制。1.安全性控制數據的安全性是指保護資料庫,以防非法使用造成數據泄露和破壞。保證數據安全性的主要方法是通過對資料庫存取權力的控制來防止非法使用資料庫中的數據。即限定不同用戶操作不同的數據對象的許可權。存取權控制包括權力的授予、檢查和撤消。權力授予和撤消命令由資料庫管理員或特定應用人員使用。系統在對資料庫操作前,先核實相應用戶是否有權在相應數據上進行所要求的操作。(1)權力授予:權力授有資料庫管理員專用的授權和用戶可用的授權兩種形式。資料庫管理員專用授權命令格式如下:|CONNECT |GRANT|RESOURCE|TO 用戶名〔IDENTIFED BY 口令〕|DBA |其中,CONNECT表示資料庫管理員允許指定的用戶具有連接到資料庫的權力,這種授權是針對新用戶;RESOURCE表示允許用戶建立自己的新關系模式,用戶獲得CONNECT權力後,必須獲得RESOURCE權力才能創建自己的新表;DBA表示資料庫管理員將自己的特權授予指定的用戶。若要同時授予某用戶上述三種授權中的多種權力,則必須通過三個相應的GRANT命令指定。另外,具有CONNECT和RESOURCE授權的用戶可以建立自己的表,並在自己建立的表和視圖上具有查詢、插入、修改和刪除的權力。但通常不能使用其他用戶的關系,除非能獲得其他用戶轉授給他的相應權力。例:若允許用戶SSE連接到資料庫並可以建立他自己的關系,則可通過如下命令授予權力:GRANT CONNECT TO SSE INENTIFIED BY BD1928GRANT RESOURCE TO SSE用戶可用的授權是指用戶將自己擁有的部分或全部權力轉授給其他用戶的命令形式,其命令格式如下:|SELECT ||INSERT ||DELETE |GRANT|UPDATE(列名1[,列名2]…)|ON|表名 |TO|用戶名|〔WITH GRANT OPTION〕|ALTER | |視圖名| |PUBLIC||NDEX ||ALL |若對某一用戶同時授予多種操作權力,則操作命令符號可用「,」相隔。PUBLIC 表示將權力授予資料庫的所有用戶,使用時要注意:任選項WITH GRANT OPTION表示接到授權的用戶,具有將其所得到的同時權力再轉授給其他用戶權力。例:如果將表student的查詢權授予所有用戶,可使用以下命令:GRANT SELECT ON student TO PUBLIC例:若將表subject的插入及修改權力授予用戶SSE並使得他具有將這種權力轉授他人的權力,則可使用以下命令:GRANT INSERT,UPDATE(su_subject) ON subject TO SSE WITH GRANT OPTION這里,UPDATE後面跟su_subject是指出其所能修改的列。(2)權力回收:權力回收是指回收指定用戶原已授予的某些權力。與權力授予命令相匹配,權力回收也有資料庫管理員專用和用戶可用的兩種形式。DBA專用的權力回收命令格式為:|CONNECT |REVOKE|RESOURCE|FROM用戶名|DBA |用戶可用的權力回收命令格式為:|SELECT ||INSERT ||DELETE |REVOKE|UPDATE(列名1〔,列名2〕…) |ON|表名 |FROM |用戶名||ALTER | |視圖名| |PUBLIC||INDEX ||ALL |例:回收用戶SSE的DBA權力:REVOKE DBA FROM SSE2.完整性控制資料庫的完整性是指數據的正確性和相容性,這是資料庫理論中的重要概念。完整性控制的主要目的是防止語義上不正確的數據進入資料庫。關系系統中的完整性約束條件包括實體完整性、參照完整性和用戶定義完整性。而完整性約束條件的定義主要是通過CREATE TABLE語句中的〔CHECK〕子句來完成。另外,還有一些輔助命令可以進行數據完整性保護。如UNIQUE和NOT NULL,前者用於防止重復值進入資料庫,後者用於防止空值。3.事務控制事務是並發控制的基本單位,也是恢復的基本單位。在SQL中支持事務的概念。所謂事務,是用戶定義的一個操作序列(集合),這些操作要麼都做,要麼一個都不做,是一個不可分割的整體。一個事務通常以BEGIN TRANSACTION開始,以COMMIT或ROLLBACK結束。SQL提供了事務提交和事務撤消兩種命令:(1)事務提交:事務提交的命令為:COMMIT 〔WORK〕事務提交標志著對資料庫的某種應用操作成功地完成,所有對資料庫的操作都必須作為事務提交給系統時才有效。事務一經提交就不能撤消。(2)事務撤消:事務撤消的命令是:ROLLBACK 〔WORK〕事務撤消標志著相應事務對資料庫操作失敗,因而要撤消對資料庫的改變,即要「回滾」到相應事務開始時的狀態。當系統非正常結束時(如掉電、系統死機),將自動執行ROLLBACK命令
8. 怎麼用Java語言去調sql2008創建的多維數據集
說明白點