【正文】
authors視圖的使用和表基本相同,如:select * from pubs..testview 刪除視圖刪除視圖的語法為:drop View 視圖名 下面的示例為刪除剛剛在pubs庫的創(chuàng)建的視圖:USE pubsdrop view testview 創(chuàng)建索引 為給定表或視圖創(chuàng)建索引。 刪除表的語法:Drop table 表名(可以一次性刪除多個表,表名和表名之間用逗號隔開)。第一節(jié) 創(chuàng)建、刪除數據庫和表 創(chuàng)建、刪除數據庫的SQL語法 創(chuàng)建數據庫的語法:create database 數據庫名 在查詢分析器中寫:Create Database testData,選中該語句,按F5執(zhí)行,創(chuàng)建了一個名字為testData的數據庫。Select語句及其子句靈活的語法是學習的難點,在U8維護工作中, Join子句是最為常用的語法,必須重點學習。IN39。 In子句的使用方法IN子句是確定給定的值是否與子查詢或列表中的值相匹配。注意:Select Into子句并不能將原來表的一些關系復制到新表中(如外鍵等),它只能插入相應的數據。UpDate pubs..titles set price = 200 where title_id =39。 UpDate子句使用方法UPDATE子句是用于更改表中的現有數據。在SQLServer查詢分析器中執(zhí)行如下語句(刪除剛才插入的記錄):select * from pubs..titles where title_id =39。138939。Creating Web Pages39。第四節(jié) 數據操作語句數據操作語句包括INSERT、 UPDATE 和DELETE 等 插入Insert Into子句使用方法可以使用 INSERT INTO 在當前表中創(chuàng)建新行。 In子句會在Select語句子查詢語句中講解。 Join子句小結 在U8產品中,大量使用了Inner Join、Left Join、Right Join和Full Join子句。 使用全連接語句Full Outer Join連接Full Outer Join是指定在結果集中包含左表或右表中不滿足聯接條件的行,并將對應于另一個表的輸出列設為 NULL。 使用右連接語句Right Outer Join連接 Right Outer Join語句和Left Outer Join 語句的用法原理相同。如果未指定聯接類型,則該連接形式為默認形式。內連接為[Inner] Join(默認形式,Inner可以省略);外連接分為三個Left Outer Join、Right Outer Join、Full Outer Join(其中的Outer可以省略)。另外Having語句后的條件可以是聚合函數(如sum函數、Max函數),而where后不能接聚合函數。如:返回Northwind數據庫中Order Details表中的數量(quantity)字段值大于100的記錄,SQL語句可寫為:SELECT * FROM Northwind..[Order Details] Where quantity100 Order By子句Order By子句是用來指定在 SELECT 語句返回的列中所使用的排序次序。 Select語句的常用子句Select中的常用子句包括:Where,Order By,Group by,Having,Join等。比較常用的函數有聚合函數、日期與時間函數、數學函數、轉換函數和字符函數等,具體內容參見附錄。第一節(jié) 簡單的SELECT查詢在SQLServer的查詢分析器中執(zhí)行如下兩句SQL語句:USE NorthwindSELECT * FROM [Order Details]執(zhí)行該語句返回Order Details表中包含所有列的記錄。Select語句的功能為從數據庫中檢索行,并允許從一個或多個表中選擇一個或多個行或列,該語句包含眾多的子句,功能強大,使用靈活。更多的內容還請參閱聯機幫助。記錄 (record) :視作一個單元信息的一組相關字段(列)。例如,某個教育數據庫將具有一個教師表、一個學生表和一個課程表。數據庫存儲在文件中??梢圆东@有關每個事件的數據并將其保存到文件或 SQL Server 表中供以后分析。如圖1所示:圖1企業(yè)管理器:可進行各種可視化的操作,功能強大,但由于其運行時消耗資源較大,所以當計算機硬件條件不好或者SQLServer負載太大時,會有操作反映遲鈍等問題。 第二節(jié) 常用的SQL工具簡介 SQL本身是一種語言,需要在特定的環(huán)境中運行。所以,在維護中如果遇到以MSDE作為后臺數據庫的情況應多加注意此方面的問題。另外,以Access為后臺數據庫的產品安裝盤中有壓縮的演示賬套數據庫文件,直接用Winzip解壓縮后,就可以作為參照的數據字典使用。 用友早期產品以Access為后臺數據庫,這些產品()目前仍有很多用戶在使用。第一節(jié) U8數據庫簡述 U8數據庫 用友U8系列產品的后臺數據庫是采用Microsoft SQLServer。附錄 內容包括組成數據庫對象的概念、SQLSERVER的系統(tǒng)組成以及Transact_SQL小手冊,可以作為查詢SQLServer信息的快速參考。本??饕獌热荩旱谝徽?概述U8數據庫特點、常用的SQL工具、語法格式,以及SQLServer數據庫中的一些常用的術語。注意:本??菫镾QLServer快速入門而編寫,內容簡單概括,讀者要使自己的SQLServer水平有質的提高,在實際工作中要充分利用SQLServer聯機幫助,它是最具權威的參考資料。事件探查器是U8維護工作中最為常用的分析工具。 用友產品以Microsoft Access()或MicrosoftSQLServer(如U8以上版本)作為后臺數據庫,目前(、U8)不支持其他的數據庫產品。 每個SQLServer數據庫是由兩類文件組成:一類是數據文件,包括主數據文件(擴展名為mdf)和次要數據文件(擴展名為ndf,該類文件不是必須的,U8數據庫通常沒有該文件);一類是日志文件(擴展名為ldf)。 以Access為后臺數據庫的產品,用Access軟件可以直接打開對應的數據庫文件,該數據庫文件可以作為參考的數據字典使用(點擊每個表的設計模式,內有詳盡的字段含義解釋)。而且在實際的維護實踐中,也會發(fā)現,MSDE出現異常的情況遠多于SQLServer。另外,Access的產品的安全性也遠低于SQLServer產品。 Microsoft SQLServerSQLServer中常用的工具包括:企業(yè)管理器、查詢分析器、事件探查器等。 SQL Server? 實例中的事件。圖2數據庫 (database) :為特定目的(如搜索、排序和重新組織數據)而組織和提供的信息、表和其它對象的集合。每個表存儲有關由數據庫建模的一類對象的信息。如Accinformation表中的cSysID字段。圖3本章小結: 本章只是簡要介紹了一些比較基礎的術語和概念,目的是使讀者對SQLServer有個總體的印象,以便能有效的進行后續(xù)的學習。對SQL語言的學習,關鍵是要邊學習邊實踐,讀者可以在SQLServer查詢分析器中實際練習本專刊提供的語句。 第三步:執(zhí)行相應的SQL語句(如圖3中的select * from accinformation語句)。 第二節(jié) Select語句中的常用子句及函數 SQL中函數的使用在SQL 中的函數可以執(zhí)行一些儲如對某一列進行匯總或將一個字符串中的字符轉換為大寫的操作。可以到查詢分析器中執(zhí)行如下語句(求數量的總和): SELECT sum(quantity) FROM Northwind..[Order Details]注意:此處必須指定要合計的具體列而不能使用*,并且該列必須是數值型。 Where子句Where子句的作用是指定查詢返回行的條件。如:上句中要再加一個條件,數量之和大于1000的返回記錄,SQL語句可寫為:SELECT ProductID, sum(quantity) FROM Northwind..[Order Details] Group By ProductID Having sum(quantity)1000 Where子句和Having子句的區(qū)別Where子句和Having子句的主要區(qū)別:和Group By連用時,Where后面的條件是先排除再進行Group By匯總;而Having是在Group By匯總后,再用后面的條件進行篩選。Join分為內連接和外連接。兩個表中不匹配的行不在結果中顯示。在SQLServer查詢分析器中執(zhí)行如下語句:Select * From father Left Join son On = 結果如下(注意下表中的NULL):FidNameSidNameFid11A1Ason1121A2Ason2131A3Ason3142BNULLNULLNULL53C4Cson1363C5Cson23 在SQLServer查詢分析器中執(zhí)行如下語句:Select * from father left join son on = where is null 實現的功能為:找出在father表中有,而在son表中沒有對應的記錄。在SQLServer查詢分析器中執(zhí)行如下語句:Select * From father Right Join son On = 結果如下(注意下表中的NULL):FidNameSidNameFid11A1Ason1121A2Ason2131A3Ason3143C4Cson1353C5Cson236NULLNULL6Dson14 在SQLServer查詢分析器中執(zhí)行如下語句:Select * from father Right join son on = where is null 實現的功能為:找出在Son表中有,而在father表中沒有對應的記錄。在SQLServer查詢分析器中執(zhí)行如下語句:Select * From father Full Join son On = 結果如下(注意下表中的NULL):FidNameSidNameFid11A1Ason1121A2Ason2131A3Ason3143C4Cson1353C5Cson236NULLNULL6Dson1472BNULLNULLNULL 在SQLServer查詢分析器中執(zhí)行如下語句:Select * from father Full join son on = where is null Or is null實現的功能為:找出在Son表中有,而在father表中沒有對應的記錄以及在Father表中有,而在son表中沒有對應的記錄。因此一定要重點學習Join語句的各種靈活使用的方法。具體的Union語法請查詢聯機幫助。, 39。, 39。為了盡可能的減少誤操作最好在執(zhí)行delete語句之前,先執(zhí)行對應的select語句,以確定Where后面條件的準確性。BU987639。BU987639。在SQLServer查詢分析器中執(zhí)行如下語句:Select * Into pubs..new_table1From pubs..titles用語句Select * from pubs..new_table1可以查詢出剛才新生成的表及其中剛剛插入的數據。在SQLServer查詢分析器