當前位置:首頁 » 編程語言 » 第三部分第五章sql查詢
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

第三部分第五章sql查詢

發布時間: 2023-03-25 23:02:00

⑴ 第五章 sql定義表(一)

可以通過定義表(使用 CREATE TABLE )或通過定義投影到表的持久類來創建表:

由於以下原因,這兩個名字之間的對應關系可能不相同:

表、視圖或存儲過程名稱可以是限定的( schema.name ),也可以是限定的( name )。

模式名遵循標識符約定,需要特別注意非字母數字字元的使用。
模式名不應該指定為帶分隔符的標識符。
嘗試指定「USER」或任何其他SQL保留字作為模式名會導致 SQLCODE -312 錯誤。
INFORMATION_SCHEMA 模式名和相應的信息。
模式包名在所有命名空間中保留。
用戶不應該在這個模式/包中創建表/類。

當執行一個創建操作(比如 create TABLE ),指定一個還不存在的模式時,InterSystems IRIS將創建新的模式。
InterSystems IRIS使用模式名生成相應的包名。
由於模式及其對應包的命名約定不同,用戶應該注意非字母數字字元的名稱轉換注意事項。
這些名稱轉換的注意事項與表不同:

INFORMATION_SCHEMA 模式名和相應的信息。
模式包名在所有命名空間中保留。
用戶不應該在這個模式/包中創建表/類

在所有名稱空間中保留 IRIS_Shard 模式名。
用戶不應在此模式中創建表、視圖或過程。
存儲在 IRIS_Shard 模式中的項不會通過編目查詢或 INFORMATION_SCHEMA 查詢顯示。

初始設置是對所有名稱空間(系統范圍)使用相同的默認模式名。
可以為所有命名空間設置相同的默認模式名,也可以為當前命名空間設置默認模式名。

如果創建了一個具有非限定名稱的表或其他項,InterSystems IRIS將為其分配默認模式名和相應的持久類包名。
如果一個命名的或默認的模式不存在,InterSystems IRIS將創建模式(和包),並將創建的項分配給該模式。
如果刪除模式中的最後一項,InterSystems IRIS將刪除該模式(和包)。
下面的模式名解析描述適用於表名、視圖名和存儲過程名。

系統范圍的初始默認模式名是 SQLUser 。
對應的持久類包名是 User 。
因此,非限定表名 Employee 或限定表名 SQLUser 。
Employee 將生成類 User.Employee 。

因為 USER 是一個保留字,嘗試用 USER 的模式名(或任何SQL保留字)指定限定名會導致 SQLCODE -1 錯誤。

要返回當前默認模式名,請調用 $SYSTEM.SQL.DefaultSchema() 方法:

或者使用以下預處理器宏:

可以使用以下任意一種方式更改默認模式名:

注意:當更改默認的SQL模式名稱時,系統將自動清除系統上所有名稱空間中的所有緩存查詢。
通過更改默認模式名稱,可以更改所有包含非限定表、視圖或存儲過程名稱的查詢的含義。
強烈建議在安裝InterSystems IRIS時建立默認的SQL模式名,以後不要修改。

模式名用於生成相應的類包名。
因為這些名稱有不同的命名約定,所以它們可能不相同。

可以通過將其設置為系統范圍的默認模式來創建與SQL保留字同名的模式,但是不建議這樣做。
名為 User 的默認模式根據類命名唯一性約定,生成相應的類包名稱 User0 。

如果指定 _CURRENT_USER/name 作為默認模式名,其中name是選擇的任意字元串,那麼InterSystems IRIS將當前登錄進程的用戶名分配為默認模式名。
如果進程沒有登錄,則name將用作默認的模式名。
例如,如果進程沒有登錄, _CURRENT_USER/HMO 使用HMO作為默認模式名。

在 $SYSTEM.SQL.SetDefaultSchema() 中,指定 "_CURRENT_USER" 作為帶引號的字元串。

訪問一個現有的表(或視圖,或存儲過程)進行DML操作時,將從模式搜索路徑中提供一個非限定的名稱。
按照指定的順序搜索模式,並返回第一個匹配項。
如果在搜索路徑中沒有找到匹配的模式,或者沒有搜索路徑,則使用默認的模式名。
(注意, #Import 宏指令使用了不同的搜索策略,不會「失敗」到默認的模式名。)

如果非限定名與模式搜索路徑中指定的任何模式或默認模式名不匹配,則會發出 SQLCODE -30 錯誤,例如: SQLCODE: -30 消息: Table 'PEOPLE' not found in schemas: CUSTOMERS,EMPLOYEES,SQLUSER 。

當創建一個基於odbc的查詢以通過Mac上的Microsoft query從Microsoft Excel運行時,如果從可用的表列表中選擇一個表,則生成的查詢不包括該表的模式(相當於類的包)。
例如,如果選擇從示例模式返回 Person 表的所有行,則生成的查詢為:

因為InterSystems IRIS將不限定的表名解釋為 SQLUser 模式中的表名,所以該語句要麼失敗,要麼從錯誤的表返回數據。
要糾正這一點,編輯查詢(在SQL View選項卡上),顯式引用所需的模式。
然後查詢應該是:

INFORMATION.SCHEMA 。
SCHEMATA persistent 類列出當前名稱空間中的所有模式。

下面的示例返回當前命名空間中的所有非系統模式名:

Management Portal SQL界面的左側允許查看模式(或匹配篩選器模式的多個模式)的內容。

每個表在其模式中都有一個唯一的名稱。
一個表有一個SQL表名和一個對應的持久化類名;
這些名稱在允許的字元、區分大小寫和最大長度方面有所不同。
如果使用SQL CREATE TABLE 命令定義,則指定遵循標識符約定的SQL表名;
系統生成一個對應的持久化類名。
如果定義為持久類定義,則必須指定只包含字母和數字字元的名稱;
這個名稱既用作區分大小寫的持久類名,也用作(默認情況下)對應的不區分大小寫的SQL表名。
可選的 SqlTableName class 關鍵字允許用戶指定不同的SQL表名。

當使用 CREATE TABLE 命令創建表時,InterSystems IRIS使用表名生成相應的持久化類名。
由於表及其對應類的命名約定不同,用戶應該注意非字母數字字元的名稱轉換:

同一個模式中的視圖和表不能具有相同的名稱。
嘗試這樣做會導致 SQLCODE -201 錯誤。

可以使用 $SYSTEM.SQL.TableExists() 方法確定一個表名是否已經存在。
可以使用 $SYSTEM.SQL.ViewExists() 方法確定視圖名是否已經存在。
這些方法還返回與表或視圖名稱對應的類名。
管理門戶SQL interface Catalog Details表信息選項顯示與所選SQL表名稱對應的類名。

試圖指定 「USER」 或任何其他SQL保留字作為表名或模式名會導致 SQLCODE -312 錯誤。
要指定SQL保留字作為表名或模式名,可以指定名稱作為帶分隔符的標識符。
如果使用帶分隔符的標識符指定包含非字母數字字元的表或模式名,InterSystems IRIS將在生成相應的類或包名時刪除這些非字母數字字元。

適用以下表名長度限制:

在SQL中,每條記錄都由一個唯一的整數值標識,這個整數值稱為 RowID 。
在InterSystems SQL中,不需要指定 RowID 欄位。
當創建表並指定所需的數據欄位時,會自動創建RowID欄位。
這個 RowID 在內部使用,但沒有映射到類屬性。
默認情況下,只有當持久化類被投影到SQL表時,它的存在才可見。
在這個投影表中,將出現一個額外的 RowID 欄位。
默認情況下,這個欄位被命名為 「ID」 ,並分配給第1列。

默認情況下,當在表中填充數據時,InterSystems IRIS將從1開始向該欄位分配連續的正整數。 RowID 數據類型為 BIGINT(%Library.BigInt) 。為 RowID 生成的值具有以下約束:每個值都是唯一的。不允許使用 NULL 值。排序規則是精確的。 默認情況下,值不可修改。

默認情況下,InterSystems IRIS將此欄位命名為 「 ID」 。但是,此欄位名稱不是保留的。每次編譯表時都會重新建立 RowID 欄位名。如果用戶定義了一個名為 「 ID」 的欄位,則在編譯表時,InterSystems IRIS會將 RowID 命名為 「 ID1」 。例如,如果用戶隨後使用 ALTER TABLE 定義了一個名為 「 ID1」 的欄位,則表編譯會將 RowID 重命名為 「 ID2」 ,依此類推。在持久性類定義中,可以使用 SqlRowIdName 類關鍵字直接為此類投影到的表指定 RowID 欄位名。由於這些原因,應避免按名稱引用 RowID 欄位。

InterSystems SQL提供了 %ID 偽列名稱(別名),無論分配給 RowID 的欄位名稱如何,該偽列名稱始終返回 RowID 值。 (InterSystems TSQL提供了 $IDENTITY 偽列名稱,其作用相同。)

ALTER TABLE 無法修改或刪除 RowID 欄位定義。

將記錄插入表中後,InterSystems IRIS將為每個記錄分配一個整數ID值。 RowID 值始終遞增。它們不被重用。因此,如果已插入和刪除記錄,則 RowID 值將按升序排列,但可能不連續。

可以通過設置 SetDDLUseSequence() 方法,將InterSystems IRIS配置為使用 $INCREMENT 執行 ID 分配。若要確定當前設置,請調用 $ SYSTEM.SQL.CurrentSettings() 方法。

在持久性類定義中, IdLocation 存儲關鍵字global(例如,對於持久性類 Sample.Person:<IdLocation> ^ Sample.PersonD </ IdLocation> )包含RowID計數器的最高分配值。 (這是分配給記錄的最高整數,而不是分配給進程的最高整數。)請注意,此RowID計數器值可能不再與現有記錄相對應。要確定是否存在具有特定RowID值的記錄,請調用表的 %ExistsId() 方法。

通過 TRUNCATE TABLE 命令重置 RowID 計數器。即使使用 DELETE 命令刪除表中的所有行,也不會通過 DELETE 命令將其重置。如果沒有數據插入表中,或者已使用 TRUNCATE TABLE 刪除所有表數據,則 IdLocation 存儲關鍵字全局值未定義。

默認情況下, RowID 值不可用戶修改。嘗試修改 RowID 值會產生 SQLCODE -107 錯誤。覆蓋此默認值以允許修改 RowID 值可能會導致嚴重的後果,只有在非常特殊的情況下並應格外謹慎。 Config.SQL.AllowRowIDUpdate 屬性允許 RowID 值是用戶可修改的。

通過定義一個用於投影表的持久類,可以定義 RowID 以具有欄位或欄位組合中的值。為此,請使用 IdKey index 關鍵字指定一個索引。例如,一個表可以具有一個 RowID ,其 RowId 通過在 PatientName [IdKey] 上指定索引定義 IdxId 來與 PatientName 欄位的值相同;或者可以通過指定索引定義 IdxId 來將 PatientName 和 SSN 欄位的組合值在 (PatientName,SSN)[IdKey]; 上。

當 RowID 基於多個欄位時, RowID 值是由 || 連接的每個組成欄位的值。操作員。例如, Ross,Betsy || 123-45-6789 。 InterSystems IRIS嘗試確定基於多個欄位的 RowID 的最大長度。如果無法確定最大長度,則 RowID 長度默認為512。

用作外鍵引用的 RowID 必須是公共的。

默認情況下,不能將具有公共 RowID 的表用作源表或目標表,以使用 INSERT INTO Sample.DupTable SELECT * FROM Sample.SrcTable 將數據復制到重復表中。

可以使用Management Portal SQL界面「目錄詳細信息欄位」列出「隱藏」列來顯示 RowID 是否被隱藏。

可以使用以下程序返回指定欄位(在此示例中為 ID )是否被隱藏:

⑵ SQL數據查詢和刪除

LZ好,《學生成績管理系統》論文

該文章來自互聯網
再給您一個網址:
http://www.dbxyxx.com/download/
希望對你有所幫助,祝你成功!

計算機應用與維護 申海
【摘 要】 人類已進入21世紀,科學技術突飛猛進,經濟知識和信息產業初見端倪,特別是信息技術和網路技術的訊速發展和廣泛應用,對社會的政治,經濟,軍事,文化等領域產生越來越深刻.學生成績管理系統是一個教育單位不可缺少的部分,它的內容對於學校的決策者和管理者來說都至關重要.本論文敘述到的學生成績管理系統是用IIS+ASP網頁編程+ACCESS資料庫+SQL查詢語言實現的.重點介紹了學生成績管理系統的實現過程:包括系統分析, 系統調查,功能設計,資料庫設計,系統實現,系統測試和調試等.本系統主要功能有教師管理,學生管理,班級管理,學生信息管理,成績管理,留言管理,包括功能需求描述,資料庫設計等內容.
【關鍵字】 ASP 成績管理 成績查詢 ACCESS
前言
人類已進入21世紀,科學技術突飛猛進,經濟知識和信息產業初見端倪,特別是信息技術和網路技術的訊速發展和廣泛應用,對社會的政治,經濟,軍事,文化等領域產生越來越深刻的影響,也正在改變人們的工作,生活學習,交流方式.信息的獲取,處理,交流和應用能力,已經成為人們最重要的能力之一.
在不久的將來知識經濟將佔世界經濟發展的主導地位,國家綜合國力和國際競爭能力越來越取決於教育發展,科學技術和知識創新的水平,教育在經濟和社會發展過程中將呈現出越來越突出的重要作用.學生成績管理系統是一個教育單位不可缺少的部分,它的內容對於學校的決策者和管理者來說都至關重要,所以學生成績管理系統應該能夠為用戶提供充足的信息和快捷的查詢手段.但是一直以來人們使用傳統人工的方式管理學生成績,填寫各種表格,這種管理方式存在著許多缺點,如:效率低,保密性差,另外所用其時間長,產生大量的文件和數據,這對於查找,更新和維護都帶來了不少的困難.
隨著中國加入WTO,意味著我國要在同一個網路平台上參與國際競爭,同世界接軌.這對我們既是一個機遇,也是一個挑戰.為此我們必須全面加強全民的信息技術教育,以提高我國的整體素質.科學技術的不斷發展和提高,計算機科學技術日漸成熟,其強大的功能人們已有深刻認識,它已進入人類社會的各個領域並發揮著越來越重要的作用.
作為計算機應用的一部分,使用計算機對學生成績管理系統進行信息管理,有著手工管理所無法比擬的優點,如:檢索迅速,查找方便,可靠性高,存儲量大,保密性好,壽命長,成本低等.這些優點能夠極大地提高學生成績系統管理的效率,也是教育單位的科學化,正規化管理,與世界接軌的重要條件,因此,開發一套這樣成績管理軟體成為很有必要的事情.
第一章 系統的需求分析
1.1 成績管理系統的背景分析
當今時代是飛速發展的信息時代,在各行各業中離不開信息處理,這正是計算機被廣泛應用於信息管理系統的環境.計算機的最大好處在於利用它能夠進行信息管理.使用計算機進行信息控制,不僅提高了工作效率,而且大大的提高了其安全性.尤其對於復雜的信息管理,計算機能夠充分發揮它的優越性.
管理信息系統是進行信息的採集,存儲,加工,維護和使用的系統,它是隨著管理科學和技術科學的發展而形成的.學生成績管理系統是一個教育單位不可缺少的部分,它的內容對於學校的決策者和管理者來說都至關重要,所以學生成績管理系統應該能夠為用戶提供充足的信息和快捷的查詢手段,對學生來說可以輕松的查閱自己在校的成績以及信息等.但是一直以來人們都是靠傳統人工的方式管理學生成績,這種管理方式存在著許多缺點,如:效率低,保密性差,另外時間一長,將產生大量的文件和數據,這對於查找,更新和維護都帶來了不少的困難.
隨著科學技術的不斷提高,計算機科學日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領域並發揮著越來越重要的作用.作為計算機應用的一部分,使用計算機對學生成績信息進行管理,有著手工管理所無法比擬的優點.例如:檢索迅速,查找方便,可靠性高,存儲量大,保密性好,壽命長,成本低等.這些優點能夠極大地提高學生成績管理的效率,也是企業的科學化,正規化管理,與世界接軌的重要條件.因此,開發這樣的一套成績管理系統成為很有必要的事情.
學生成績管理系統提供了強大的學生成績管理管理功能,方便系統管理員對學生成績等信息的添加,修改,刪除,查詢,留言等操作,同時一樣的方面學生對自己各科成績查詢,學習的交流.
1.2開發學生成績管理的必要性
在21世紀的科技時代,科學技術突飛猛進,計算機已經不僅是在科技上應用,而且在生活中也是同樣得到了廣泛在應用.如今,不管是小學,初中,高中,甚至是很多大學生的學生成績管理基本上是靠人工進行管理,但隨著時間的變化,學校規模的擴大,有關學生成績管理工作和所涉及到的數據量越來越大越來越多,大多數學校不得不靠增加人力,物力,財力來進行學生成績管理.但是人工管理成績檔案具有效率低,查找麻煩,可靠性不高,保密性低等因素.因此開發出一個不僅僅是適用於大中專院校以及其它高校通用的學生成績管理系統是必要的.
開發一個學生成績管理系統,採用計算機對學生成績進行管理,進一步提高了辦學效益和現代化水平.為廣大教師和學生提高工作效率,實現學生成績信息管理工作流程的系統化,規范化和自動化.現在我國的大中專院校的學生成績檔案管理水平普遍都不是很高,有的還停留在全用紙介質基礎上,這種管理方式已不能適應時代的發展,社會的需求,因為它浪費了大量的人力物力,也存在著許多不足的因素.在今天信息時代這種傳統的管理方法必然會被計算機為基礎的信息管理系統所代替.一個高效的學生成績管理系統可以存儲歷屆的學生成績檔案,不需要大量的人力,只需要幾名專門錄入員即可操作系統,節省大量人力,可以迅速查到所需信息,高效,安全,學生在能方便的查看自己的成績.
1.3學生成績管理系統設計的目標的分析
1,管理員能夠實現對整個學生信息的添加,修改,刪除,查詢等操作,對教師用戶的添加,刪除,修改等操作,對留言信息的添加,刪除,修改查詢等操作.
2,可以將學生成績的資料庫發布到網上,教師的信息發布的網上,方便學生教師進行查詢,達到資源共享的目的.
3,教師能夠在一定的許可權內對所有學生成績的查詢,所有教師信息的查詢,留言信息的添加,刪除,修改是,查看等,對的自己的聯系信息進行更新,登錄密碼的修改.
4,學生可以在自己的許可權內對對自己成績的查詢,以及個人信息的查詢,登錄密碼的修改,留言的查看,提交留言信息的相關操作.
1.4學生成績管理系統的系統需求
在21世紀的科技時代,科學技術突飛猛進,信息社會的高科技時代,商品經濟化的高效益,計算機的應用已普及到經濟和社會生活的各個領域.計算機雖然與人類的關系愈來愈密切,還有人由於計算機操作不方便繼續用手工勞動.為了適應現代社會人們高度強烈的時間觀念,學生成績管理系統為教學辦公帶來了極大的方便.該學生成績管理系統是以ASP網頁編程+ACCESS資料庫+SQL數據查詢語言編寫,其系統功能在內部IIS伺服器上運行.系統管理員,教師,學生只需通過簡單的操作,用戶都可以了解本系統軟體的基本工作原理.用戶只需進行輸入一些簡單的漢字,數字,或用滑鼠點擊即可達到自己想要的目標.
1.5學生成績管理系統的功能需求分析
學生成績管理系統主要提供成績查詢,方便管理的網上的信息查閱平台,學生可以通過該系統查閱與自己相關信息,查看留言,提交留言.教師可以通過成績管理系統查閱學生成績信息,教師信息,查看教師留言,學生留言,提交留言,留言的管理等相關操作.系統管理員可以實現以上的所有功能,還有對學生的添加,刪除,修改,教師的添加,刪除,修改,資料庫的備份,資料庫的還原等相關操作.
第二章 系統技術以及運行環境的需求分析
2.1 ASP技術簡介
Microsoft Active Server Pages 即我們所稱的ASP,其實是一套微軟開發的伺服器端腳本環境.Active Server Page 是創建動態網頁的一個很好的工具,它起一種編程語言的作用,可以利用它編寫動態產生HTML的程序代碼.因此,只要用戶瀏覽Web站點並請求一個ASP頁,Web伺服器就可以處理相應的ASP代碼,生成HTML代碼,然後將它傳遞到用戶瀏覽器並顯示出網頁.
ASP程序的優點:
1,ASP使用VBScript腳本語言直接源於VB語言,秉承了VB簡單易學的特點,掌管起來非常容易.
2,無須編譯,容易編寫,可在伺服器端直接執行.
3,利用ADO組件輕松存取資料庫.
4,與瀏覽器無關,客戶端只要使用可執行HTML碼的瀏覽器,即可瀏覽ASP所設計的網頁內容.
5,ASP能與任何ActiveX scripting語言相容.除了可使用VBScript或JavaScript語言來設計外,還通過plug-in的方式,使用由第三方所提供的其他腳本語言.
6,ASP技術的處理速度相當快,並且其安全性也很高,ASP的源程序,不會被傳到客戶瀏覽器,因而可以避免所寫的源程序被他人剽竊,也提高了程序的安全性.
7,ASP的對象和組件:ASP有7個固有對象這7個固有對象分別是Request,Response,Server,Application,Session,ASPError和ObjectContext.
2.2 ACCESS2003 技術簡介
Access2003 就是關系資料庫開發工具,資料庫能匯集各種信息以供查詢,存儲和檢索.那麼什麼叫資料庫呢 資料庫(Database)是由一些有意義和有關系的數據(data)所組合而成.一個資料庫中,包含了許多條記錄(Record),而每條記錄是由多個欄位(Field)所組成,不同的欄位存放這不同的數據.所以資料庫的嚴格定義是一組相關記錄的集合,而欄位則是最基本的數據項,也是資料庫中最小的單位.在計算機中用來幫我們管理資料庫的系統,我們稱之為資料庫管理管理系統(Database Management System DBMS).資料庫管理系統是架構在一個或多個資料庫之上,並針對資料庫中的數據進行管理運用.
Access 的優點在於它能使用數據表示圖或自定義窗體收集信息,數據表示圖提供了一種類似於 Excel 的電子表格,可以使資料庫一目瞭然.另外,Access 允許創建自定義報表用於列印或輸出資料庫中的信息.Access也提供了數據存儲庫,可以使用桌面資料庫文件把資料庫文件置於網路文件伺服器,與其他網路用戶共享資料庫.如上所述,Access 作為關系資料庫開發具備了許多優點,可以在一個數據包中同時擁有桌面資料庫的便利和關系資料庫的強大功能.
2.3 SQL語句簡介
1,SQL 語句簡介
SQL全稱是"結構化查詢語言(Structured Query Language)",SQL包含4個部分:
(1)數據查詢語言DQL-Data Query Language SELECT
(2)據操縱語言DQL-Data Manipulation Language INSERT, UPDATE, DELETE
(3)數據定義語言DQL-Data Definition Language CREATE, ALTER, DROP
(4)數據控制語言DQL-Data Control Language COMMIT WORK, ROLLBACK WORK
2,SQL的優點
(1)非過程化語言
(2)統一的語言
SQL為許多任務提供了命令,包括:查詢數據,數據更新,在表中插入記錄,在表中修改記錄,在表中刪除記錄,建立,修改和刪除數據對象,控制對數據和數據對象的存取 ,保證資料庫一致性和完整性 ,以前的資料庫管理系統為上述各類操作提供單獨的語言,而SQL將全部任務統一在一種語言中.
(3)是所有關系資料庫的公共語言
由於所有主要的關系資料庫管理系統都支持SQL語言,用戶可將使用SQL的技能從一個RDBMS轉到另一個.所有用SQL編寫的程序都是可以移植的.SQL是大多數關系型資料庫用做查詢語言的語言.它是可以移植的,並且容易學習使用,但是所有SQL語句都必須由資料庫伺服器獨立地執行.這就意味著客戶端應用必須把每條查詢發送到資料庫伺服器,等待它處理這個查詢,接收結果,做一些運算,然後給伺服器發送另外一條查詢.所有這些東西都會產生進程間通訊,並且如果客戶端在另外一台機器上甚至還會導致網路開銷.
2.4 IIS簡介
1,IIS的安裝
WINDOWS 2000 SERVER提供的WEB伺服器組件IIS的安裝方法,在開始→設置→控制面板→添加/刪除程序命,在添加/刪除程序中選擇→添加/刪除WINDOWS組件按鈕,就會彈出如圖2-1所示的WINDOWS組件向導對話框.在其中選擇INTERNET信息服務IIS,然後單擊下一步按鈕,隨後根據系統提示一步一步的操作即可完成IIS的安裝.
(圖2-1)
2,IIS虛擬目錄的創建
在啟動Internet後,在'默認WEB站點'單擊滑鼠右鍵如圖(2-2),在快捷菜單中選擇"新建"→"虛擬目錄"命令,輸入虛擬目錄的名字,然後按照系統提示操作,即可完成虛擬目錄的創建.
圖(2-2)
3,IIS的日常管理
(1)啟動站點,停止,暫停,刪除站點
(2)主目錄設置,文檔管理,ISAPI篩選器,HTTP頭,目錄安全性,文檔,自定義錯誤,性能
2.5 運行環境
為了保證成績管理系統運行的效率和可靠性,伺服器應具有較高的軟硬體配置,客戶端的要求不是很高.此應用程序可廣泛運行於國際互聯網即Internet,也可適用於內部的區域網.其運行要求如下:
軟體環境:
客戶端: Windows95/98/2000/XP,Internet Explorer(IE)等
伺服器端:Windows NT/Windows2000,Internet Information Server (IIS)4.0及其以上版本,IE等;或者Windows98,Personal Web Server(PWS),IE等.
資料庫:採用Access,運行於伺服器端.
硬體環境:
伺服器 CPU:PIII 500以上 ,內存:512M以上
客戶機 CPU:P200MMX以上,內存:32M以上
第三章 系統模塊的設計
3.1 系統的功能分析
該學生成績管理系統是用ASP網頁編程+ACCESS資料庫+SQL查詢語言編句,系統是基於網路在線的學生成績管理系統,在系統中分為大的三個方面:一是系統管理員頁面,二是教師登錄頁面,三是學生登錄頁面.
(1)系統管理員進入學生成績管理系統的主要功能是:實現教師添加,教師修改,教師刪除,教師查詢,資料庫的恢復,資料庫的備份,學生的添加,學生的修改,學生的查詢,學生成績的錄入,學生成績的添加,學生成績的修改,學生成績的刪除,留言的查詢,留言的提交,留言的刪除,留言的修改等基本功能.
(2)教師進入學生成績管理系統的主要功能是:實現學生的查詢,學生成績的查詢,留言的刪除,留言的查詢,留言的查詢,密碼的修改,教師的查詢,教師登陸密碼的更改,教師個人信息的修改等基本功能.
(3)學生進行學生成績管量系統的主要功能是:實現學生自己怕成績查詢,自己登錄密碼的修改,個人信息的查詢,留言的查看,提交留言的基本功能.
3.2 學生成績管理系統流程圖
(圖3-1)
3.3 系統功能模塊圖
(圖3-2)
系統管理員在學生成績管理系統中能夠為學生,教師重設密碼,能夠對學生成績管理系統具體的按學號,或按姓名進行模糊查詢,留言管理能夠對整個系統中的留言實現添加,刪除,修改操作,班級管理能夠對班級進行添加,刪除,修改,一般班級是不允許修改的,能對學生進行添加,刪除修改等操作.
(圖3-3)
教師在學生成績管理系統中能夠對所有學生的成績查看,對學生按學號進行精確查詢,按學生姓名進行模糊查詢,可以修改自己的登錄密碼,能對整個系統中的留言進行添加,刪除,修改,可以查詢整個系統中的教師信息.
(圖3-4)
學生在系統中的基本功能是對自己所有成績的查詢,個人登錄密碼的修改,基本信息的查看,能夠對有問題的地方以留言的方式提出,可以查看整個系統中的留言信息.
第四章 系統數據設計
4.1 系統管理員表
表名:admin
欄位名
欄位類型
欄位說明
Id
自動編號
主鍵
Admin
文本
系統管理用戶名
Pwd
文本
系統管理密碼
4.2 系統學生表
表名:Xuesheng
欄位名
欄位類型
欄位說明
Id
自動編號
Xuehao
文本
學生學號
Pwd
文本
學生登陸密碼
Xingming
文本
學生姓名
Xingbie
文本
學生性別
Chushengriqi
日期日間
學生出生日期
Banji
文本
學生在班級
Zhuanye
文本
學生專業
Xibu
文本
學生所在系部
Jiaoshi
文本
學生班主任
Lianxi
文本
學生聯系電話
Qq
文本
學生QQ號
Email
文本
學生電子郵箱
Minzu
文本
學生民族
Zheng
文本
學生政治面貌
Shenti
文本
學生身體情況
Tizhong
文本
學生體重
Shili
文本
學生視力
Jishu
文本
學生技術簡介
Ziwopingjia
文本
學生自我評價
Zhaopian
OLE 對象
學生照片
Jiatingdi
文本
學生家庭地址
dianhua
文本
學生家庭電話
4.3 成績管理系統教師表
表名:Jiaoshi
欄位名
欄位類型
欄位說明
Id
自動編號
主鍵
User
文本
教師用戶名
Pwd
文本
教師登陸密碼
Xingming
文本
教師姓名
Xingbie
文本
教師性別
Chushengriqi
日期/時間
教師出生年月
Xibu
文本
教師所在系部
Zhicheng
文本
教師職稱
Di
文本
教師家庭地址
Dianhua
文本
教師聯系電話
Shouji
文本
教師聯系電話
Youbian
文本
郵編
Qq
文本
教師QQ
EMAIL
文本
教師EMAIL
Gerenjianli
文本
教師個人簡歷
Gongzuo
文本
教師工作經驗
zhaopian
OLE 對象
教師相片
4.4 系統成績表
表名:Chengji
欄位名
欄位類型
欄位說明
Id
自動編號
主鍵
Xuehao
文本
學生學號
Xingming
文本
學生姓名
Xingbie
文本
學生性別
Xibu
文本
學生所在系部
Jiaoshi
文本
學生任課教師
Kechengming
文本
學生課程名
Chengji
文本
學生該科成績
4.5 系統留言表
表名:Test
欄位名
欄位類型
欄位說明
Id
自動編號
主鍵
Name
文本
留言姓名
Mail
文本
留言EMAIL
Liuy
文本
留言內容
Dianhua
文本
留言者電話
Qq
文本
留言QQ
4.6 系統班級表
表名:Banji
欄位名
欄位類型
欄位說明
Id
自動編號
主鍵
Xibu
文本
系部
Zhuanye
文本
專業
Banjiming
文本
班級名稱
Jiaoshi
文本
班主任
Riqi
日期/時間文本
入學時間
第五章 學生成績管理系統功能的實現
5.1 資料庫的連接
在整個學生成績管理系統中,資料庫的打開在系統中是很重要的,下面給出本系統連接打開資料庫的代碼文件DB.ASP
5.2 成績管理系統的登錄頁面
學生成績管理系統分為三種登錄模式(如圖5-1)
(1)系統管理員登錄
(2)教師登錄
(3)學生登錄
(圖5-1)
5.2 成績管理系統的安全性
系統是用ASP網頁編程+ACCESS資料庫+SQL查詢語句,學生成績管理系統中擁有的用戶名和密碼才能正常進入成績管理系統,系統安全設計的判斷頁面為DLCL.ASP文件,以下給出整個文件的部分代碼提供參考:
打開數據文件

讀取在圖(5-1)輸入的用戶名進行判斷,如果為空則自動跳回到系統首頁

以上代碼是通過讀取輸入的用戶名和密碼在從資料庫中進行查找,是否有當前輸入的用戶和密碼,如果用戶名正確與密碼正確則進入相應頁面的同時對SESSION存一個值,如果資料庫中沒有該用戶則跳到錯誤處理頁面ERRAR.ASP.
判斷用戶是否是從登錄頁面進入系統的處理頁面文件ADERRAR.ASP的代碼如下

如果SESSION中的值為空,則自動跳轉到登錄頁面
5.3 系統管理員功能簡介
(1)成績管理可以對學生的成績的添加,刪除,修改
(2)成績查詢實現對整個學生成績管理系統成績的查詢
(3)學生管理對學生的添加,刪除,修改,詳細信息的查看
(4)班級管理對所有班級的添加,刪除,修改
(5)留言管理對學生,教師提交的留言進入修改,刪除
(6)查看留言是對整個系統中提交的留言進行查詢
(7)我要留言是對學生提出的問題或者是教師提出的問題進行回答
(8)修改密碼是對該用戶的登錄密碼進行修改
(9)用戶管理是對教師的添加
(10)教師查詢是對所有教師的修改,刪除操作
(11)數據管理是對整個系統中的數據進行備份,還原
(12)退出系統是對該用戶登錄時記錄的SESSION進行清除
(圖5-2)
5.4 教師功能簡介
(1)成績查詢是對所有學生的成績查詢
(2) 個人信息是對自己信息的查看
(3) 聯系方式是對自己常用聯系電話的查看是否正確
(4) 教師查詢是對所有教師資料的查看
(5) 修改密碼是對自己登錄密碼的修改
(6) 查看留言是對所有留言的查詢
(7) 我要留言是對學生提出的問題或疑問進行解答
(8) 留言管理是對所有的留言擁有修改,刪除的許可權
(9) 退出系統是用戶在退出系統清除SESSION中的值
(圖5-3)
5.5 學生功能實現簡介
(1) 成績查詢是對該生自己所有課程成績的查詢
(2) 個人信息是對學生自己信息的查詢
(3) 查看留言是對所有留言都可以查看
(4) 修改密碼是對自己的登錄密碼進行修改
(5) 聯系方式是對自己常用的聯系方式進行查看
(6) 我要留言是對有什麼疑問提出
(7) 退出系統是清除自己登錄時的SESSION值
(圖5-4)
5.6 學生成績管理系統的關鍵代碼
(1)以下代碼是實現循環輸出學生成績
學號
姓名
性別
系部
教師
課程名
成績
(2)以下代碼是實現修改教師登錄密碼
(3)以下代碼是實現創建學生班級的

5.7 系統在調度中經常出現的問題
(1) 資料庫的連接容易出錯
(2) 各種數據寫入資料庫時容易出錯
(3) 在調度中經常出現數詞不匹配
總結
經過這一個多月的畢業設計和對相關資料的收集,讓我清楚的感到隨著網路科技的不斷發展和網路的廣泛應用,使我們的生活離不開它了.網路它以自己的獨特的優點征服了我們.在教育越來越受重視的21世紀,隨著學生成績管理類型的不斷增加和成績管理要求的不斷提高,管理方面的工作量將會越來越大,並且其工作將是一件十分煩瑣和非常容易出錯的事情.在這樣的情況下有一個實用學生成績管理系統是有其必然性的,如果能做出一個完善的學生成績管理系統就使管理方面的工作量減少很多.在這次的畢業設計中雖然時間緊迫但我學會了很多,也感到自身知識的貧乏,希望在日後的努力中能做出更完善的系統.
致謝
從十月份接受課題到現在完成畢業設計論文,衷心的感謝我的指導胡桂香老師給予了精心的指導和熱情的幫助,尤其在課題設計的前期准備階段和本人的資料庫的設計階段,導師提出許多寶貴的設計意見,在最後的測試修改階段老師在百忙之中抽出時間為我們提供了必要的幫助,這樣使得我們得以順利的完成畢業設計開發工作,在短暫的一個月的相處時間里,老師淵博的知識,敏銳的思路和實事求是的工作作風給我留下了深刻的印象,這將使得我終身受益,謹此向老師表示衷心的感謝和崇高的敬意.
參考文獻
(1)尚俊傑 《網路程序設計—ASP(第2版)》 清華大學出版社,北方交通大學出版社,2004年2月
(2)徐軍,吳玉新 《網站ASP後台解決方案》 人民郵電出版社,2001年1月
(3)吳振峰 《網站建設與管理》 高等教育出版社,2005年1月
(4)白以恩 《計算機網路基礎及應用》 哈爾濱工業大學出版社,2000年1月
(5)包錦陽 《大專生畢業論文(設計)寫作指導》 浙江大學出版社,2004年6月
(6)吳林華 《網站建設與維護》 電子工業出版社,2004年6月
(7)邵麗萍,張後楊,柯新生 《網頁編程技術》 清華大學出版社,2004年1月
(8)楊翼川,徐梅 《ASP動態網頁設計實戰》 機械工業出版社,2000年11月
學生成績管理系統
N
數據管理
教師管理
教師查詢
我要留言
修改密碼
學生管理
留言管理
留言查看
班級管理
成績查詢
成績管理
退出系統
系統管理員
登錄
Y
成績查詢
個人信息
查看留言
修改密碼
聯系方式
我要留言
退出系統
開始
信息輸入
信息是否正確
類型選擇
系統管理員
教師登錄
學生登錄
結束
教師
登錄
系統首頁
系統首頁
退出系統
留言管理
我要留言
修改密碼
查看留言
教師查詢
聯系方式
個人信息
成績查詢
學生功能:
學生
教師功能:
系統管理員功能:
登錄
系統首頁

希望對你有所幫助,祝你成功! 22353希望對你有幫助!

⑶ SQL資料庫怎麼實現模糊查詢

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

1、第一步,按「Ctrl + N」創建一個SQL查詢,如下圖所示,然後進入下一步。

⑷ 誰有《電子商務資料庫技術》的復習資料和練習題啊

第一章
1.電子商務是發生在開放網路上包含企業之間、企業和消費者之間的商業交易(狹義)。廣義的定義除電子交易外,還包括利用計算機網路技術進行的全部商業活動。
2.電子商務的類型:1企業經營2網上銀行3網上商店和網上購物4網路服務5其他,有關認證,海關稅務等部門。
3.電子商務的基本框架:社會環境(公共政策、法律、規則等)、自然科技環境(文檔、安全、網路協議的技術標准)和電子商務技術內容構成了電子商務應用平台的三個支柱。
4.基礎通信網路是電子商務的硬體基礎設施,承擔著電子商務傳輸的任務。資料庫承擔著對商品信息的存貯、管理、查詢、結算和處理等功能。
5.Web與資料庫的集成有三種形式:運用Web發布數據,運用Web共享數據,用資料庫驅動Web站點。
6.數據倉庫是指大量散布在網路資料庫中的數據進行組織,使之能形成一個可被檢索、搜索、分析和報告的商業信息清單。
7.數據挖掘是指對龐大的歷史交易數據進行再分析,以選定目標客戶分辨市場定位發現新的商業機會。
8.企業建立電子商務網站的步驟:1選自ISP和ICP2注冊域名和選側接入方式3網頁設計製作4創建和維護資料庫5整合資料庫和網站6在Web上使用資料庫。
9.資料庫驅動Web站點的核心是網路資料庫軟體。
10.資料庫軟體的類型:桌面型,中小型面向對象型,大型分布型,數據倉庫型。(包含的種類)
11.電子商務Web站點資料庫的特徵:1對電子商務運營各個方面確保數據安全2對電子商務交易過程管理3對客戶確認已經完成,但由於硬體軟體故障而未能執行的交易可以彌補。
12.創建網路資料庫的調件:1要符合企業電子商務的需要2能被某個資料庫管理系統接受3具有較高的質量,便於維護,理解,效率高。
腳本語言用途:1可以處理用戶在表單中輸入的數據,編輯,復制他們到隱含域2可以增強界面效果3可以控製表單的提交合生成復雜的URL地址。

第二章資料庫系統概論
1.資料庫管理的三個階段:人工管理階段,文件系統階段,資料庫系統階段。
2.按照模型發展劃分:1第一代資料庫管理系統,層次資料庫和網狀資料庫管理系統2第二代資料庫管理系統,關系資料庫管理系統(RDMS)3第三代資料庫管理系統,新一代,面向對象資料庫管理系統。
3.數據模型是資料庫系統的數學形式框架,是用來描述數據的一組該念和定義包括:數據的靜態特徵,數據的動態特徵,數據的完整約束性。大體可分兩類:面向值得數據模型和面向對象的數據模型。
4.在實際應用中,為了更好的描述現實世界中數據的特徵,常常針對不同的場合或不同的目的,採用不同的方法描述數據特徵,統稱為數據模型。有如下幾種:1概念數據模型,這是面向資料庫用戶的相士世界的數據模型,與具體的DBMS無關2邏輯數據模型,這是用戶從資料庫中所看到的數據模型,是具體的DBMS所支持的數據模型,既要面向用戶又要面向系統3物理數據模型,描述數據在存儲介質山的組織方式的數據模型,不僅與DBMS有關還和操作系統和硬體有關。
5.現實世界:是指存在於人腦之外的客觀世界。
6.概念世界:是現實世界在人們腦中的反映,是對客觀事物及其聯系的一種抽象描述。
7.實體:我們把客觀存在並可以相互區別的事物稱為實體。同一類實體的集合稱為實體集。屬性的集合表徵一種實體的類型,稱為實體型。
8.屬性:屬性是用來描述實體的某一方面的特性。屬性的具體取值為屬性值。
9.實體標志符:如果某個屬性或屬性集合的值能夠唯一的標志出實體集中的每一個實體,則可以選擇該屬性或屬性集合作為實體標志符。
10.聯系:實體集之間的對應關系稱為聯系,它反映現實世界的事物之間的相互關系。分實體內部各屬性之間的聯系和實體之間的聯系。
機器世界:信息經過加工編碼而進入機器世界,機器世界處理的對象是數據。
記錄:相對應每一實體的數據叫記錄。
欄位:相對應屬性的數據稱為欄位,或者數據項,又叫數據元素或初等項。
文件:相對應實體集的叫文件,它是同類記錄的集合。
記錄型:相對應於實體型的叫記錄型。
關鍵字:相應於實體標志符的為關鍵字,關鍵字又稱外碼。
11.E-R模型:E-R圖所描述的現實世界的信息結構稱為組織模式或企業模式,同時把這種描述結果稱為E-R模型。三要素:實體,屬性,實體之間的聯系。
12.聯系抽象後可歸結為三種:一對一聯系,一對多聯系,多對多聯系。
13.作實體-聯系圖(E-R圖)的步驟:1確定所有的實體集合2選擇實體集應包含的屬性3確定實體集之間的聯系4確定實體集的關鍵字,用下劃線在屬性上表明關鍵字的屬性集合5確定聯系的類型,在用線將表示聯系的菱形框聯繫到實體集時,在線旁邊註明是1或n來表示聯系的類型。
14.層次數據模型就是根據現實世界中存在的層次結構特點而提出的一種數據模型。用樹型結構來表示實體之間聯系的模型稱為層次模型。
15層次模型只能表示一對多關系,引入虛擬記錄型和指針轉換多對多關系。
16.網狀模型:用邏輯記錄型來代替實體型。邏輯記錄所包括的所有欄位的名字及其類型描述了邏輯記錄格式,這樣一邏輯記錄型為節點所形成的有向網路結構稱為網狀模型。網狀模型中給每一個父結點及子節點之間的聯系都指定名字,這種聯系稱為系。
17.關系模型:關系模型是同過表格數據來表示和實現兩個實體之間的聯系。關系就是二維表格,表格中的每一行稱作一個元組,它相當於一個記錄值;每一列是一個屬性值,列可以命名,稱為屬性名,屬性相當於記錄中的數據項或欄位值。關系是元組的集合。
18.關系有如下屬性:表格中的每一列都是不可再分的基本屬性;各列的名字不同,順序不重要;行的次序無關緊要;關系中部不允許有完全相同的兩行存在。.
19.域:域是值的有限集合。關系:笛卡爾積d1*d2*…dn 的任意一個子集稱為在d1,d2…dn上的一個關系。用R(d1,d2,…dn)表示,R為關系名。n為關系的度或目。
20.關系模式:我們將關系名及其屬性名集合稱為關系模式,具體的關系是實例。
21.資料庫模式;在支持關系模型的數據中,數據被看作是一個個的關系,描述資料庫全部關系的一組關系模式稱為關系的資料庫模式。任何時刻資料庫的所有具體的關系組成關系資料庫的一個實例。
22.關系運算:選擇σF(R) 投影ПAR 連接RfS
23.資料庫系統由五個部分組成:硬體資源(CPU,內存,磁碟),軟體資源(操作系統,資料庫管理系統,高級編程語言),資料庫結構,資料庫管理員和用戶。
24.資料庫管理系統的三級模式結構:用戶級資料庫,概念幾資料庫,物理級資料庫。
25.用戶資料庫是用戶看到使用的資料庫,所以又稱用戶視圖,子模式,外模式,用戶模式等。
26.概念級資料庫是DBA(資料庫管理員)看到的資料庫,因此也稱DBA視圖,又稱為模式。
27.物理級資料庫又稱為存儲模式,內模式,是資料庫管理系統內部的表示,即對數據的物理結構和方式的描述。
28.為了保證資料庫能夠高效正常的運行,一般大型資料庫都設有專門人員負責資料庫管理系統的管理工作,這種專門的人員成為資料庫管理人員(DBA)。主要職責:1負責資料庫核心及其開發工具的安裝及升級2為資料庫管理系統分配存儲空間並規劃未來的存儲要求3協助開發者建立基本的對象(表、視圖、索引)4負責注冊用戶並維護系統的安全性5負責資料庫管理系統的備份和恢復。
29.資料庫管理系統用戶分:最終用戶和專業用戶即應用程序員。
30.資料庫管理系統是對資料庫定義、管理、維護和檢索的一組軟體。其功能如下:1存儲數據2創建並維護數據結構3允許多用戶並發訪問4加強安全性和保密性5允許提取和操作已存儲的數據6實現數據錄入和數據載入7提供不同記錄的一致性8提供對指定數據快速提取的高效索引機制。
31.資料庫管理系統必須提供數據的安全性、並發性、完整性、數據備份、數據恢復等數據保護能力以保證資料庫中數據的安全可靠和正確性。為此需要建立資料庫保護機制,用於以阻止一切物理破壞和讀寫破壞,並能以最快的速度使其恢復工作。
32.資料庫的安全性主要是指保護資料庫,防止因用戶非法使用資料庫造成數據泄密、更改或破壞。保證安全性關鍵是控制和識別。
33.用戶操作資料庫中的數據至少三層安全防線:1操作系統的安全保護機制2資料庫管理系統的安全保護機制3資料庫中的安全防護機制a用戶標示和鑒定b存取控制c視圖d數據加密e資料庫審計。
34.資料庫的完整約束性是指數據的正確性、相容性和一致性,即防止不符合語義的錯誤數據輸入和輸出,同時還要使存儲在不同副本中的同一數據保持一致協調,使數據之間的結構不受破壞。
35.數據完整約束條件分類:1屬性值的約束和聯系的約束a屬性值的約束是對一個列的取值的說明b關於數據之間的聯系約束,在關系資料庫中指多個屬性或多個元組之間的聯系的約束2靜態約束和動態約束3立即執行約束和延遲執行約束。
36.完整性約束方法分兩類:隱含約束方法和顯式約束方法(a採用斷言說明句b採用CHECK子句或constraint 子句c採用資料庫觸發器d將完整性約束的說明和檢查任務交給應用程序)。
37.並發控制的基本單位是事務。
38.並發控制所帶來的數據不一致分三類:丟失數據,不可重讀數據和讀「臟」數據。
39.並發控制的基本思想:當一個應用程序對資料庫的某一部分執行修改操作時,對該部分數據實行封鎖,拒絕其他用戶對該部分的並發訪問控制要求,直到該事務執行完畢(正常結束或撤銷)。
40.並發控制的策略包括:封鎖單位大小的確定、死鎖的預防、檢測和解除。
41.分布式資料庫系統是在兩台或多台地理上或物理上分散而邏輯上集中的資料庫系統,管理這樣的資料庫系統的軟體稱為分布式資料庫管理系統(DDBMS)。
42.面向對象(OO)數據模型比傳統模型優勢:1具有表示和構造復雜對象的能力2通過封裝和消息隱藏技術提供了程序的模塊化機制3繼承和類層次技術不僅能表示is-a,還提供了軟體重用機制4通過滯後聯編等概念提供系統擴充能力5提供與宿主語言的無縫連接。
43.能夠管理數值、文件、表格、圖形、圖像、聲音等多媒體的資料庫稱為多媒體資料庫(MDB)。
44.管理應用方式:1基於關系模型,加以擴充,使之支持多媒體資料庫類型2基於OO模型來實現對多媒體信息的描述和操作3基於超文本模型。
45.多媒體資料庫的特殊功能:1支持圖像、聲音、動畫等多媒體欄位和用戶自定義欄位2支持長數據和非長數據的集成管理3支持復雜的實體表示4有保證完整性和一致性機制5支持同一實體多種表現形式6具有良好的用戶界面7至此多媒體的特殊查詢和良好的介面處理8支持分布式環境。
46.多媒體資料庫關鍵技術:1數據模型技術2數據存儲管理和壓縮解壓技術3多媒體再現和良好的用戶界面技術4多媒體信息檢索和查詢及其他處理技術5分布式環境與並行處理技術。

第三章資料庫設計基礎
1.資料庫設計的基本問題是如何建立一個良好的資料庫模式,亦即給出一組數據,如何構造一個合適於他們的數據模式,無論是存儲還是操縱反面都有較好的性能。
2.關系資料庫設計理論主要包括:函數依賴、範式和模式設計方法。
資料庫問題:數據冗餘、更新異常、插入異常、刪除異常。
3.規范化的目的:1把關系中的每一個數據項轉換成一個不可再分的基本項2消除冗餘,並使關系的檢索簡化3消除數據在插入、修改、刪除時的異常情況4關系模型靈活,易於使用非過程化的高級查詢語言進行查詢。
4.函數依賴:設R(A1A2A)是關系U={A1A2A}是R的所有屬性集合,X、Y、Z分別是R的屬性子集
1若對於R中的X的任何一個具體值,Y僅有唯一的具體值與之相對應,則稱R的屬性Y函數依賴於屬性X,記作X→Y,X稱為決定因素。
如果X→Y,且Y不是X的子集,則稱X→Y是非平凡的函數依賴。
2若在R中,如果屬性集Y函數依賴於屬性集X,且不與X的任何真子集函數依賴,則稱Y完全依賴於X記作Xf→Y,否則稱Y部分依賴於X,記作Xp→Y
3在R中對於屬性子集X、Y、Z,若Xf→Y,Y→Z,則稱Z對X傳遞函數依賴,記作Xt→Z。
關鍵字(碼):4在R中,設K是U的屬性或屬性集合。如果Kf→U,則稱K是關系R的一個後選關鍵字。若R中有一個以上的關鍵字,則選定其中一個作為主關鍵字(主碼),如果K是屬性集合,則稱為組合關鍵字或合成關鍵字。
5.包含在任意一個候選字中的屬性,稱為主屬性,不包含在任何候選關鍵字中的屬性稱為非主屬性。
6.若關系的全部屬性作為關鍵字,則稱為完全關鍵字。此時無非主屬性。
後選關鍵字的兩個性質:a標識的唯一性b無冗餘性。
5在關系R中,若屬性或屬性集合X不是R的關鍵字,但X是其他關系中的關鍵字,則稱X是關系R的外關鍵字或外碼。
6在關系R中,XYZ是屬性集合,且Z=U-X-Y,多值依賴X→→Y成立當且僅當對R中給定的一對(X,Z)值有一組Y的值與之對應,這組值決定於X值二與Z值無關。關系模式中至少存在三個屬性,才有可能存在多值依賴。
7.第一範式(1NF):如果關系R的每一個屬性的值為不可分離的原子值,即每個屬性都是不可再分的基本數據項,則R是第一範式記作R∈1NF。
8.第二範式:如果關系R∈1NF,且R中的每一非主屬性完全函數依賴於主關鍵字,則R是第二範式,記作R∈2NF。
9.第三範式:如果R∈2NF,而且它的任何一個非主屬性都不傳遞依賴於任何主關鍵字,則R是第三範式,記作R∈3NF。
10.BCNF:如果關系R∈3NF,X,Y∈U,若,且Y∈/U時,X必含有碼,則R是BCNF,記作R∈2NF。滿足BCNF的關系模式:a非主屬性對關鍵字完全函數依賴b主屬性對不包含它的關鍵字完全函數依賴c沒有屬性完全函數依賴於一組非主屬性。
11.第四範式:如果關系模式R∈BCNF,若X→→Y(Y∈/X)是平凡多值依賴,且X含有碼,則稱R是第四範式,記作R∈4NF.
12.規范化的小結:
目的:規范化的目的是使結構合理,清除存儲異常並使數據冗餘盡量小,便於插入、刪除和更新。
原則:遵從概念單一化「一事一地」原則,即一個關系模式描述一個實體或實體間的一種聯系。規范化的實質是概念單一化。
方法:將關系模式投影分解成兩個或兩個以上的關系模式。
要求:分解後的關系模式集合應當與原關系模式等價,即經過自然聯結可恢復原關系而不丟失信息,並保持屬性間的合理聯系。
13.E-R模型轉換為關系模型的規則:1E-R圖中的每個實體集,都相應的轉換成一個關系,實體集的名字就作為關系的名字,實體集的屬性就作為關系的屬性,實體集的關鍵字作為關系的關鍵字。2對於E-R圖中聯系,一個聯系轉化為一個關系,練習的名稱作為關系的名稱,聯系的屬性作為關系的屬性,所有參加聯系的實體集的關鍵字也作為關系的屬性,關系的屬性有聯系的類型決定。

第四章 面向對象數據可設計
1.OO中對象的定義:對象是一些屬性(屬性值刻畫了一個對象的狀態)及專用服務的封裝體,是問題空間中一些東西的抽象。
2.類和事例:具有相同結構和相同行為的對象被組合在同一類中,這是一種抽象類型的表示,稱為類。任何單個對象都是某個類的實例。
3.消息:對象的存取或使用都是通過一種方式來實現的,即發送消息。
4.繼承:繼承是指對象繼承了它所在的類的結構、操作和約束,也指一個類繼承另一個類的結構、操作和約束,可以說繼承體現了一種共享機制。
5.一個合格的面向對象的資料庫管理系統應具備的性質和特徵:1必備的:是指面向對象的資料庫管理系統所必須滿足的特徵。它們是復雜對象、對象標識、封裝型、類、繼承性及遲後綁定蟲災、可擴充性、計算完備性、持久性、輔存管理、並發性、恢復和即席查詢功能。2可選類:是指為了使系統更加完善可添加的功能。分別是多繼承性類型檢查和推理分布設計事務處理和版本。3開放的:是設計人員可以選擇的特徵。分別是程序設計範例、表示系統、類型系統及單一性。
6.對象關系數據資料庫管理系統必須具備的特徵:1允許基本類型擴充2支持復雜對象管理3支持結構,數據和函數的繼承、包括多重繼承4對產生規則的支持。
7.集中式結構,所有資源(數據)和處理(程序)都在一台稱為主機的計算機上完成,用戶輸入的信息通過客戶機終端傳導主機上。
文件伺服器系統結構中,應用程序在客戶工作站上運行,而不是在文件伺服器上運行,文件伺服器只提供資源的集中式管理和訪問路徑。
8.兩層客戶機/伺服器結構
客戶機:從其他計算機中讀取數據,經過加工處理後將數據存儲到原來提供數據的計算機中的計算機。
伺服器:向其他計算機提供數據的計算機。
客戶機/伺服器有三個基本組成部分:客戶機、伺服器、客戶機與伺服器的連接。
9.客戶機是一個面向最終用戶的介面或應用程序。
10.伺服器的主要功能是建立進程和網路服務地址,監聽用戶的調用,處理客戶的請求,將結果交給客戶機和釋放與客戶機的連接。
客戶機與伺服器之間的連接時通過網路連接實現的。
11.客戶/服務的關鍵在於任務的劃分,一般的客戶完成用戶介面任務,主要是輸入/輸出和任務提交;伺服器則主要完成數據的存儲、訪問和復雜的計算任務;連接件主要完成客戶和服務取得數據交換。
12.三層結構:客戶機、應用伺服器和數據伺服器。
13.客戶機上只需要安裝應用程序,負責處理與用戶的交互和與應用程序的交互。
14.應用伺服器負責處理應用邏輯,即接受客戶機方應用程序的請求,然後根據應用邏輯將這個請求轉化為資料庫請求後與資料庫伺服器進行交互,並將與資料庫伺服器交互的結果傳送給客戶機方的應用程序。
15.數據伺服器軟體根據應用伺服器發送的請求,進行資料庫操作,並將操作結果傳送給應用伺服器。
16.應用邏輯被所有用戶共享是兩層結構和三層應用軟體的最大區別。中間層即應用伺服器是整個系統的核心,它必須具有處理系統的具體應用的能力,並提供事務處理、安全控制以及滿足不同數量客戶機的請求而進行性能調整的能力。
17.三層結構應用軟體開發系統優點明顯:1整個系統被分為不同的邏輯塊,層次非常清晰2能夠使肥客戶機辦成瘦客戶機3開發和管理的時間向伺服器方轉移,使得分布數據處理成為可能4管理和維護變得相對簡單。另外引進三層機構體系,客戶機便可省去與資料庫系統直接互動的麻煩。
18.資料庫管理系統的實現技術
採用存儲過程技術的好處如下:1高性能2共享性3簡化了應用開發過程,提高了應用開發效率4簡化了安全控制。
19.分布是資料庫管理技術:1數據復制和分布2兩個階段提交a協調者詢問各個參與者能否提交該事務,並等待他們的回答b各參與者根據收到協調者所做的決定進行事務處理或回滾,並向協調者作出答復。協調者在收到所有應答後,該事務結束。

第五章 SQL
1.Sql 資料庫的數據體系是三級結構。關系模式(模式)稱為基本表,存儲模式(內模式)稱為存儲文件,子模式(外模式)稱為視圖,元組稱為行,屬性成為列。
2.Sql的組成:一個Sql 數據可是表的集合;表有行構成,行是列的集合;一個表或者是基本表或者是視圖;一個基本表可以跨一個或多個存儲文件,一個存儲文件可存一個或多個基本表;用戶可以操作基本表也可以操作視圖;SQL用戶可以是應用程序,也可以是終端用戶。
3.SQL組成:數據定義(DDL,定義資料庫的邏輯結構,包括定義資料庫,基本表,視圖和索引四個部分。)
數據操作:DML包括查詢和更新(插入,刪除,更新)。
數據控制:基本表和視圖的授權,完整性規則的描述,事物控制語句。
4.嵌入語言的使用規定:規定SQL在宿主語言的程序中的使用規則。
SQL語言優點:非過程化語言,統一的語言,所有關系資料庫的公共語言。
5.數據字典是關於數據描述的信息的一個特殊資料庫。包含每一個數據類型的名字,意義,描述,來源,格式,用途以及與其他數據的聯系等數據,這類數據成為元數據。因而數據字典又稱與資料庫。
數據字典庫的數據類型:數據項,組項,記錄,文件,外模式,概念模式,內模式,用戶應用程序,存取口令,安全性要求,完整性要求,映像等。
6.DD/D(數據字典/目錄)的用途:1是系統分析員,資料庫設計人員的得力助手2是協助DBA管理資料庫的有力工具3支持DBMS4幫助應用程序員和終端用戶更好的使用資料庫。
7.SQL server 備份類型:資料庫備份;事務日誌備份;差異備份;文件和文件組備份。
8.資料庫恢復模式:簡單恢復;完全恢復;批日誌恢復。
Truncate table tablename
Numeric distinct identity grant revoke commit rollback column
Use master
Exec sp_admpdevice 『tape』 ,」tape2』, 『\\.tape0』
foreign key reference
9.通用網關介面CGI就是Web伺服器與一個外部程序(又稱CGI程序)進行通信的協議介面,這個介面協議規定了Web伺服器與CGI程序傳送消息的格式,信息的內容和格式,同時也規定了CGI程序返回信息的內容和輸出標准。在Web頁面中,主要通過超鏈接或者指定表格和圖形的方法來執行CGI程序。
10.在網路伺服器上,通常許多程序,用來完成不同的任務,在技術上網路伺服器上的這些程序統稱為CGI程序。
11.ODBC具有最大的互操作性,可以使用一個單獨的程序來提取數據可信息,在提供一種方法讓應用程序讀取數據。一個應用程序可以存取不同的資料庫管理系統,而應用程序不必和DBMS綁在一起進行編譯,連接,運行,而只要在應用程序中通過選擇一個叫做資料庫驅動程序的模塊就可以把應用程序和所選的ODBCl連接在一起。
12.ODBC組件:應用程序,驅動程序管理器,驅動程序,數據源。
13.ODBC的兩個基本用途:1在電子商務實際過程中,涉及企業,客戶,銀行海關,運輸和保險等部門和單位,他們的應用平台不一致,需要同時訪問多種異構資料庫。使用ODBC技術,設計人員只需要編寫一個程序版本,即可以方問任何資料庫,從而使程序具有更好的兼容性和適應性。2有些應用程序需要防問某種資料庫,就要求程序所在的計算機安裝相應的資料庫軟體。資料庫軟體有的龐大,加之很多單機版要與Web互聯,為此ODBC 提供了一批常用資料庫軟體驅動程序,這樣,計算機上即使沒有安裝相應的資料庫管理系統,但只要安裝了相應的驅動程序,CGI程序就可以防問。應用程序不必關心ODBC與DBMS之間的底層通信協議。

第七章 MYSQL
1.恢復root口令:1停止Mysqld server 服務,在任務管理器中終止MySQL進程。2使用—skop-grant-tables參數啟動mysqld.3使用mysql –h –hostname mysql 命令登陸到mysql server,用grant 命令改變口令;也可以這樣:mysqladmin –h hostname –u user –passwordnew password 。4載入許可權表:mysqladmin –h hostname flush-privileges,或使用SQL 命令FLUSH Privileges(當然也可以重啟Mysql)。 Mysqlmp
2.優化操作系統:不要交換區,不要使用NFS磁碟,增加系統和Mysql伺服器的打開文件數量,增加系統進程和線程的數量,使用支持大文件的文件系統,使用合適的文件系統。

第八章 ORACLE
1.Oracle資料庫的突出優點:1支持大資料庫,多用戶的高性能的事務處理2Oracle遵守數據存取語言,操作系統,用戶介面和網路通信協議的工業標准3實施安全性和完整性控制4支持分式資料庫和分布處理5具有可移植性,可兼容性和可連接性。
2.Oracle 三種訪問資料庫的方法;1用SQL*Plus,他用SQL命令以交互的應用程序訪問資料庫2用第四代語言應用開發工具的應用程序訪問資料庫,SQL*Froms,sql*reportwriter,sql*menu 等,3用第三代語言嵌入的Sql語言或Oracle庫函數調用來訪問。Prol*C。
數據保護也稱數據控制主要包括資料庫的完整性控制,安全性控制,並發控制和恢復。
3.Oracle用下列機制管理資料庫的安全性:存取機制,特權(對象特權,系統特權)和角色,審計(語句審計,特權審計,對象審計)
資料庫不一致類型: 不一致性,不可重讀性,讀臟數據,丟失更改,破壞DDL操作。
4.封鎖:數據封鎖,DDL封鎖,內部封鎖。
5.Oracle使用的結構,當發生故障時保護數據:資料庫後備(完全後備,部分後備),日誌(在線日誌,歸檔日誌),回滾段和控制文件。
6.Oracle資料庫的三種標准備份方法:導出/導入(邏輯備份),冷備份和熱備份(物理備份)。
Exec sql begin declare section
….
Exec sql end declare section;
Exec sql include sqlca ;
Exec sql connect : 用戶名
Indentified by : 口令
定義游標
Exec sql declare 游標名 cursor for
Select 列
From 表;
打開游標
Exec sql open 游標名;
取數據
Exec sql fetch 游標名 into : 變數2,變數3 ..;
關閉游標
Exec sql close 游標名;

⑸ 求SQL資料庫實驗報告

*****系實驗(上機)報告

課程名稱 資料庫系統基礎
實驗名稱 數據查詢與存儲過程
學號 33
學生姓名 嘻習喜戲
成績

年 月 日

序號 5 實驗名稱 SQL數據查詢
實驗目的:
熟練掌握SQL SELECT 語句,能夠運用該語句完成各種查詢。

實驗內容:
用SQL SELECT 語句完成下列查詢:
1. 查詢客戶表中的所有記錄。
2. 從訂購單表中查詢客戶號信息(哪些客戶有訂購單)。
3. 查詢單價在20元以上(含)的產品信息。
4. 查詢單價在20元以上(不含)的產品名稱為牛奶的產品信息。
5. 查詢單價在20元以上(不含)的產品名稱為牛奶或德國乳酪的產品信息。
6. 查詢有2003年7月訂購單的客戶名稱、聯系人、電話號碼和訂單號信息。
7. 查詢有德國乳酪訂貨的客戶的名稱、聯系人和電話號碼信息。
8. 查詢有德國乳酪訂購需求的訂單名細記錄。
9. 查詢所有訂購數量(即訂單名細中每個訂購項目的數量)都在10個以上的訂購單的信息。
10. 找出和德國乳酪同等價位的所有產品信息。
11. 查詢單價范圍在10元到30元范圍內的產品信息(使用BETWEEN…AND)。
12. 從客戶表中查詢出客戶名稱中有「公司」二字的客戶信息(使用LIKE運算符)。
13. 從客戶表中查詢出客戶名稱中沒有「公司」二字的客戶信息(使用NOT LIKE運算符)。
14. 按產品的單價升序列出全部產品信息。
15. 先按產品名稱排序,再按單價排序列出全部產品信息。
16. 從產品表中查詢共有幾種產品。
17. 從訂購名細表中查詢德國乳酪的訂購總數。
18. 計算德國乳酪所有訂購的總金額。
19. 求所有訂購單的平均金額,在查詢結果中列出訂購單的個數和平均金額。
20. 求每個訂購單訂購的項目數和總金額。
21. 求每個客戶包含了德國乳酪訂購的訂單號及其最高金額和最低金額。
22. 求至少有兩個訂購項目的訂購單的平均金額。
23. 找出尚未最後確定訂購單(即訂購日期為空值的記錄)的有關客戶信息(客戶的名稱、聯系人和電話號碼)和訂單號。
24. 找出在2000年1月1日之後簽訂的訂購單的客戶信息(客戶的名稱、聯系人和電話號碼)、訂單號和訂購日期。
25. 列出每類產品(相同名稱)具有最高單價的產品信息(產品號、名稱、規格說明和單價,提示:使用內外層互相關嵌套查詢)。
26. 確定哪些客戶目前沒有訂購單(使用謂詞NOT EXISTS)。
27. 查詢目前有訂購單的客戶的信息(使用謂詞EXISTS)。
28. 查詢符合條件的產品信息,要求該產品的單價達到了任意一款產品名稱為牛奶的單價的一半(使用ANY或SOME量詞)。
29. 查詢符合條件的產品信息,要求該產品的單價大於任何一款產品名稱為牛奶的單價(使用ALL量詞)。
30. 設計如下的連接操作,並分析各自的特點:
•廣義笛卡兒積
•內連接
•外連接
•左連接
•右連接
•全連接

掌握存儲過程的創建命令,按照題目要求創建存儲過程,理解存儲過程的作用。
(1) 建立存儲過程。查詢單價范圍在x元到y元范圍內的產品信息。
(2) 建立存儲過程。查詢在某年某月某日之後簽訂的訂購單的客戶信息(客戶的名稱、聯系人和電話號碼)、訂單號和訂購日期。
(3) 建立存儲過程。將某產品的訂購日期統一修改為一個指定日期。
(4) 建立存儲過程。刪除沒有簽訂單的客戶信息。

實驗要求:
用SELECT語句完成本次實驗,並提交上機報告。
(1) 掌握存儲過程的創建命令,按照實驗內容的要求創建存儲過程,理解存儲過程的作用。
(2) 用CREATE PROCEDURE和EXECUTE 語句完成本次實驗,並提交上機報告。
實驗准備(本實驗預備知識和為完成本實驗所做的准備):
仔細閱讀課本第五章關於SQL的數據查詢功能的內容
實驗過程(實驗的操作過程、遇到的問題及其解決辦法或未能解決的問題):
用SQL SELECT 語句完成以上30題查詢

實驗總結(總結本次實驗的收獲、未解決的問題以及體會和建議等):
熟練掌握SQL SELECT 語句,能夠運用該語句完成各種查詢

附錄(SQL語句):
--1. 查詢客戶表中的所有記錄。
select * from 客戶
--2. 從訂購單表中查詢客戶號信息(哪些客戶有訂購單)
select 客戶號from 訂單where 訂單號!=null
--3. 查詢單價在元以上(含)的產品信息。
select *from 產品where 單價> 20 or 單價=20
--4. 查詢單價在元以上(不含)的產品名稱為牛奶的產品信息。
select *from 產品where 單價>20 and 產品名稱='牛奶'
--. 查詢單價在元以上(不含)的產品名稱為牛奶或德國乳酪的產品信息
select *from 產品where 單價>20 and (產品名稱='牛奶'or 產品名稱='德國乳酪')
--6. 查詢有年月訂購單的客戶名稱、聯系人、電話號碼和訂單號信息
select 客戶名稱,聯系人, 電話,訂單號from 客戶,訂單where (year(訂購日期)=2003 and month (訂購日期)=7)and (訂單.客戶號=客戶.客戶號)
--7. 查詢有德國乳酪訂貨的客戶的名稱、聯系人和電話號碼信息。
select 客戶名稱,聯系人, 電話from 客戶
where
(客戶號= (select 客戶號from 訂單where(訂單號 =(select 訂單號from 訂單明細
where 產品號= ( select 產品號from 產品where 產品名稱= ' 德國乳酪' )))))
--8. 查詢有德國乳酪訂購需求的訂單名細記錄。
select * from 訂單明細where (數量!=null and 產品號=(select 產品號from 產品where 產品名稱= '德國乳酪'))
--9. 查詢所有訂購數量(即訂單名細中每個訂購項目的數量)都在個以上的訂購單的信息。
select * from 訂單where (訂單號in (select 訂單號from 訂單明細where (數量>10)))
--10. 找出和德國乳酪同等價位的所有產品信息。
select * from 產品where (
--11. 查詢單價范圍在元到元范圍內的產品信息(使用BETWEEN…AND)。
select * from 產品where (單價between 10 and 30)
--12. 從客戶表中查詢出客戶名稱中有「公司」二字的客戶信息(使用LIKE運算符)
select * from 客戶where 客戶名稱like '%公司%'
--13. 從客戶表中查詢出客戶名稱中沒有「公司」二字的客戶信息(使用NOT LIKE運算符)。
select * from 客戶where 客戶名稱not like '%公司%'
--14. 按產品的單價升序列出全部產品信息。
select *from 產品order by 單價
--15. 先按產品名稱排序,再按單價排序列出全部產品信息。
select * from 產品order by 產品名稱,單價
--16. 從產品表中查詢共有幾種產品。
select count ( distinct 產品名稱) as 產品總數from 產品
--17. 從訂購名細表中查詢德國乳酪的訂購總數
select sum (數量) as '訂購乳酪數量'
from 訂單明細
where 產品號in(select 產品號from 產品where 產品名稱='德國乳酪')
--18. 計算德國乳酪所有訂購的總金額
declare @a money
select @a=(select 單價from 產品where 產品名稱='德國乳酪')
declare @b int
select @b=(select sum (數量) as '訂購乳酪數量'
from 訂單明細
where 產品號in(select 產品號from 產品where 產品名稱='德國乳酪'))
declare @c int
select @c=@a*@b
select @c as 總金額
--19. 求所有訂購單的平均金額,在查詢結果中列出訂購單的個數和平均金額。
select 訂單均值= avg(單價*數量) ,訂單個數=count ( 訂單號)
from 訂單明細,產品
where 產品.產品號=訂單明細.產品號
--20. 求每個訂購單訂購的項目數和總金額。
select 訂單號, count (產品.產品號) as 項目數,sum(數量*單價) as 總金額
from 產品,訂單明細
where (產品.產品號=訂單明細.產品號)
group by 訂單號
--21.求每個客戶包含了德國乳酪訂購的訂單號及其最高金額和最低金額
select 客戶.客戶號,產品.產品號,數量*單價as 總金額
from 客戶,訂單,訂單明細,產品
where 客戶.客戶號=訂單.客戶號and 訂單.訂單號=訂單明細.訂單號and 訂單明細.產品號=產品.產品號and
產品名稱='德國乳酪'
order by 客戶號
compute max(數量*單價),min (數量*單價) by 客戶號
--22.求至少有兩個訂購項目的訂購單的平均金額
select 訂單號,avg(數量*單價),count(產品.產品號)
from 訂單明細,產品
where 訂單明細.產品號=產品.產品號
group by 訂單號
having count(產品.產品號)>=2

--23.找出尚未最後確定訂購單(即訂購日期為空值的記錄)的有關客戶信息
-- (客戶的名稱、聯系人和電話號碼)和訂單號
select 客戶名稱,聯系人,電話,訂單明細.訂單號
from 客戶, 訂單明細,訂單
where(客戶.客戶號= 訂單.客戶號) and 訂購日期=null

--24.找出在年月日之後簽訂的訂購單的客戶信息
--(客戶的名稱、聯系人和電話號碼)、訂單號和訂購日期

select 客戶名稱,聯系人,電話,訂單號,訂購日期
from 客戶,訂單
where 客戶.客戶號=訂單.客戶號
and year(訂購日期)>1996 and month(訂購日期)>4 and day(訂購日期)>2

--25.列出每類產品(相同名稱)具有最高單價的產品信息
--(產品號、名稱、規格說明和單價,提示:使用內外層互相關嵌套查詢)
select A.產品號, A.產品名稱, A.規格說明, A.單價
from 產品A
where 單價= (SELECT MAX(單價)
FROM 產品B
WHERE A.規格說明= B.規格說明)
--26.確定哪些客戶目前沒有訂購單(使用謂詞NOT EXISTS)
select *
from 客戶
where not exists (select* from 訂單where 客戶號=訂單.客戶號)
--27.查詢目前有訂購單的客戶的信息(使用謂詞EXISTS)
select *
from 客戶
where exists (select* from 訂單where 客戶號=訂單.客戶號)

--28.查詢符合條件的產品信息,要求該產品的單價達到了任
--意一款產品名稱為牛奶的單價的一半(使用ANY或SOME量詞)
select *
from 產品a
where(單價>any(select 單價/2 from 產品b where b.產品名稱='牛奶'))
--29.查詢符合條件的產品信息,要求該產品的單價大於任何
-- 一款產品名稱為牛奶的單價(使用ALL量詞)
select *
from 產品a
where(單價>all(select 單價from 產品b where b.產品名稱='牛奶'))

--30.設計如下的連接操作,並分析各自的特點:
-- •廣義笛卡兒積
SELECT *
FROM 客戶CROSS JOIN 訂購單
WHERE 客戶.客戶號= 訂購單.客戶號

-- •內連接
SELECT *
FROM 客戶INNER JOIN 訂購單
ON 客戶.客戶號= 訂購單.客戶號

-- •外連接
-- •左連接
SELECT *
FROM 客戶LEFT JOIN 訂購單
ON 客戶.客戶號= 訂購單.客戶號
-- •右連接
SELECT *
FROM 客戶RIGHT JOIN 訂購單
ON 客戶.客戶號= 訂購單.客戶號

-- •全連接
SELECT *
FROM 客戶FULL JOIN 訂購單
ON 客戶.客戶號= 訂購單.客戶號

說明:
1. 上機報告上傳到211.68.36.251的資料庫文件夾中的上傳目錄
2. 文件名的命名規則為:學號+姓名+實驗+序號。如:9724101汪偉的第二次上機報告名為:9724101汪偉實驗2
3. 封面由學生填寫;
4. 正文的實驗名稱、實驗目的、實驗內容、實驗要求已經由教師指定;
5. 實驗准備由學生在實驗或上機之前填寫;
6. 實驗過程由學生記錄實驗的過程,包括操作過程、遇到哪些問題以及如何解決等;
7. 實驗總結由學生在實驗後填寫,總結本次實驗的收獲、未解決的問題以及體會和建議等;
8. 將相關的語句粘貼到附錄中。

你自己改改吧。想要word原版的話再說一聲。

⑹ SQL基礎教程的目錄

1.1運行SQL程序
1.2Microsoft Access
1.3Microsoft SQL Server
1.3.1SQL Server 2000
1.3.2SQL Server 2005/2008
1.4Oracle
1.5IBM DB2
1.6MySQL
1.7PostgreSQL 2.1表、列和行
2.1.1表
2.1.2列
2.1.3行
2.2主鍵
2.3外鍵
2.4聯系
2.4.1一對一
2.4.2一對多
2.4.3多對多
2.5規范化
2.5.1第一範式
2.5.2第二範式
2.5.3第三範式
2.5.4其他範式
2.6示例資料庫
2.6.1表authors
2.6.2表publishers
2.6.3表titles
2.6.4表titles_authors
2.6.5表royalties
2.7創建示例資料庫 3.1SQL語法
3.2SQL標准和一致性
3.3標識符
3.4數據類型
3.5字元串類型
3.6二進制大型對象類型
3.7精確數字類型
3.8近似數字類型
3.9布爾類型
3.10日期和時間類型
3.11時間間隔類型
3.12唯一標識符
3.13其他數據類型
3.14空值 4.1使用SELECT和FROM檢索列
4.2使用AS創建列的別名
4.3使用DISTINCT消除重復的行
4.4使用ORDER BY排序行
4.5使用WHERE篩選行
4.6使用AND、OR和NOT組合及求反條件
4.6.1AND操作符
4.6.2OR操作符
4.6.3NOT操作符
4.6.4AND、OR和NOT一起使用
4.7使用LIKE匹配模式
4.8使用BETWEEN進行范圍篩選
4.9使用IN進行列表篩選
4.10使用IS NULL測試空值 5.1創建派生列
5.2執行算術運算
5.3確定計算的順序
5.4使用||連接串
5.5使用SUBSTRING()提取子串
5.6使用UPPER()和LOWER()更改串的大小寫
5.7使用TRIM()修整字元
5.8使用CHARACTER_LENGTH()得到串長度
5.9使用POSITION()查找子串
5.10執行日期及時間間隔運算
5.11獲得當前日期和時間
5.12獲得用戶信息
5.13使用CAST()轉換數據類型
5.14使用CASE計算條件值
5.15使用COALESCE()檢查空值
5.16使用NULLIF()比較表達式 6.1使用聚合函數
6.2創建聚合表達式
6.3使用MIN()查找最小值
6.4使用MAX()查找最大值
6.5使用SUM()計算總和
6.6使用AVG()計算平均值
6.7使用COUNT()統計行數
6.8使用DISTINCT聚合不重復的值
6.9使用GROUP BY分組行
6.10使用HAVING篩選分組 7.1限定列名
7.2使用AS創建表的別名
7.3使用聯結
7.4使用JOIN或WHERE創建聯結
7.5使用CROSS JOIN創建交叉聯結
7.6使用NATURAL JOIN創建自然聯結
7.7使用INNER JOIN創建內聯結
7.8使用OUTER JOIN創建外聯結
7.9創建自聯結 8.1理解子查詢
8.2子查詢語法
8.3子查詢和聯結
8.4簡單子查詢和相關子查詢
8.4.1簡單子查詢
8.4.2相關子查詢
8.5在子查詢中限定列名
8.6子查詢中的空值
8.7使用子查詢作為列表達式
8.8使用比較操作符比較子查詢的值
8.9使用IN測試集合成員資格
8.10使用ALL比較所有子查詢的值
8.11使用ANY比較某些子查詢的值
8.12使用EXISTS檢測存在性
8.13比較等價查詢 9.1使用UNION合並行
9.2使用INTERSECT查找相同行
9.3使用EXCEPT查找不同行 10.1顯示表結構
10.2使用INSERT插入行
10.3使用UPDATE更新行
10.4使用DELETE刪除行 11.1創建表
11.2理解約束
11.3使用CREATE TABLE創建新表
11.4使用NOT NULL禁止空值
11.5使用DEFAULT確定默認值
11.6使用PRIMARY KEY指定主鍵
11.7使用FOREIGN KEY指定外鍵
11.8使用UNIQUE確保值唯一
11.9使用CHECK創建檢查約束
11.10使用CREATE TEMPORARY TABLE創建臨時表
11.11使用CREATE TABLE AS利用已存在表創建新表
11.12使用ALTER TABLE修改表
11.13使用DROP TABLE刪除表 12.1使用CREATE INDEX創建索引
12.2使用DROP INDEX刪除索引 13.1使用CREATE VIEW創建視圖
13.2通過視圖檢索數據
13.3通過視圖修改數據
13.3.1通過視圖插入行
13.3.2通過視圖更新行
13.3.3通過視圖刪除行
13.4使用DROP VIEW刪除視圖 15.1動態統計
15.2產生序列
15.3發現等差數列、遞增數列和等值數列
15.4限定返回行的數量
15.4.1Microsoft Access
15.4.2Microsoft SQL Server
15.4.3Oracle
15.4.4IBM DB2
15.4.5MySQL
15.4.6PostgreSQL
15.5分配排名
15.6計算修整均值
15.7隨機選取行
15.8處理重復值
15.9創建電話列表
15.10檢索元數據
15.10.1Microsoft Access
15.10.2Microsoft SQL Server
15.10.3Oracle
15.10.4IBM DB2
15.10.5MySQL
15.10.6PostgreSQL
15.11處理日期
15.11.1Microsoft Access
15.11.2Microsoft SQL Server
15.11.3Oracle
15.11.4IBM DB2
15.11.5MySQL
15.11.6PostgreSQL
15.12計算中值
15.13查詢極值
15.14改變動態統計的中流
15.15旋轉結果
15.16處理層次結構
索引

⑺ SQL查詢,如何查詢一個表中第三行,第三列的數據

可以使用col_name(object_id('tablename'),3)得到第三列的名稱,然後再使用列的名稱進行查詢。不過這樣就不能直接寫成SQL了,需要構造動態SQL語句。行號應該也可以使用類似方法得到,具體什麼函數記不清了。

⑻ 用SQL做了一個學生成績管理的資料庫,怎麼查詢成績不及格的學生的學號和姓名啊

本論文敘述了我校學成績管理的現狀以及Visual basic6.0語言的概況。重點介紹了學生成績管理系統的實現過程:包括系統分析、 系統調查、 數據流程分析、功能設計、 資料庫設計、 系統物理配置方案、 系統實現、 系統測試和調試。本系統主要功能有用戶管理、學生注冊、班級信息錄入、學生信息錄入、班級課程錄入、學校專業信息錄入、課程信息錄入、學生成績錄入、教師信息錄入、數據。。。。。。。。。。。包括功能需求描述、資料庫設計等內容。第四章介紹了本系統的具體實現。第五章關於本系統開發過程中的結論及體會。

學生成績管理系統,功能,特點,論文內容。

This thesis describes my school the present condition of the score management and the general situation of the Visual basic6.0 languages .The point introced the student the result management system carries out the process 。。。。。。。。。 such as function request description and the database design...etc. .A concrete realization that introced this system .Chapter 5 concerning conclusion within this system development process and realize.

the Student result management system, function, characteristics, thesis contents

目 錄

摘要
.前言
第一章 引言

1.1 開發背景

1.2開發目標

1.3 項目提出的意義

1. 4 系統開發所用的技術准備
第二章 系統分析

2.1系統需求分析

2.1.1系統調查

2.1.2組織機構設置

2.1.3用戶需求

2.1.4系統業務流程圖

2.1.5系統設計思想

2.1.6系統設計分析

2.1.7系統功能分析

2.2新系統邏輯方案

2.2.1數據流圖(簡稱為DFD)

2.2.2數據字典

2.2.3新系統邏輯模型的提出

2.2.4系統邊界

第三章 系統設計

3.1學生成績查詢系統功能需求簡介
3.2功能需求描述
3.3系統目標要求

3.4系統平台選擇
3.5資料庫設計
3.5.1資料庫需求分析

3.5.2資料庫概念結構設計
3.5.3、邏輯結構設計(E-R圖向關系模型的轉換)

第四章 系統實施

4.1各子系統模塊程序設計舉例
4.2 軟體測試的目的和原則
4.3 子系統測試
4.4 軟體運行與轉換

第五章 結 論
致 謝
參考文獻

第一章 引 言
1.1 項目開發背景
幾年前,各個學校的學生成績管理基本上都是靠手工進行,隨著各個學校的規模增大,有關學生成績管理工作所涉及的數據量越來越大,有的學校不得不靠增加人力、物力來進行學生成績管理。但手工管理具有效率底、 。。。。。。。所以我想借本次畢業設計之際,開發一個不僅適用本校各系而且適用於其它各校的通用高校學生成績管理系統。

我選擇母校來設計這個系統主要有兩個原因:

一是:。。。。。。。報。

1.2 項目開發的目標
建立學生成績管理系統,採用計算機對學生成績進行管理,進一步提高辦學效益和現代化水平。幫助廣大教師提高工作效率,實現學生成績信息管理工作流程的系統化、規范化和自動化

1.3 項目提出的意義

現在我國的大中專院校的學生成績管理水平普遍不高,有的還停留在紙介質基礎上,這種管理手段已不能適應時代的發展,因為它浪費了了許多的人力和物力。在當今信息時代這種傳統的管理方法必然被計算機為基礎的信息管理系統所代替。如果本系統能被學校所採用,將會改變以前靠手工管理學生成績的狀況,可以樹立良好的辦學形象,提高工作效率。

1.4 系統開發所用的技術准備
1.4. 1資料庫技術的現狀與發展

資料庫是60年代末出現的一門計算機軟體技術,到現在雖然只有三十多年的歷史,但在理論和時間。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2、信息查詢流圖

使用人員

成績數據表

班級數據表

課程數據表

學生數據表

查詢條件

查詢結果

學生信息錄入

成績信息錄入

班級信息錄入

課程信息錄入

圖2-4 學生信息查詢流圖

3.1學生成績查詢系統功能需求簡介
學生成績查詢系統對學校加強學生成績管理有著極其重要的作用。由於各個大學都在持續擴招,學生的數量日益龐大,傳統的手工成績管理不僅工作量大,而且容易出現問題。
3.2功能需求描述
1、用戶管理功能

用戶分為管理員、教師用戶、學生用戶三類。不論是管理員或教師用戶,還是學生用戶都需要通過用戶名和口令進行登錄。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

按學生角度管理教師可以看到學生信息和成績信息。學生信息包括學號、姓名、班級、生日、性別、地址、電話和簡歷。當教師用滑鼠雙擊某一學生信息時,可以自動顯示出該課程的這個學生所有課程的學習成績,並同時自動計算出這個學生的總分和平均分。在成績信息中,教師可以對學習成績進行增加、修改和刪除。並能夠列印報表。

3、學生對成績的查看功能

學生用戶登錄後,學生可以看到自己的學生信息和成績信息。學生信息包括學號、姓名、班級、生日、性別、地址、電話和簡歷。成績信息包括這個學生的所有課程的成績信息。。。。。。。。。。。。。。。。。。。。。。。。。。

Private Sub CmdOk_Click()
Dim Conn As New ADODB.Connection
Dim mlink As String
mlink = "provider=microsoft.jet.oledb.3.51;data source=score.mdb;"
Conn.Open mlink
『當用戶名密碼為空時給出提示
If Text1.Text = "" Then
MsgBox "請。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
在frmlogin窗體中如果用戶登錄成功,將會出現如圖4-3所示的MDI主窗體。

4-3系統主窗體

若是學生用戶,則有些菜單項不可用,只能運行本系統的部分功能(即重新登錄和信息查詢功能可用)。如圖4-4

Option Explicit

『『『當改變記錄集時,需要刷新整個網格控制項

Sub RefreshGrid()

grdScan.DataMember = ""

grdScan.Refresh

If DataEnv.rssqlStudent.State <> adStateClosed Then DataEnv.rssqlStudent.Close

DataEnv.rssqlStudent.Open

grdScan.DataMember = "sqlStudent"

grdScan.Ref...

本論文敘述了我校學成績管理的現狀以及Visual basic6.0語言的概況。重點介紹了學生成績管理系統的實現過程:包括系統分析、 系統調查、 數據流程分析、功能設計、 資料庫設計、 系統物理配置方案、 系統實現、 系統測試和調試。本系統主要功能有用戶管理、學生注冊、班級信息錄入、學生信息錄入、班級課程錄入、學校專業信息錄入、課程信息錄入、學生成績錄入、教師信息錄入、數據。。。。。。。。。。。包括功能需求描述、資料庫設計等內容。第四章介紹了本系統的具體實現。第五章關於本系統開發過程中的結論及體會。

學生成績管理系統,功能,特點,論文內容。

This thesis describes my school the present condition of the score management and the general situation of the Visual basic6.0 languages .The point introced the student the result management system carries out the process 。。。。。。。。。 such as function request description and the database design...etc. .A concrete realization that introced this system .Chapter 5 concerning conclusion within this system development process and realize.

the Student result management system, function, characteristics, thesis contents

目 錄

摘要
.前言
第一章 引言

1.1 開發背景

1.2開發目標

1.3 項目提出的意義

1. 4 系統開發所用的技術准備
第二章 系統分析

2.1系統需求分析

2.1.1系統調查

2.1.2組織機構設置

2.1.3用戶需求

2.1.4系統業務流程圖

2.1.5系統設計思想

2.1.6系統設計分析

2.1.7系統功能分析

2.2新系統邏輯方案

2.2.1數據流圖(簡稱為DFD)

2.2.2數據字典

2.2.3新系統邏輯模型的提出

2.2.4系統邊界

第三章 系統設計

3.1學生成績查詢系統功能需求簡介
3.2功能需求描述
3.3系統目標要求

3.4系統平台選擇
3.5資料庫設計
3.5.1資料庫需求分析

3.5.2資料庫概念結構設計
3.5.3、邏輯結構設計(E-R圖向關系模型的轉換)

第四章 系統實施

4.1各子系統模塊程序設計舉例
4.2 軟體測試的目的和原則
4.3 子系統測試
4.4 軟體運行與轉換

第五章 結 論
致 謝
參考文獻

第一章 引 言
1.1 項目開發背景
幾年前,各個學校的學生成績管理基本上都是靠手工進行,隨著各個學校的規模增大,有關學生成績管理工作所涉及的數據量越來越大,有的學校不得不靠增加人力、物力來進行學生成績管理。但手工管理具有效率底、 。。。。。。。所以我想借本次畢業設計之際,開發一個不僅適用本校各系而且適用於其它各校的通用高校學生成績管理系統。

我選擇母校來設計這個系統主要有兩個原因:

一是:。。。。。。。報。

1.2 項目開發的目標
建立學生成績管理系統,採用計算機對學生成績進行管理,進一步提高辦學效益和現代化水平。幫助廣大教師提高工作效率,實現學生成績信息管理工作流程的系統化、規范化和自動化。

1.3 項目提出的意義

現在我國的大中專院校的學生成績管理水平普遍不高,有的還停留在紙介質基礎上,這種管理手段已不能適應時代的發展,因為它浪費了了許多的人力和物力。在當今信息時代這種傳統的管理方法必然被計算機為基礎的信息管理系統所代替。如果本系統能被學校所採用,將會改變以前靠手工管理學生成績的狀況,可以樹立良好的辦學形象,提高工作效率。

1.4 系統開發所用的技術准備
1.4. 1資料庫技術的現狀與發展

資料庫是60年代末出現的一門計算機軟體技術,到現在雖然只有三十多年的歷史,但在理論和時間。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2、信息查詢流圖

使用人員

成績數據表

班級數據表

課程數據表

學生數據表

查詢條件

查詢結果

學生信息錄入

成績信息錄入

班級信息錄入

課程信息錄入

圖2-4 學生信息查詢流圖

3.1學生成績查詢系統功能需求簡介
學生成績查詢系統對學校加強學生成績管理有著極其重要的作用。由於各個大學都在持續擴招,學生的數量日益龐大,傳統的手工成績管理不僅工作量大,而且容易出現問題。
3.2功能需求描述
1、用戶管理功能

用戶分為管理員、教師用戶、學生用戶三類。不論是管理員或教師用戶,還是學生用戶都需要通過用戶名和口令進行登錄。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

按學生角度管理教師可以看到學生信息和成績信息。學生信息包括學號、姓名、班級、生日、性別、地址、電話和簡歷。當教師用滑鼠雙擊某一學生信息時,可以自動顯示出該課程的這個學生所有課程的學習成績,並同時自動計算出這個學生的總分和平均分。在成績信息中,教師可以對學習成績進行增加、修改和刪除。並能夠列印報表。

3、學生對成績的查看功能

學生用戶登錄後,學生可以看到自己的學生信息和成績信息。學生信息包括學號、姓名、班級、生日、性別、地址、電話和簡歷。成績信息包括這個學生的所有課程的成績信息。。。。。。。。。。。。。。。。。。。。。。。。。。

Private Sub CmdOk_Click()
Dim Conn As New ADODB.Connection
Dim mlink As String
mlink = "provider=microsoft.jet.oledb.3.51;data source=score.mdb;"
Conn.Open mlink
『當用戶名密碼為空時給出提示
If Text1.Text = "" Then
MsgBox "請。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
在frmlogin窗體中如果用戶登錄成功,將會出現如圖4-3所示的MDI主窗體。

4-3系統主窗體

若是學生用戶,則有些菜單項不可用,只能運行本系統的部分功能(即重新登錄和信息查詢功能可用)。如圖4-4

Option Explicit

『『『當改變記錄集時,需要刷新整個網格控制項

Sub RefreshGrid()

grdScan.DataMember = ""

grdScan.Refresh

If DataEnv.rssqlStudent.State <> adStateClosed Then DataEnv.rssqlStudent.Close

DataEnv.rssqlStudent.Open

grdScan.DataMember = "sqlStudent"

grdScan.Ref...
另外,虛機團上產品團購,超級便宜

⑼ 大數據雲計算好不好學習

說一下大數據的四個典型的特徵:

  • 數據量大;

  • 數據類型繁多,(結構化、非結構化文本、日誌、視頻、圖片、地理位置等);

  • 商業價值高,但需要在海量數據之上,通過數據分析與機器學習快速的挖掘出來;

  • 處理時效性高,海量數據的處理需求不再局限在離線計算當中。

第一章:Hadoop

在大數據存儲和計算中Hadoop可以算是開山鼻祖,現在大多開源的大數據框架都依賴Hadoop或者與它能很好的兼容。

關於Hadoop,你至少需要搞清楚這些是什麼:

自己學會如何搭建Hadoop,先讓它跑起來。建議先使用安裝包命令行安裝,不要使用管理工具安裝。現在都用Hadoop 2.0。

目錄操作命令;上傳、下載文件命令;提交運行MapRece示常式序;打開Hadoop WEB界面,查看Job運行狀態,查看Job運行日誌。知道Hadoop的系統日誌在哪裡。

以上完成之後,就應該去了解他們的原理了:

MapRece:如何分而治之;HDFS:數據到底在哪裡,究竟什麼才是副本;

Yarn到底是什麼,它能幹什麼;NameNode到底在幹些什麼;Resource Manager到底在幹些什麼;

如果有合適的學習網站,視頻就去聽課,如果沒有或者比較喜歡書籍,也可以啃書。當然最好的方法是先去搜索出來這些是干什麼的,大概有了概念之後,然後再去聽視頻。

第二章:更高效的WordCount

在這里,一定要學習SQL,它會對你的工作有很大的幫助。

就像是你寫(或者抄)的WordCount一共有幾行代碼?但是你用SQL就非常簡單了,例如:

SELECT word,COUNT(1) FROM wordcount GROUP BY word;

這便是SQL的魅力,編程需要幾十行,甚至上百行代碼,而SQL一行搞定;使用SQL處理分析Hadoop上的數據,方便、高效、易上手、更是趨勢。不論是離線計算還是實時計算,越來越多的大數據處理框架都在積極提供SQL介面。

另外就是SQL On Hadoop之Hive於大數據而言一定要學習的。

什麼是Hive?

官方解釋如下:The Apache Hive data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage and queried using SQL syntax。

為什麼說Hive是數據倉庫工具,而不是資料庫工具呢?

有的朋友可能不知道數據倉庫,數據倉庫是邏輯上的概念,底層使用的是資料庫,數據倉庫中的數據有這兩個特點:最全的歷史數據(海量)、相對穩定的;所謂相對穩定,指的是數據倉庫不同於業務系統資料庫,數據經常會被更新,數據一旦進入數據倉庫,很少會被更新和刪除,只會被大量查詢。而Hive,也是具備這兩個特點,因此,Hive適合做海量數據的數據倉庫工具,而不是資料庫工具。

了解了它的作用之後,就是安裝配置Hive的環節,當可以正常進入Hive命令行是,就是安裝配置成功了。

了解Hive是怎麼工作的

學會Hive的基本命令:

創建、刪除表;載入數據到表;下載Hive表的數據;

MapRece的原理(還是那個經典的題目,一個10G大小的文件,給定1G大小的內存,如何使用Java程序統計出現次數最多的10個單詞及次數);

HDS讀寫數據的流程;向HDFS中PUT數據;從HDFS中下載數據;

自己會寫簡單的MapRece程序,運行出現問題,知道在哪裡查看日誌;

會寫簡單的Select、Where、group by等SQL語句;

Hive SQL轉換成MapRece的大致流程;

Hive中常見的語句:創建表、刪除表、往表中載入數據、分區、將表中數據下載到本地;

從上面的學習,你已經了解到,HDFS是Hadoop提供的分布式存儲框架,它可以用來存儲海量數據,MapRece是Hadoop提供的分布式計算框架,它可以用來統計和分析HDFS上的海量數據,而Hive則是SQL On Hadoop,Hive提供了SQL介面,開發人員只需要編寫簡單易上手的SQL語句,Hive負責把SQL翻譯成MapRece,提交運行。

此時,你的」大數據平台」是這樣的:那麼問題來了,海量數據如何到HDFS上呢?

第三章:數據採集

把各個數據源的數據採集到Hadoop上。

3.1 HDFS PUT命令

這個在前面你應該已經使用過了。put命令在實際環境中也比較常用,通常配合shell、python等腳本語言來使用。建議熟練掌握。

3.2 HDFS API

HDFS提供了寫數據的API,自己用編程語言將數據寫入HDFS,put命令本身也是使用API。

實際環境中一般自己較少編寫程序使用API來寫數據到HDFS,通常都是使用其他框架封裝好的方法。比如:Hive中的INSERT語句,Spark中的saveAsTextfile等。建議了解原理,會寫Demo。

3.3 Sqoop

Sqoop是一個主要用於Hadoop/Hive與傳統關系型資料庫,Oracle、MySQL、SQLServer等之間進行數據交換的開源框架。就像Hive把SQL翻譯成MapRece一樣,Sqoop把你指定的參數翻譯成MapRece,提交到Hadoop運行,完成Hadoop與其他資料庫之間的數據交換。

自己下載和配置Sqoop(建議先使用Sqoop1,Sqoop2比較復雜)。了解Sqoop常用的配置參數和方法。

使用Sqoop完成從MySQL同步數據到HDFS;使用Sqoop完成從MySQL同步數據到Hive表;如果後續選型確定使用Sqoop作為數據交換工具,那麼建議熟練掌握,否則,了解和會用Demo即可。

3.4 Flume

Flume是一個分布式的海量日誌採集和傳輸框架,因為「採集和傳輸框架」,所以它並不適合關系型資料庫的數據採集和傳輸。Flume可以實時的從網路協議、消息系統、文件系統採集日誌,並傳輸到HDFS上。

因此,如果你的業務有這些數據源的數據,並且需要實時的採集,那麼就應該考慮使用Flume。

下載和配置Flume。使用Flume監控一個不斷追加數據的文件,並將數據傳輸到HDFS;Flume的配置和使用較為復雜,如果你沒有足夠的興趣和耐心,可以先跳過Flume。

3.5 阿里開源的DataX

現在DataX已經是3.0版本,支持很多數據源。

第四章:把Hadoop上的數據搞到別處去

Hive和MapRece進行分析了。那麼接下來的問題是,分析完的結果如何從Hadoop上同步到其他系統和應用中去呢?其實,此處的方法和第三章基本一致的。

HDFS GET命令:把HDFS上的文件GET到本地。需要熟練掌握。

HDFS API:同3.2.

Sqoop:同3.3.使用Sqoop完成將HDFS上的文件同步到MySQL;使用Sqoop完成將Hive表中的數據同步到MySQL。

如果你已經按照流程認真完整的走了一遍,那麼你應該已經具備以下技能和知識點:

知道如何把已有的數據採集到HDFS上,包括離線採集和實時採集;

知道sqoop是HDFS和其他數據源之間的數據交換工具;

知道flume可以用作實時的日誌採集。

從前面的學習,對於大數據平台,你已經掌握的不少的知識和技能,搭建Hadoop集群,把數據採集到Hadoop上,使用Hive和MapRece來分析數據,把分析結果同步到其他數據源。

接下來的問題來了,Hive使用的越來越多,你會發現很多不爽的地方,特別是速度慢,大多情況下,明明我的數據量很小,它都要申請資源,啟動MapRece來執行。

第五章:SQL

其實大家都已經發現Hive後台使用MapRece作為執行引擎,實在是有點慢。因此SQL On Hadoop的框架越來越多,按我的了解,最常用的按照流行度依次為SparkSQL、Impala和Presto.這三種框架基於半內存或者全內存,提供了SQL介面來快速查詢分析Hadoop上的數據。

我們目前使用的是SparkSQL,至於為什麼用SparkSQL,原因大概有以下吧:使用Spark還做了其他事情,不想引入過多的框架;Impala對內存的需求太大,沒有過多資源部署。

5.1 關於Spark和SparkSQL

什麼是Spark,什麼是SparkSQL。

Spark有的核心概念及名詞解釋。

SparkSQL和Spark是什麼關系,SparkSQL和Hive是什麼關系。

SparkSQL為什麼比Hive跑的快。

5.2 如何部署和運行SparkSQL

Spark有哪些部署模式?

如何在Yarn上運行SparkSQL?

使用SparkSQL查詢Hive中的表。Spark不是一門短時間內就能掌握的技術,因此建議在了解了Spark之後,可以先從SparkSQL入手,循序漸進。

關於Spark和SparkSQL,如果你認真完成了上面的學習和實踐,此時,你的」大數據平台」應該是這樣的。

第六章:數據多次利用

請不要被這個名字所誘惑。其實我想說的是數據的一次採集、多次消費。

在實際業務場景下,特別是對於一些監控日誌,想即時的從日誌中了解一些指標(關於實時計算,後面章節會有介紹),這時候,從HDFS上分析就太慢了,盡管是通過Flume採集的,但Flume也不能間隔很短就往HDFS上滾動文件,這樣會導致小文件特別多。

為了滿足數據的一次採集、多次消費的需求,這里要說的便是Kafka。

關於Kafka:什麼是Kafka?Kafka的核心概念及名詞解釋。

如何部署和使用Kafka:使用單機部署Kafka,並成功運行自帶的生產者和消費者例子。使用Java程序自己編寫並運行生產者和消費者程序。Flume和Kafka的集成,使用Flume監控日誌,並將日誌數據實時發送至Kafka。

如果你認真完成了上面的學習和實踐,此時,你的」大數據平台」應該是這樣的。

這時,使用Flume採集的數據,不是直接到HDFS上,而是先到Kafka,Kafka中的數據可以由多個消費者同時消費,其中一個消費者,就是將數據同步到HDFS。

如果你已經認真完整的學習了以上的內容,那麼你應該已經具備以下技能和知識點:

為什麼Spark比MapRece快。

使用SparkSQL代替Hive,更快的運行SQL。

使用Kafka完成數據的一次收集,多次消費架構。

自己可以寫程序完成Kafka的生產者和消費者。

從前面的學習,你已經掌握了大數據平台中的數據採集、數據存儲和計算、數據交換等大部分技能,而這其中的每一步,都需要一個任務(程序)來完成,各個任務之間又存在一定的依賴性,比如,必須等數據採集任務成功完成後,數據計算任務才能開始運行。如果一個任務執行失敗,需要給開發運維人員發送告警,同時需要提供完整的日誌來方便查錯。

第七章:越來越多的分析任務

不僅僅是分析任務,數據採集、數據交換同樣是一個個的任務。這些任務中,有的是定時觸發,有點則需要依賴其他任務來觸發。當平台中有幾百上千個任務需要維護和運行時候,僅僅靠crontab遠遠不夠了,這時便需要一個調度監控系統來完成這件事。調度監控系統是整個數據平台的中樞系統,類似於AppMaster,負責分配和監控任務。

7.1 Apache Oozie

Oozie是什麼?有哪些功能?

Oozie可以調度哪些類型的任務(程序)?

Oozie可以支持哪些任務觸發方式?

安裝配置Oozie。

7.2 其他開源的任務調度系統

Azkaban,light-task-scheler,Zeus,等等。另外,我這邊是之前單獨開發的任務調度與監控系統,具體請參考《大數據平台任務調度與監控系統》。

第八章:我的數據要實時

在第六章介紹Kafka的時候提到了一些需要實時指標的業務場景,實時基本可以分為絕對實時和准實時,絕對實時的延遲要求一般在毫秒級,准實時的延遲要求一般在秒、分鍾級。對於需要絕對實時的業務場景,用的比較多的是Storm,對於其他准實時的業務場景,可以是Storm,也可以是Spark Streaming。當然,如果可以的話,也可以自己寫程序來做。

8.1 Storm

什麼是Storm?有哪些可能的應用場景?

Storm由哪些核心組件構成,各自擔任什麼角色?

Storm的簡單安裝和部署。

自己編寫Demo程序,使用Storm完成實時數據流計算。

8.2 Spark Streaming

什麼是Spark Streaming,它和Spark是什麼關系?

Spark Streaming和Storm比較,各有什麼優缺點?

使用Kafka + Spark Streaming,完成實時計算的Demo程序。

至此,你的大數據平台底層架構已經成型了,其中包括了數據採集、數據存儲與計算(離線和實時)、數據同步、任務調度與監控這幾大模塊。接下來是時候考慮如何更好的對外提供數據了。

第九章:數據要對外

通常對外(業務)提供數據訪問,大體上包含以下方面。


離線:比如,每天將前一天的數據提供到指定的數據源(DB、FILE、FTP)等;離線數據的提供可以採用Sqoop、DataX等離線數據交換工具。

實時:比如,在線網站的推薦系統,需要實時從數據平台中獲取給用戶的推薦數據,這種要求延時非常低(50毫秒以內)。根據延時要求和實時數據的查詢需要,可能的方案有:HBase、Redis、MongoDB、ElasticSearch等。

OLAP分析:OLAP除了要求底層的數據模型比較規范,另外,對查詢的響應速度要求也越來越高,可能的方案有:Impala、Presto、SparkSQL、Kylin。如果你的數據模型比較規模,那麼Kylin是最好的選擇。

即席查詢:即席查詢的數據比較隨意,一般很難建立通用的數據模型,因此可能的方案有:Impala、Presto、SparkSQL。

這么多比較成熟的框架和方案,需要結合自己的業務需求及數據平台技術架構,選擇合適的。原則只有一個:越簡單越穩定的,就是最好的。