教學課件:《SQL-Server-2008數(shù)據(jù)庫管理與開發(fā)》_第1頁
教學課件:《SQL-Server-2008數(shù)據(jù)庫管理與開發(fā)》_第2頁
教學課件:《SQL-Server-2008數(shù)據(jù)庫管理與開發(fā)》_第3頁
教學課件:《SQL-Server-2008數(shù)據(jù)庫管理與開發(fā)》_第4頁
教學課件:《SQL-Server-2008數(shù)據(jù)庫管理與開發(fā)》_第5頁
已閱讀5頁,還剩311頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

SQLServer2008數(shù)據(jù)庫管理與開發(fā)項目一創(chuàng)建和維護數(shù)據(jù)庫數(shù)據(jù)庫表是存儲數(shù)據(jù)的基本單元,在創(chuàng)建數(shù)據(jù)庫表之前,必須做出有關表結構的決策,包括表要包含的內(nèi)容,反應到表結構上是指表將要包含哪些字段以及這些字段的數(shù)據(jù)類型。目錄

任務一創(chuàng)建數(shù)據(jù)庫表

任務二修改和刪除數(shù)據(jù)庫表

任務三認識主鍵和外鍵創(chuàng)建數(shù)據(jù)庫表任務一:創(chuàng)建數(shù)據(jù)庫表準備知識1.數(shù)據(jù)庫相關概念2.數(shù)據(jù)類型3.空值4.添加Identity列1.數(shù)據(jù)庫相關概念1.數(shù)據(jù)庫相關概念(1)數(shù)據(jù)數(shù)據(jù)(Data)實際上就是描述事物的符號記錄。計算機中的數(shù)據(jù)一般分為兩部分,其中一部分與程序僅有短時問的交互關系,隨著程序的結束而消亡,它們稱為臨時性(Transient)數(shù)據(jù),這類數(shù)據(jù)一般存放于計算機內(nèi)存中;而另一部分數(shù)據(jù)則對系統(tǒng)起著長期持久的作用,它們稱為持久性(Persistent)數(shù)據(jù)。數(shù)據(jù)庫系統(tǒng)中處理的就是這種持久性數(shù)據(jù)。近10多年來,數(shù)據(jù)在軟件系統(tǒng)中的地位產(chǎn)生了變化,在數(shù)據(jù)庫系統(tǒng)及數(shù)據(jù)庫應用系統(tǒng)中數(shù)據(jù)已占有主體地位,而程序已退居附屬地位。在數(shù)據(jù)庫系統(tǒng)中需要對數(shù)據(jù)進行集中、統(tǒng)一的管理,以達到數(shù)據(jù)被多個應用程序共享的目標。小提示:1.數(shù)據(jù)庫相關概念1.數(shù)據(jù)庫相關概念(2)數(shù)據(jù)庫數(shù)據(jù)庫(Database,簡稱DB)是數(shù)據(jù)的集合,它具有統(tǒng)一的結構形式并存放于統(tǒng)一的存儲介質(zhì)內(nèi),是多種應用數(shù)據(jù)的集成,并可被各個應用程序所共享。數(shù)據(jù)庫存放數(shù)據(jù)是按數(shù)據(jù)所提供的數(shù)據(jù)模式存放的,它能構造復雜的數(shù)據(jù)結構以建立數(shù)據(jù)問內(nèi)在聯(lián)系與復雜的關系,從而構成數(shù)據(jù)的全局結構模式。數(shù)據(jù)庫中的數(shù)據(jù)具有“集成”、“共享”之特點,亦即是數(shù)據(jù)庫集中了各種應用的數(shù)據(jù),進行統(tǒng)一的構造與存儲,而使它們可被不同應用程序所使用。1.數(shù)據(jù)庫相關概念1.數(shù)據(jù)庫相關概念(3)數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem,簡稱DBMS)是數(shù)據(jù)庫的機構,它是一種系統(tǒng)軟件,負責數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護、控制及保護和數(shù)據(jù)服務等。數(shù)據(jù)庫中的數(shù)據(jù)是具有海量級的數(shù)據(jù),并且其結構復雜,因此需要提供管理工具。數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心。注意啦!數(shù)據(jù)庫中的數(shù)據(jù)具有共享性,而數(shù)據(jù)共享可能會引發(fā)數(shù)據(jù)的非法使用,因此必須要對數(shù)據(jù)正確使用作出必要的規(guī)定,并在使用時做檢查,這就是數(shù)據(jù)的安全性。1.數(shù)據(jù)庫相關概念1.數(shù)據(jù)庫相關概念(4)數(shù)據(jù)庫管理員由于數(shù)據(jù)庫的共享性,因此對數(shù)據(jù)庫的規(guī)劃、設計、維護、監(jiān)視等需要有專人管理,稱他們?yōu)閿?shù)據(jù)庫管理員(DatabaseAdministrator簡稱DBA)。其主要工作如下:1)數(shù)據(jù)庫設計(DatabaseDesign)。2)數(shù)據(jù)庫維護。3)改善系統(tǒng)性能,提高系統(tǒng)效率。知識鏈接當效率下降時,DBA需采取適當?shù)拇胧?,如進行數(shù)據(jù)庫的重組、重構等。1.數(shù)據(jù)庫相關概念1.數(shù)據(jù)庫相關概念(5)數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)(DatabaseSystem簡稱DBS)由如下幾部分組成:數(shù)據(jù)庫(數(shù)據(jù))、數(shù)據(jù)庫管理系統(tǒng)(軟件)、數(shù)據(jù)庫管理員(人員)、系統(tǒng)平臺之一——硬件平臺(硬件)、系統(tǒng)平臺之二——軟件平臺(軟件)。這五個部分構成了一個以數(shù)據(jù)庫為核心的完整的運行實體,稱為數(shù)據(jù)庫系統(tǒng)。1.數(shù)據(jù)庫相關概念1.數(shù)據(jù)庫相關概念在數(shù)據(jù)庫系統(tǒng)中,硬件平臺包括:計算機:它是系統(tǒng)中硬件的基礎平臺,目前常用的有微型機、小型機、中型機、大型機及巨型機。網(wǎng)絡:過去數(shù)據(jù)庫系統(tǒng)一般建立在單機上,但是近年來它較多的建立在網(wǎng)絡上,從目前形勢看,數(shù)據(jù)庫系統(tǒng)今后將以建立在網(wǎng)絡上為主,而其結構形式又以客戶/服務器(C/S)方式與瀏覽器/服務器(B/S)方式為主。1.數(shù)據(jù)庫相關概念1.數(shù)據(jù)庫相關概念在數(shù)據(jù)庫系統(tǒng)中,軟件平臺包括:操作系統(tǒng):它是系統(tǒng)的基礎軟件平臺,目前常用的有各種UNIX(包括LINUX)與WINDOWS兩種。數(shù)據(jù)庫系統(tǒng)開發(fā)工具:為開發(fā)數(shù)據(jù)庫應用程序所提供的工具。接口軟件:在網(wǎng)絡環(huán)境下數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)庫與應用程序,數(shù)據(jù)庫與網(wǎng)絡間存在著多種接口,它們需要用接口軟件進行聯(lián)接,否則數(shù)據(jù)庫系統(tǒng)整體就無法運作。1.數(shù)據(jù)庫相關概念1.數(shù)據(jù)庫相關概念(6)數(shù)據(jù)庫應用系統(tǒng)(DatabaseApplicationSystem簡稱DBAS)利用數(shù)據(jù)庫系統(tǒng)進行應用開發(fā)可構成一個數(shù)據(jù)庫應用系統(tǒng),數(shù)據(jù)庫應用系統(tǒng)是數(shù)據(jù)庫系統(tǒng)再加上應用軟件及應用界面這三者所組成,具體包括:數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫管理員,硬件平臺、軟件平臺、應用軟件、應用界面。其中應用軟件是由數(shù)據(jù)庫系統(tǒng)所提供的數(shù)據(jù)庫管理系統(tǒng)(軟件)及數(shù)據(jù)庫系統(tǒng)開發(fā)工具所書寫而成,而應用界面大多由相關的可視化工具開發(fā)而成。1.數(shù)據(jù)庫相關概念1.數(shù)據(jù)庫相關概念數(shù)據(jù)庫應用系統(tǒng)的7個部分以一定的邏輯層次結構方式組成一個有機的整體。如果不計數(shù)據(jù)庫管理員(人員)并將應用軟件與應用界面記成應用系統(tǒng),則數(shù)據(jù)庫應用系統(tǒng)的結構如圖所示。數(shù)據(jù)庫系統(tǒng)的軟硬件層次結構圖1.數(shù)據(jù)庫相關概念1.數(shù)據(jù)庫相關概念下面以一個用戶讀取某數(shù)據(jù)記錄為例,展示在數(shù)據(jù)庫系統(tǒng)中訪問數(shù)據(jù)的具體執(zhí)行過程。數(shù)據(jù)庫訪問數(shù)據(jù)的步驟如果用戶是更新一個記錄內(nèi)容,則執(zhí)行過程類似。首先讀出目標記錄,并在用戶工作區(qū)中進行修改,然后向DBMS發(fā)出“寫回修改數(shù)據(jù)”的數(shù)據(jù)庫指令即可。拓展提高:2.數(shù)據(jù)類型2.數(shù)據(jù)類型在創(chuàng)建數(shù)據(jù)庫表時,你必須為每一表列指定數(shù)據(jù)庫類型。SQLServer提供了許多內(nèi)建系統(tǒng)數(shù)據(jù)庫類型,這些類型大致可以分成以下幾類:數(shù)值類型。如Int,Numeric等。字符類型。如Char,Varchar等。文本和圖像。如Text和Image等。時間日期類型。如Datetime,Smalldatetime等。其他特殊數(shù)據(jù)類型。如Table,Sysname和Uniqueidentifier等。2.數(shù)據(jù)類型2.數(shù)據(jù)類型首先看看數(shù)值類型。下表列出了所有的數(shù)值類型的數(shù)據(jù)類型以及它們的存儲容量:數(shù)據(jù)類型描述存儲大小Bit值為1、0或Null的整型數(shù)據(jù)類型,Bit列不抱括索引。1字節(jié)tinyInt介于0~255之間的整數(shù)數(shù)據(jù)1字節(jié)smallInt介于-2^15(-32768)與2^15-1(32767)之間的整數(shù)數(shù)據(jù)2字節(jié)Int介于-2^31(-2147483648)與2^31-1(-2147483647)之間的整數(shù)數(shù)據(jù)4字節(jié)BigInt一個8字節(jié)的整數(shù)數(shù)據(jù)8字節(jié)Binary[n]n字節(jié)的固定長度的二進制數(shù)據(jù),n是介于1~8000之間的一個值。當一列的數(shù)據(jù)輸入差別很小時,請使用Binary。N+2字節(jié)Varbinary[n]n字節(jié)可變長度的二進制數(shù)據(jù),n是介于1~8000之間的一個值。當一列的數(shù)據(jù)輸入差別很大時,請使用Varbinary。輸入數(shù)據(jù)的實際長度+2字節(jié)。實際長度可以是0字節(jié)Varbinary(max)這是SQLServer2005新增的類型,max最大可以到達2^31-1字節(jié),即。當長度超過8000字節(jié)時,請使用Varbianry(max)輸入數(shù)據(jù)的實際長度+2字節(jié)。實際長度可以是0字節(jié)2.數(shù)據(jù)類型2.數(shù)據(jù)類型Decimal[p,[s]]固定精度和刻度的數(shù)字。精度(p)指被保存數(shù)字的總位數(shù),刻度(s)指定數(shù)字的小數(shù)點后面的位數(shù)。根據(jù)精度不同情況,其大小可以在5~17字節(jié)之間Numeric[p,[s]]Numeric是Decimal的同義詞。在功能上等價于Decimal數(shù)據(jù)類型根據(jù)精度不同情況,其大小可以在5~17字節(jié)之間Real范圍在-3.40E+38到3.40E+38之間的浮點精度數(shù)字數(shù)據(jù)。4字節(jié)Float[(n)]-1.79E+308至

-3.23E-308、0以及3.23E-308至

1.79E+308取決于

n的值Money貨幣數(shù)據(jù)。介于-2^63(-922,337,203,685,477.5808)~2^63-1(922,337,203,685,477.5807)之間,精確到貨幣單位的萬分之一8字節(jié)Smallmoney貨幣數(shù)據(jù)。介于-214,748.3648到

214,748.36474字節(jié)數(shù)值類型注意啦!所有標有[n]、[(n)]或[p,[s]]表示要指定的字段數(shù)據(jù)長度,如果未在數(shù)據(jù)定義或變量聲明語句中指定n,則默認長度為1。如果在使用CAST和CONVERT函數(shù)時未指定n,則默認長度為30。2.數(shù)據(jù)類型2.數(shù)據(jù)類型字符類型下表列出了SQLServer字符類型及其存儲容量。數(shù)據(jù)類型描述存儲大小Char[(n)]固定長度,非

Unicode字符數(shù)據(jù),長度為

n個字節(jié)。n的取值范圍為

1至

8,000

n個字節(jié)Varchar[(n)]可變長度,非

Unicode字符數(shù)據(jù)。n的取值范圍為

1至

8,000。輸入數(shù)據(jù)的實際長度加

2個字節(jié)Varchar[(max)]可變長度,非

Unicode字符數(shù)據(jù),max指示最大存儲大小是

2^31-1個字節(jié)。輸入數(shù)據(jù)的實際長度加

2個字節(jié)Nchar[(n)]n個字符的固定長度的

Unicode字符數(shù)據(jù)。n值必須在

1到

4,000之間2×n字節(jié)

+2字節(jié)Nvarchar[(n)]可變長度

Unicode字符數(shù)據(jù)。n值在

1到

4,000之間2×n字節(jié)

+2字節(jié)Nvarchar[(max)]可變長度

Unicode字符數(shù)據(jù),max指示最大存儲大小為

2^31-1字節(jié)。2×n字節(jié)

+2字節(jié)2.數(shù)據(jù)類型2.數(shù)據(jù)類型文本和圖像類型下表列出了文本和圖像(image)類型及其存儲容量。數(shù)據(jù)類型描述存儲大小Text服務器代碼頁中長度可變的非

Unicode數(shù)據(jù),最大長度為

2^31-1(2,147,483,647)個字符。當服務器代碼頁使用雙字節(jié)字符時,存儲仍是

2,147,483,647字節(jié)。根據(jù)字符串,存儲大小可能小于

2,147,483,647字節(jié)。2^31-1字節(jié)Ntext長度可變的

Unicode數(shù)據(jù),最大長度為

2^30-1(1,073,741,823)個字符。輸入字符個數(shù)的兩倍(以字節(jié)為單位)2^30–1字節(jié)Image長度可變的二進制數(shù)據(jù),從

0到

2^31-1(2,147,483,647)個字節(jié)。2^31-1字節(jié)在開發(fā)新程序時,盡量避免使用表3-3中列出的數(shù)據(jù)類型,這些類型在微軟SQLServer未來的版本中將被刪除。改用Varbinary(max),Varchar(max),Nvarchar(max)數(shù)據(jù)類型。小提示:2.數(shù)據(jù)類型2.數(shù)據(jù)類型日期時間類型下表列出了日期時間類型。數(shù)據(jù)類型描述存儲大小Smalldatetime月1日到月6日,精度為1分鐘。兩個

2字節(jié)的整數(shù)Dateteime日期和時間數(shù)據(jù),從

1日到

31日,準確度為三百分之一秒或

3.33毫秒。值被圓整到

.000、.003或

.007毫秒增量。兩個4字節(jié)Timestamp公開數(shù)據(jù)庫中自動生成的唯一一個二進制數(shù)字的數(shù)據(jù)類型。Timestamp通常用作給表行加版本戳的機制。一個表只能有一個Timestamp類型字段。8字節(jié)2.數(shù)據(jù)類型2.數(shù)據(jù)類型其他特殊數(shù)據(jù)類型下表列出了其他特殊數(shù)據(jù)類型。數(shù)據(jù)類型描述存儲大小Sysname由特殊系統(tǒng)提供的、SQLServer用戶定義的數(shù)據(jù)類型。SQLServer將Sysname類型定義為Nvarchar(128),可以存儲128個Unicode字符(或256字節(jié))256字節(jié)Xml這是SQLServer2005新增的數(shù)據(jù)類型,用來存儲

Xml文檔和片段Xml數(shù)據(jù)類型實例的存儲表示形式不能超過2GBUniqueidentifier全局唯一標識符

(GUID)。可以通過NEWID()函數(shù)產(chǎn)生。16字節(jié)Sql_Variable用于存儲

SQLServer2005支持的各種數(shù)據(jù)類型(不包括

Text、Ntext、Image、Timestamp和

Sql_Variant)的值。最大長度可以是

8016個字節(jié)Table類似于使用臨時表,此類型包括列表和數(shù)據(jù)類型,可以用來定義本地變量或用于用戶定義的函數(shù)的返回值。隨著表定義的變化而變化3.空值3.空值Null值是一個未知值,將該值引用為Null。列值的為空性是指該列接受或拒絕Null值的能力。一列中的Null值通常表明對于一個特殊的數(shù)據(jù)行,該列中沒有輸入項,因為該值既不為空也不為0;其真實的值是未知的——因此,沒有相等的兩個值。一般來說,都該避免使用Null值。因為對這些值的更新或查詢,以及對有這些值的列的一些選項的設置都會更加復雜,例如主鍵和Identity屬性都不能在為空性列中使用。知識鏈接如果用戶需要的信息仍然不可用,則可能需要為空列,例如,客戶信息的初始化,有些信息在初始化時可能未知,需要以后補充,這些需要以后補充的信息字段可以設為Null值。4.添加Identity列4.添加Identity列在創(chuàng)建表時,可以通過向列定義中添加Identity屬性來將某一列指定為標識列。創(chuàng)建帶有Identity屬性的列時,SQLServer將根據(jù)種子值和增量值自動為該列生成一個行值,默認情況下不允許手工為Identity列插入行值,除非將標識列的IDENTITY_INSERT屬性設置為ON。種子(seed)值是插入到表中的第一行的標識值。增量值(Increment)是SQLServer為了連續(xù)插入而遞增標識值的數(shù)量。當每次插入行時,SQLServer都將為該行的標識列指派一個當前的標識值。被插入的下一行收到這個標識值,它是一個比當前最大標識值更大的增量。這樣,每個被插入的行都將收到一個唯一的標識符。為了地唯一標識某一行,通常都將標識列用作表中的主鍵約束。

創(chuàng)建數(shù)據(jù)庫表任務實施小王是某學校的計算機老師,目前接到校方通知,為了加強對學生的管理,小王需要統(tǒng)計本校在校學生人數(shù)及學生的相關信息。任務:創(chuàng)建數(shù)據(jù)庫表任務分析:理解牢記!因為SQLServer中,讀者可以通過創(chuàng)建數(shù)據(jù)庫表來進行數(shù)據(jù)的統(tǒng)計與整理,并有不同的數(shù)據(jù)庫類型可供選擇。因此,小王決定通過建立數(shù)據(jù)庫表來進行統(tǒng)計。任務:創(chuàng)建數(shù)據(jù)庫表創(chuàng)建數(shù)據(jù)庫表任務實施

1)打開SQLServerManagementStudio并連接到數(shù)據(jù)庫服務器,在“對象資源管理器”中展開“數(shù)據(jù)庫”,接著展開“數(shù)據(jù)庫”/“DataCollationSys”節(jié)點,右鍵單擊表文件夾。創(chuàng)建表2)在彈出式菜單中執(zhí)行”新建表(N)…”命令,將出現(xiàn)下圖所示的界面。添加表列3)添加完表所需的所有字段后,單擊”保存”按鈕,將彈出下圖所示的保存表界面,在“輸入表名稱”編輯框中輸入表的名稱后單擊”確定”按鈕即可。保存表4)在創(chuàng)建表的時候,可以為表指定主鍵。設置主鍵5)在步驟二的界面中,在“列名”列中輸入AreaID,“數(shù)據(jù)類型”列中選擇int數(shù)據(jù)類型,去掉“允許空”列中“√”,在“列屬性”中,展開“標識規(guī)范”,設置“(是標識)”屬性值為“是”,“標識增量”屬性為“1”(缺省值為1),標識種子屬性為“1”(缺省值為1)。同樣地,增加列Area,分別指定列名“Area”,數(shù)據(jù)類型varchar(20),允許空。將字段AreaID設置為主鍵,完成后保存表名為Area_Tbl。表Area_Tbl的結構如圖所示。保存表6)可以采用編碼的方式,使用T-SQL來創(chuàng)建表。創(chuàng)建表的語法為:CREATETABLE

[database_name.[owner].|owner.]table_name

({<column_definition>

|column_nameAScomputed_column_expression

|<table_constraint>::=[CONSTRAINTconstraint_name]}

|[{PRIMARYKEY|UNIQUE}[,...n]

)

[ON{filegroup|DEFAULT}]<column_definition>::={column_name

data_type}

[COLLATE<collation_name>]

[[DEFAULTconstant_expression]

|[IDENTITY[(seed,

increment)[NOTFORREPLICATION]]]

]

[ROWGUIDCOL]

[<column_constraint>][...n]修改和刪除數(shù)據(jù)庫表任務二:修改和刪除數(shù)據(jù)庫表準備知識修改、刪除數(shù)據(jù)庫表修改、刪除數(shù)據(jù)庫表修改、刪除數(shù)據(jù)庫表修改數(shù)據(jù)庫表涉及的內(nèi)容包括修改表名、字段名、增加或刪除字段以及修改表字段的屬性等。修改、刪除數(shù)據(jù)庫表任務實施小李是某酒店的大堂經(jīng)理,為了能夠統(tǒng)一規(guī)劃酒店所承辦的各種宴會以及宴會的類型、時間、準備工作等事項,小李需要確認酒店的數(shù)據(jù)庫表。任務:修改、刪除數(shù)據(jù)庫表任務分析:理解牢記!因為在創(chuàng)建了數(shù)據(jù)庫表以后,有可能根據(jù)業(yè)務系統(tǒng)和存儲數(shù)據(jù)內(nèi)容的變化,對表做相應的修改。因此,小李決定根據(jù)實際情況對數(shù)據(jù)庫表作相應的修改或刪除。任務:修改、刪除數(shù)據(jù)庫表修改、刪除數(shù)據(jù)庫表任務實施

1)修改表名首先來看看通過SQLServerManagementStudio修改表名。打開SQLServerManagementStudio并連接到數(shù)據(jù)庫服務器,在“對象資源管理器”中展開“數(shù)據(jù)庫”節(jié)點,接著展開數(shù)據(jù)庫“DataCollationSys”節(jié)點,展開“表”文件夾,右鍵單擊要更改名字的表,單擊彈出菜單中的”重命名”菜單,如圖1-8所示。然后輸入新的表名,這樣就完成了表名的修改。修改表名知識鏈接修改表名將引起使用該表的視圖、存儲過程或函數(shù)產(chǎn)生“找不到對象”的錯誤,因此在更改表名前,必須確定是否有視圖、存儲過程或函數(shù)引用了該表。如果有,而且一定要更改該表名,要記得更改引用該表的視圖、存儲過程或函數(shù)中該表表名為對應的新表的表名。2)設置字段屬性打開SQLServerManagementStudio并連接到數(shù)據(jù)庫服務器,在“對象資源管理器”中展開“數(shù)據(jù)庫”文件夾,接著展開“數(shù)據(jù)庫”/“DataCollationSys”節(jié)點,展開“表”文件夾,右鍵單擊要更改名字的表Area_Tbl,執(zhí)行”修改”命令。修改表字段知識鏈接同修改表名一樣,修改表字段類型也會影響使用該字段的視圖、存儲過程或函數(shù)。因此在修改了字段名后,別忘了將引用該字段的視圖、存儲過程或函數(shù)中相應的字段名改成新的字段名。3)添加表列可以在SQLServerManagementStudio中連接數(shù)據(jù)庫服務后,依次展開“數(shù)據(jù)庫”文件夾、你要添加列的表所屬的數(shù)據(jù)庫(這里是DataCollationSys數(shù)據(jù)庫)、“表”文件夾、你要修改的表(這里是Area_Tbl表)、“列”文件夾,右鍵單擊“列”文件夾,在彈出菜單中執(zhí)行”新建列”命令,在該界面中進行添加表列。新建列4)刪除表列打開SQLServerManagementStudio,連接數(shù)據(jù)庫服務,依次展開“數(shù)據(jù)庫”文件夾、所要刪除列的表所屬的數(shù)據(jù)庫(這里是DataCollationSys數(shù)據(jù)庫)、“表”文件夾、所要修改的表(這里是Area_Tbl表)、“列”文件夾,右鍵單擊要刪除的字段,在彈出菜單中執(zhí)行”刪除”命令,在接著出現(xiàn)的界面中單擊”確認”按鈕刪除表列。刪除表列也可以在下圖所示的界面中,選中要刪除的列,右鍵單擊該列,在彈出的菜單中執(zhí)行”刪除列”命令刪除表列。在表設計界面中刪除列需要注意的是刪除列后,列中的數(shù)據(jù)內(nèi)容也隨之一起被刪除。另外,象修改表字段一樣,不是所有的字段都可以刪除。拓展提高:創(chuàng)建或刪除主鍵和外鍵任務三:創(chuàng)建或刪除主鍵和外鍵準備知識認識主鍵和外鍵認識主鍵和外鍵認識主鍵和外鍵主鍵是表中唯一標識一行的約束,主鍵通常定義在一列中,有時也定義在幾列中,通過幾列組合在一起唯一標識一行,通過主鍵可強制表的實體完整性,即確保數(shù)據(jù)庫中所代表的任何事物都不存在重復的數(shù)據(jù),每一個表只能有一個主鍵約束,而且主鍵不接受空值。知識鏈接由于主鍵約束確保唯一數(shù)據(jù),所以經(jīng)常用來定義標識列。所謂標識列,指表中已指派了標識屬性的列。標識屬性生成唯一數(shù)字。認識主鍵和外鍵認識主鍵和外鍵外鍵是用于建立和加強兩個表數(shù)據(jù)之間的鏈接的一列或多列。外鍵一般建立在一列上,有時也通過幾列組合起來建立外鍵,通過將一個表中的主鍵值的一列或多列添加到另一個表,可以創(chuàng)建兩個表之間的鏈接,這個列就成為第二個表的外鍵。外鍵約束并不僅僅只可以與另一個表的主鍵約束相鏈接,它還可以定義為引用另一個表的唯一約束。外鍵約束不允許空值,但是,如果任何組合外鍵的列包含空值,則跳過外鍵約束的校驗。認識主鍵和外鍵認識主鍵和外鍵下圖所示的表Area_Tbl和Province_Tbl。表Province_Tbl中AreaID是表Area_Tbl的主鍵,把AreaID字段加入表Province_Tbl中,那么在表Province_Tbl中AreaId字段就是外鍵,表Area_Tbl和Province_Tbl通過AreaId字段關聯(lián)。主鍵和外鍵關聯(lián)示例盡管外鍵的主要目的是控制存儲在外鍵表中的數(shù)據(jù),但它還可以控制對主表數(shù)據(jù)的修改。拓展提高:創(chuàng)建或刪除主鍵和外鍵任務實施小張是某學校高二年級的年級主任,期中考試過后,小張創(chuàng)建了數(shù)據(jù)庫表來統(tǒng)計學生的考試成績。小張想要根據(jù)學生成績的數(shù)據(jù)庫表來對全校學生進行排名。任務:創(chuàng)建或刪除主鍵和外鍵任務分析:理解牢記!由于在SQLServer的關系數(shù)據(jù)庫中,表與表間通過關系進行關聯(lián),最重要的關系就是主鍵和外鍵。因此,小張決定通過創(chuàng)建或刪除主鍵和外鍵來完成這一任務。任務:創(chuàng)建或刪除主鍵和外鍵創(chuàng)建或刪除主鍵和外鍵任務實施

(1)創(chuàng)建表主鍵和外鍵

1)打開SQLServerManagementStudio,建立數(shù)據(jù)庫鏈接。依次展開“數(shù)據(jù)庫”文件夾、你要添加主鍵和外鍵的表所屬的數(shù)據(jù)庫、“表”文件夾,如果在新建表的同時創(chuàng)建主鍵和外鍵,右鍵執(zhí)行”新建表”命令,在出現(xiàn)的界面中,右鍵單擊選擇作為主鍵或外鍵的列,在彈出菜單中執(zhí)行”設置主鍵”命令。創(chuàng)建表主鍵2)創(chuàng)建外鍵的過程稍微要復雜一些,在上圖所示的界面中,執(zhí)行”關系”命令,在出現(xiàn)的界面中單擊”添加”按鈕添加關系。外鍵關系3)在上圖中,選擇新添加的關系,在右邊的關系屬性中,單擊“表和列規(guī)范”編輯框旁的

按鈕,出現(xiàn)下圖所示界面。表和列規(guī)范在“主鍵表”下拉框中選擇主鍵所在的表,例如Area_Tbl,當鼠標光標移到下面的編輯框中時,將出現(xiàn)一個下拉列表框,列出所選主鍵表中的所有字段,選擇主鍵,例如AreaID,然后將鼠標光標移動到右邊“外鍵表”下面的編輯框中,在出現(xiàn)的下拉列表框中選擇相應的字段,例如AreaID,單擊”確定”按鈕,這樣,外鍵表中的選擇字段就成為外鍵,外鍵就這樣被創(chuàng)建。4)通過修改表來設置表的主鍵,操作方式和創(chuàng)建表時創(chuàng)建主鍵是一樣。打開SQLServerManagementStudio,建立數(shù)據(jù)庫鏈接。依次展開“數(shù)據(jù)庫”文件夾、你要創(chuàng)建主鍵和外鍵的表所屬的數(shù)據(jù)庫(這里是DataCollationSys數(shù)據(jù)庫)、“表”文件夾。(2)刪除主鍵和外鍵1)在SQLServerManagementStudio中連到數(shù)據(jù)庫服務器,在“對象資源管理器”中展開“數(shù)據(jù)庫”文件夾,展開”數(shù)據(jù)庫”/”DataCollationSys”/”表”文件夾,右鍵單擊要刪除主鍵或外鍵的表Area_Tbl,執(zhí)行”修改”命令。修改表

2)在出現(xiàn)的界面中用右鍵單擊主鍵所在的字段,在彈出式菜單中執(zhí)行”移除主鍵”命令,然后保存對表的修改,這樣主鍵就從表中刪除了。刪除主鍵

3)在SQLServerManagementStudio中刪除外鍵約束再下圖所示界面中選中要刪除的外鍵約束后,單擊”刪除”按鈕刪除外鍵約束。刪除外鍵約束重點難點項目一創(chuàng)建和維護數(shù)據(jù)庫重點難點創(chuàng)建數(shù)據(jù)庫創(chuàng)建、刪除主鍵和外鍵重點難點

項目二了解Transact-SQL程序設計基礎本項目介紹Transact-SQL常用語句,講解如何使用Transaction-SQL(T-SQL)SELECT語句檢索數(shù)據(jù),使用UPDATE語句更新數(shù)據(jù),使用INSERT語句插入數(shù)據(jù),以及Pivot、UNPivot、Row_Number、DENSE_Rank、Rank、等SQLServer2008中新增的T-SQL語句的用途和用法。目錄

任務利用SQL語句進行數(shù)據(jù)查詢利用SQL語句進行數(shù)據(jù)查詢?nèi)蝿眨豪肧QL語句進行數(shù)據(jù)查詢準備知識常用的SQLServer語句常用的SQL語句介紹使用SQLServer2008中新增函數(shù)和語句常用的SQL語句1.常用的SQLServer語句

SQL是結構化查詢語言的縮寫,是訪問數(shù)據(jù)庫的標準語言。標準化的數(shù)據(jù)庫系統(tǒng)都對SQL語言提供支持,這給數(shù)據(jù)庫應用程序開發(fā)人員帶來了很大的方便,無論后臺數(shù)據(jù)庫是SQLServer、Oracle,還是IBMDB2,甚至是小型數(shù)據(jù)庫Access,都可以使用標準的SQL語句對它進行操作。(1)Select語句SELECT語句主要用于從數(shù)據(jù)庫中檢索數(shù)據(jù),同時它也可以用于向局部變量賦值或者調(diào)用一個函數(shù)。SELECT語句既可以簡單,也可以復雜,但最好使用簡單的語句,也就是說能達到同樣目的,選擇同樣數(shù)據(jù)時,盡量使SELECT語句簡單,在檢索你需要的結果時,要盡量簡化你的SELECT語句。在使用SELECT語句檢索數(shù)據(jù)時,你可以使用過濾條件過濾掉你不需要的數(shù)據(jù),同時,在檢索數(shù)據(jù)時,也應該考慮檢索數(shù)據(jù)的速度,特別是從數(shù)據(jù)量很大的表中檢索數(shù)據(jù)。一般可以在WHERE子句中盡量使用有索引的列以加速數(shù)據(jù)檢索的速度。小提示:常用的SQL語句1.常用的SQLServer語句SELECT語句的語法包含幾個子句,大多數(shù)子句都是可選的。一個SELECT語句至少要包括一個SELECT語句和一個FROM子句。這兩個子句識別檢索哪些列或者列中的數(shù)據(jù),以及分別從哪些表中檢索數(shù)據(jù)。SELECT語句的語法如下:SELECTselect_list

[INTOnew_table]

FROMtable_source

[WHEREsearch_condition]

[GROUPBYgroup_by_expression]

[HAVINGsearch_condition]

[ORDERBYorder_expression[ASC|DESC]]常用的SQL語句1.常用的SQLServer語句1)Where語句2)DISTINCT語句3)ORDERBY語句對結果排序4)使用GROUPBY語句對查詢結果分組5)使用HAVING語句對分組結果進行過濾6)使用JOIN實現(xiàn)多表查詢7)使用UNION合并多個結果集常用的SQL語句1.常用的SQLServer語句(2)INSERT語句INSERT語句的功能是向表中插入記錄,它的基本語法結構如下:INSERTINTO表名

(字段列表)VALUES(字段值列表)字段列表和字段值列表都使用逗號分隔,而且兩個列表中值的數(shù)量和數(shù)據(jù)類型必須對應。如果在INSERT語句中指定了表中所有記錄的值,則字段列表可以省略。例如,執(zhí)行下面的語句可以在表Users中插入一個用戶名為tester的記錄。INSERTINTOUsers(UserName,UserPwd)VALUES('tester','111111')常用的SQL語句1.常用的SQLServer語句運行后再查看表Users的內(nèi)容,結果如圖所示。查看新插入的數(shù)據(jù)常用的SQL語句1.常用的SQLServer語句(3)UPDATE語句UPDATE語句的功能是更新表中指定記錄的指定字段值,它的基本語法結構如下:UPDATE表名

SET字段名1=值1,字段名2=值2WHERE更新條件知識鏈接在一個UPDATE語句中可以同時更新多個字段的值,但是字段名不能重復。為了指定更新記錄的條件,UPDATE語句中通常使用WHERE子句。常用的SQL語句1.常用的SQLServer語句例如,執(zhí)行下面的語句可以在表Users中將用戶tester的密碼更新為123456。INSERTINTOUsers(UserName,UserPwd)VALUES('tester','111111')運行后再查看表Users的內(nèi)容,結果如圖所示。查看新插入的數(shù)據(jù)2.常用的SQL語句介紹2.常用的SQL語句介紹更新數(shù)據(jù)包括修改、刪除和插入新的數(shù)據(jù),其中修改和刪除數(shù)據(jù)既可以整表更新或刪除,也可以帶條件進行更新或刪除指定條件下的數(shù)據(jù)。更新數(shù)據(jù)的T-SQL基本語法如下:UPDATEtable_nameSETcolumn_name=expression

貴一張[,…n][FROMtable_name][WHEREsearch_condition]2.常用的SQL語句介紹2.常用的SQL語句介紹其中相關的參數(shù)說明如下:UPDATE:該關鍵字表示要更新數(shù)據(jù);

table_name:是要更新數(shù)據(jù)的表。SET:該關鍵字指定要更新哪些字段的數(shù)據(jù);coloumn_name:需要更新數(shù)據(jù)的列。Expression:是用于更新coloumn_name指定列值的表達式,expression既可以是常量、變量也可以是來自其它由FROMtable_name子句中指定的table_name表中的字段,甚至可以是一個計算表達式。WHERE:該子句指定要更新哪些行的數(shù)據(jù),這些行必須符合search_condition中指定的條件。2.常用的SQL語句介紹2.常用的SQL語句介紹下面介紹各種數(shù)據(jù)更新的方法。(1)在指定條件下更新指定字段的值通過在WHERE子句中指定搜索條件,可以更新指定字段的值。例如我們要更新表Sales_Tbl中店2-23305T在2006-07-12這天的銷量Quantity。在更新數(shù)據(jù)前,先用下面的查詢語句瀏覽一下2006-07-12這天店2-23305T的銷量:SELECTQuantityFROMSales_TblWHEREStoreId='2-23305T' ANDSoldDate>='2006-07-12' ANDSoldDate<'2006-07-13'運行結果如下:Quantity

12.常用的SQL語句介紹2.常用的SQL語句介紹(2)帶子查詢的修改語句子查詢可以嵌套在

UPDATE、DELETE和

INSERT語句以及

SELECT語句中。這一節(jié)看看子查詢?nèi)绾螒迷赨PDATE、DELETE和

INSERT這些修改數(shù)據(jù)的修改語句中。(3)PIVOT和UNPIVOT的用法微軟SQLServer2008引入了新的SQL操作語句PIVOT和UNPIVOT。在以前的SQLServer版本中,如果要產(chǎn)生交叉報表(CrossReport),我們采用CASE語句和聚合函數(shù),但是在SQLServer2008中,要到達同樣的效果,只需使用PIVOT和UNPIVOT操作語句即可。2.常用的SQL語句介紹2.常用的SQL語句介紹(4)Top語句的用法Top語句最基本的用法是限制返回到結果集中的行數(shù)。其語法如下:TOPn[PERCENT]其中n指定返回的行數(shù)。如果未指定

PERCENT,n就是返回的行數(shù)。如果指定了

PERCENT,n就是返回的結果集行的百分比。注意啦!如果一個SELECT語句既包含TOP又包含ORDERBY子句,那么返回的行將會從排序后的結果集中選擇。整個結果集按照指定的順序建立并返回排好序的結果集的前n行。3.使用新增函數(shù)和語句3.使用SQLServer2008中的新增函數(shù)和語句(1)使用新增函數(shù)1)Row_Number函數(shù)在先前版本的SQLServer中,要產(chǎn)生行號,需要借助于臨時表或子查詢,

SQLServer2008提供了這樣的產(chǎn)生行號的函數(shù),這就是Row_Number函數(shù)。Row_Number函數(shù)返回結果集分區(qū)內(nèi)行的序列號,每個分區(qū)的第一行從

1開始。其語法如下:ROW_NUMBER()

OVER([<partition_by_clause>]<order_by_clause>)3.使用新增函數(shù)和語句3.使用SQLServer2008中的新增函數(shù)和語句2)RNNK函數(shù)RANK函數(shù)返回結果集的分區(qū)內(nèi)指定字段的值的排名。指定字段的值的排名是相關行之前的排名數(shù)加一。其語法如下:RANK()

OVER([<partition_by_clause>]<order_by_clause>)3.使用新增函數(shù)和語句3.使用SQLServer2008中的新增函數(shù)和語句3)DENSE_RANK函數(shù)DENSE_RANK()函數(shù)也是一個排名統(tǒng)計函數(shù),它返回結果集分區(qū)中行的排名,在排名中沒有任何間斷。知識鏈接如果有兩個或多個行受同一個分區(qū)中排名的約束,則每個約束行將接收相同的排名。3.使用新增函數(shù)和語句3.使用SQLServer2008中的新增函數(shù)和語句4)NTILE函數(shù)NTILE函數(shù)用于計算數(shù)據(jù)分布的函數(shù),該函數(shù)將有序分區(qū)中的行分發(fā)到指定數(shù)目的組中。各個組有編號,編號從1開始。對于每一行,NTILE將返回此行所屬的組的編號。NTILE語法如下:NTILE(integer_expression)

OVER([<partition_by_clause>]<order_by_clause>)3.使用新增函數(shù)和語句3.使用SQLServer2008中的新增函數(shù)和語句5)OpenRowSet函數(shù)在SQLServer2008中,OpenRowSet函數(shù)也得到了加強,本節(jié)主要介紹OpenRowSet函數(shù)批量操作的功能。在介紹增強功能之前,簡單介紹一下OpenRowSet函數(shù)的功能和用法。OpenRowSet的功能等同于使用鏈接服務器,并且OpenRowSet是使用OLEDB連接并訪問遠程數(shù)據(jù)的一次性的臨時方法。可以在查詢的

FROM子句中像引用表名那樣引用

OPENROWSET函數(shù)。依據(jù)

OLEDB訪問接口的功能,還可以將

OPENROWSET函數(shù)引用為

INSERT、UPDATE或

DELETE語句的目標表。知識鏈接盡管查詢可能返回多個結果集,但OPENROWSET只返回第一個結果集。3.使用新增函數(shù)和語句3.使用SQLServer2008中的新增函數(shù)和語句(2)使用新增語句1)OUTPUT語句在SQLServer2000中,在往表中插入數(shù)據(jù)后,若要獲得新增的標識值,則需要使用系統(tǒng)變量@@IDENTITY或函數(shù)SCOPE_IDENTITY和

IDENT_CURRENT,在SQLServer2008中,新增了OUTPUT語句,用來在向表中插入數(shù)據(jù)、更新數(shù)據(jù)或刪除數(shù)據(jù)后立即返回真實的數(shù)據(jù)。3.使用新增函數(shù)和語句3.使用SQLServer2008中的新增函數(shù)和語句應用程序需要返回新增的標識列值、計算列值或由缺省約束產(chǎn)生的缺省值時,可以采用OUTPUT語句方便地實現(xiàn)。OUTPUT語法如下:OUTPUT{column_name|scalar_expression}INTO{@table_variable|output_table}[(column_list)]或:OUTPUT{column_name|scalar_expression}其中column_name可以是下面幾種值:{DELETED|INSERTED|from_table_name}.{*|column_name}如果要將OUTPUT返回的值保存到表變量或輸出表中,則使用INTO關鍵字,如果不需要保存這些返回值,則不需要關鍵字INTO關鍵字。3.使用新增函數(shù)和語句3.使用SQLServer2008中的新增函數(shù)和語句

2)ExecuteAS語句SQLServer2008新增了ExecuteAS語句,用于設置會話的執(zhí)行上下文。在默認情況下,會話在用戶登錄時開始,在用戶注銷時結束。會話過程中的所有操作都受限于對該用戶進行的權限檢查。當運行

ExecuteAS語句時,會話的執(zhí)行上下文將切換到指定的登錄名或用戶名。切換上下文之后,SQLServer2008數(shù)據(jù)庫系統(tǒng)將根據(jù)登錄名和用戶安全令牌檢查該帳戶(而非調(diào)用

ExecuteAS語句的用戶)的權限。3.使用新增函數(shù)和語句3.使用SQLServer2008中的新增函數(shù)和語句實際上,SQLServer2008數(shù)據(jù)庫系統(tǒng)在會話或模塊的執(zhí)行期間模擬了用戶或登錄帳戶,或顯式恢復了上下文切換。ExecuteAS語句的語法如下:{Exec|Execute}AS{Login|User}=‘Name’[WITH{NOREVERT|COOKIEINTO@varbinary_variable}]|Caller其中Login指定要模擬執(zhí)行上下文的是一個登錄,模擬范圍處于服務器級別。User指定要模擬執(zhí)行的上下文是當前數(shù)據(jù)庫中的用戶,模擬范圍只限于當前數(shù)據(jù)庫。Name為有效的用戶或登錄名,Name必須是Sysadmin固定服務器角色成員,或者分別作為sys.database_principals或sys.server_Principals中的主體而存在。Name可以被指定為局部變量。Name必須是單獨帳戶,而不能是組、角色、證書、密鑰或內(nèi)置帳戶。拓展提高:在開發(fā)新程序時,盡量避免使用表3-3中列出的數(shù)據(jù)類型,這些類型在微軟SQLServer未來的版本中將被刪除。改用Varbinary(max),Varchar(max),Nvarchar(max)數(shù)據(jù)類型。小提示:利用SQL語句進行數(shù)據(jù)查詢?nèi)蝿諏嵤┬埵悄炒笮唾徫锍械匿N售經(jīng)理,為了了解超市各物品的銷售情況,及時對超市物品進行上新、價格調(diào)整等,小張需要統(tǒng)計超市物品的銷售情況。任務:利用SQL語句進行數(shù)據(jù)查詢?nèi)蝿辗治觯豪斫饫斡洠∮捎赟QLServer語句具有數(shù)據(jù)查詢的功能,讀者可以根據(jù)SQLServer語句進行數(shù)據(jù)的查詢與整理,因此,小張決定使用SQLServer語句的相關知識來完成超市銷售情況的統(tǒng)計工作。任務:利用SQL語句進行數(shù)據(jù)查詢利用SQL語句進行數(shù)據(jù)查詢?nèi)蝿諏嵤?/p>

假設現(xiàn)有下表所示的銷售數(shù)據(jù),共有11條記錄。Sales_Tbl樣例數(shù)據(jù)要從Sales_Tbl表檢索StoreId,ProductModel和Quantity字段的值,SQL語句如下:SELECTStoreId,ProductModel,QuantityFROMSales_Tbl在查詢分析器中執(zhí)行該SQL語句,結果如下表所示。選擇指定列查詢結果StpreIdProductModelQuantity2-23305Tg1030cn12-23305Tlj102012-O3B-4983u1560cn42-O3B-5372u1560cn152-O3B-4283Photosmart783822-O3B-4562Officejet425512-O3B-4562LJ5100se22-1XQDXCg1030cs12-1XQDXCpsc140612-O3B-7304U1560cn32-1UDSCF245printer34重點難點項目二了解Transact-SQL程序設計基礎重點難點掌握SQL語句熟練使用SQL語句重點難點

項目三設計收視分析問卷調(diào)查系統(tǒng)本項目主要講解了如何利用SQLServer2008的相關知識來建立收視分析問卷調(diào)查系統(tǒng),并利用SQLServer的相關知識對該系統(tǒng)的準確性進行驗證。目錄

任務設計并驗證收視分析問卷調(diào)查系統(tǒng)設計并驗證問卷調(diào)查系統(tǒng)任務:設計并驗證收視分析問卷調(diào)查系統(tǒng)準備知識課程設計的目的和意義2.系統(tǒng)分析與設計1.課程設計的目的和意義1.課程設計的目的和意義今天走在大街小巷幾乎都可以聽到“收視率”這個名稱。某某節(jié)目的收視率比較高,某某頻道的收視率比較高等。什么是收視率呢?它是傳媒行業(yè)的一個術語,表示某個媒介在受眾中的接受程度。對于我們這里要講的內(nèi)容來說,收視率就是反應大家喜歡看哪個電視節(jié)目,愛看哪個電視節(jié)目。收視率是一種能用量化來反應這種喜歡看、愛看程度的高低的統(tǒng)計數(shù)據(jù)。統(tǒng)計哪個節(jié)目有多少人看,看了多長時間,對于現(xiàn)在收視分析公司有很多手段。小提示:2.系統(tǒng)分析與設計2.系統(tǒng)分析與設計收視分析問卷調(diào)查就是采用科學的抽樣方法,對受眾進行采訪,記錄受眾每天都看了哪些頻道,看了多長時間。(1)功能描述本系統(tǒng)共分為新建電視臺、新建頻道、登記調(diào)查問卷和登記節(jié)目單四大模塊,各模塊分別實現(xiàn)了相應的功能,詳細的功能設計如下:1)新建電視臺模塊實現(xiàn)了用戶登記電視臺的功能,新用戶使用本系統(tǒng)的時候沒有電視臺,需要他首先新建需要的電視臺,然后才可以順利的進行其他功能的使用。2.系統(tǒng)分析與設計2.系統(tǒng)分析與設計2)新建頻道模塊實現(xiàn)了用戶登記頻道的功能,用戶新建了電視臺以后,要給所建的電視臺新建幾個頻道,一個電視臺可能有多個頻道。用戶可以依次進行創(chuàng)建。3)登記調(diào)查問卷實現(xiàn)了用戶調(diào)查問卷的錄入登記功能,用戶每天都要對調(diào)查問卷進行登記工作,頁面記錄了從早上6點到第二天的凌晨2點,每15分鐘一個間隔,并且提供了選擇頻道的下拉列表供用戶進行選擇。4)登記節(jié)目單實現(xiàn)了用戶登記錄入節(jié)目單的功能,用戶每天要進行每個頻道節(jié)目單的錄入登記工作,頁面提供了選擇頻道的下拉菜單、開始時間、結束時間和節(jié)目名稱輸入框組。知識鏈接在通過采集每個頻道的節(jié)目情況進行收費分析,計算出每個頻道,每個節(jié)目的收視率。我們這里不設計到收視率的計算,而是設計如何進行受眾采訪和信息搜集的一套系統(tǒng)。2.系統(tǒng)分析與設計2.系統(tǒng)分析與設計(2)功能模塊設計根據(jù)功能描述,收視率調(diào)查問卷登記系統(tǒng)可以分為4個大模塊,每一個模塊都提供了相應的功能。收視率調(diào)查問卷登記系統(tǒng)詳細的功能模塊圖如圖所示。系統(tǒng)功能詳細設計圖設計并驗證問卷調(diào)查系統(tǒng)任務實施小張是某電視臺的節(jié)目主持人,目前接到上級任務,小張需要針對本臺熱播的電視劇在網(wǎng)上做一個問卷調(diào)查,了解電視劇的收視情況。任務:設計并驗證收視分析問卷調(diào)查系統(tǒng)任務分析:理解牢記!由于SQLServer數(shù)據(jù)系統(tǒng)中,用戶可以進行系統(tǒng)程序的設計進行問卷調(diào)查,方便簡單,因此,小張決定設計一個與收視情況相關的調(diào)查系統(tǒng),來提高工作效率。任務:設計并驗證收視分析問卷調(diào)查系統(tǒng)設計并驗證問卷調(diào)查系統(tǒng)任務實施

1.設計數(shù)據(jù)庫數(shù)據(jù)庫設計是構建任何數(shù)據(jù)庫驅(qū)動的

Web站點的第一步。一個成功的管理系統(tǒng)是由:50%的業(yè)務+50%的軟件所組成,而

50%的成功軟件又有25%的數(shù)據(jù)庫

+25%的程序所組成,數(shù)據(jù)庫設計的好壞是一個關鍵。如果把企業(yè)的數(shù)據(jù)比做生命所必需的血液,那么數(shù)據(jù)庫的設計就是信息系統(tǒng)開發(fā)和建設中最重要的一部分。(1)數(shù)據(jù)庫需求設計通過對系統(tǒng)功能的分析可知,收視率調(diào)查問卷登記系統(tǒng)需要包含以下數(shù)據(jù)庫信息:1)電視臺信息,包括電視臺編號和電視臺名稱等信息。2)頻道信息,包括頻道編號、頻道名稱、對應的電視臺編號等信息。3)調(diào)查記錄信息,包括調(diào)查記錄ID、開始時間、結束時間、頻道編號、被調(diào)查者編號等信息。4)節(jié)目單信息,包括節(jié)目單ID、頻道編號、開始時間、結束時間和節(jié)目名稱等信息。5)被調(diào)查者信息,包括被調(diào)查者ID、性別、年齡和學歷等信息。(2)數(shù)據(jù)庫表的設計1)電視臺信息表(T_TVstation)電視臺信息表包含電視臺的基本信息,在以后的編碼中新增頻道模塊用到這個表,表的結構如下。字段名稱數(shù)據(jù)類型數(shù)據(jù)類型大小可否為空TVstationIdint4不能為空TVstationNameVarchar30不能為空電視臺信息表2)頻道信息表(T_Channel)頻道信息表包含了產(chǎn)品和顧客的相關信息,在處理銷售的相關功能模塊時都需要用到此表,此表結構如下。頻道信息表字段名稱數(shù)據(jù)類型數(shù)據(jù)類型大小可否為空ChannelIdint4不能為空ChannelNameVarchar30不能為空TVstationIdint4不能為空3)調(diào)查記錄信息表(T_Diagnoses)調(diào)查記錄信息主要是用于身份的驗證,使合法用戶對數(shù)據(jù)庫進行操作。表的結構如表下。調(diào)查記錄信息表字段名稱數(shù)據(jù)類型數(shù)據(jù)類型大小可否為空DiagnosesIdint4不能為空BeginTimedatetime8不能為空EndTimedatetime8不能為空ChannelIdint4不能為空InformantIdint4可為空4)節(jié)目單信息表(T_Playbill)節(jié)目單信息表主要是描述產(chǎn)品的相關參數(shù),與其它表一起運用到銷售功能模塊。表的結構如下。節(jié)目單信息表字段數(shù)據(jù)類型大小可否為空idint4不能為空ChannelIdint4不能為空BeginTimedatetime8不能為空EndTimedatetime8不能為空ProgramNameVarchar30不能為空5)被調(diào)查者信息表(T_Informant)被調(diào)查者信息表主要是記錄供應商的基本信息,便于在交易過程的進行聯(lián)系和識別產(chǎn)品,表的結構如下。被調(diào)查者信息表字段名稱數(shù)據(jù)類型數(shù)據(jù)類型大小可否為空InformantIdint4不能為空SexVarchar2可為空AgeVarchar2可為空DiplomaVarchar20可為空(3)數(shù)據(jù)庫表的實現(xiàn)創(chuàng)建以上數(shù)據(jù)表的SQL語句如下:--創(chuàng)建電視臺信息信息表CREATETABLE[dbo].[T_TVstation]( [TVstationId][int]IDENTITY(1,1)NOTNULL, [TVstationName][varchar](30)COLLATEChinese_PRC_CI_ASNOTNULL)ON[PRIMARY]GO--創(chuàng)建頻道信息表CREATETABLE[dbo].[T_Channel]( [ChannelId][int]IDENTITY(1,1)NOTNULL, [TVstationId][int]NOTNULL, [ChannelName][varchar](30)COLLATEChinese_PRC_CI_ASNOTNULL)ON[PRIMARY]GO

--創(chuàng)建調(diào)查記錄信息表CREATETABLE[dbo].[T_Diagnoses]( [DiagnosesId][int]IDENTITY(1,1)NOTNULL, [BeginTime][datetime]NOTNULL, [EndTime][datetime]NOTNULL, [ChannelId][int]NOTNULL, [InformantId][int]NULL)ON[PRIMARY]GO

--創(chuàng)建節(jié)目單信息表CREATETABLE[dbo].[T_Playbill]( [id][int]IDENTITY(1,1)NOTNULL, [ChannelId][int]NOTNULL, [BeginTime][datetime]NOTNULL, [EndTime][datetime]NOTNULL, [ProgramName][varchar](30)COLLATEChinese_PRC_CI_ASNOTNULL)ON[PRIMARY]GO--創(chuàng)建被調(diào)查者信息表CREATETABLE[dbo].[T_Informant]( [InformantId][int]IDENTITY(1,1)NOTNULL, [Sex][varchar](2)COLLATEChinese_PRC_CI_ASNULL, [Age][varchar](2)COLLATEChinese_PRC_CI_ASNULL, [Diploma][varchar](20)COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]GO運行查詢分析器,進入“連接到SQLserver登錄”頁面,登錄成功后,在頁面的編輯區(qū)域輸入上述SQL語句,單擊F5鍵,即可創(chuàng)建這些數(shù)據(jù)表,也可以使用本書已有的備份數(shù)據(jù)庫。小提示:設計系統(tǒng)界面(1)創(chuàng)建應用程序

1)主框架的設計設計步驟如下:①運行Dreamweaver,單擊“文件”|“新建”,然后出現(xiàn)下面的界面。創(chuàng)建系統(tǒng)主框架②選擇“動態(tài)頁”,選擇“JSP”,單擊“創(chuàng)建”按鈕,這樣一個jsp頁面就創(chuàng)建完成了。然后在Dreamweaver的快捷面板上選擇“布局”,然后選擇下圖所示的選項。設置系統(tǒng)框架結構2)左側菜單的設計菜單的功能主要是將對相關操作集中到一起給用戶選擇,在網(wǎng)頁中的菜單要給用戶美觀大方又實用的感覺。本系統(tǒng)的菜單效果圖如下所示:左側菜單設計3)Topframe區(qū)域的設計效果圖如下所示。系統(tǒng)主頁面Topframe設計(2)創(chuàng)建系統(tǒng)所需要的Java文件1)創(chuàng)建DB.java文件DB.java文件包含連接數(shù)據(jù)庫的方法和調(diào)用存儲過程(增加、刪除、修改、查詢)的方法。頁面直接通過這個文件來連接數(shù)據(jù)庫和調(diào)用存儲過程,來完成所需要的操作。整個系統(tǒng)的目錄結構如下:項目文件目錄結構2)創(chuàng)建Values.java文件(3)創(chuàng)建系統(tǒng)所需要的公共的文件1)創(chuàng)建common.jsp文件這個文件主要實現(xiàn)調(diào)用DB和Values文件和jsp頁面所需要的的一些java包。本系統(tǒng)的模塊都會用到這個文件。新建一個jsp頁面,然后將如下代碼拷貝到文件中。<%@pagesession="true"%><%@pageimport="com.tv.db.DB"%><%@pageimport="java.sql.*,java.util.*"%><%@pageimport="java.util.Date"%><jsp:useBeanid="db"scope="page"class="com.tv.db.DB"/><jsp:useBeanid="param"scope="page"class="com.tv.db.Values"/>2)創(chuàng)建message.jsp文件這是提示頁面,提示新增成功或失敗。具體實現(xiàn)方法為:新建一個jsp頁面,然后將如下代碼拷貝到文件中。3)創(chuàng)建Style.css文件這個文件是頁面的樣式文件,主要實現(xiàn)jsp頁面具有相同的頁面風格。本系統(tǒng)的模塊都會用到這個文件。實現(xiàn)方法是在Dreamweaver中新建css文件。(4)新增電視臺此模塊主要功能是實現(xiàn)增加電視臺功能。這是最基本的模塊,其他模塊都在它的基礎是才可以正常的使用。頁面的效果如圖。新增電視臺設計(5)新增頻道

此模塊主要功能是實現(xiàn)增加電視臺的頻道功能。在下拉列表中選擇電視臺,然后填寫頻道的名稱,單擊提交,就實現(xiàn)了頻道的添加,頁面的效果圖如圖。新增頻道界面設計知識鏈接用戶在下拉列表中選擇電視臺,然后填寫頻道的名稱,單擊提交,輸入的頻道就會保存的數(shù)據(jù)庫表中對應的電視臺的頻道。(6)登記調(diào)查問卷此模塊主要功能是實現(xiàn)登記收視信息的被調(diào)查者信息和調(diào)查問卷的內(nèi)容。收視信息視從早上的6點到第二天的凌晨2點,時間間隔是15分鐘,記錄被調(diào)查者一天的收視信息。填寫被調(diào)查者基本信息,在下拉列表中選擇性別,年齡和學歷可意選添。選擇被調(diào)查者收視信息,選擇相應時段被調(diào)查者收視信息,都為選添項。選擇完畢后,單擊提交,就實現(xiàn)了登記被調(diào)查者信息和調(diào)查問卷內(nèi)容的功能,頁面的效果設計如圖所示。登記調(diào)查問卷界面設計用戶填寫被調(diào)查者的信息和收視信息后,單擊提交,輸入的被調(diào)查者的信息和收視信息就會分別保存的數(shù)據(jù)庫相應的表中利用插入觸發(fā)器實現(xiàn)被調(diào)查者的Id插入到收視信息表中,實現(xiàn)了兩個表的對應關系。知識拓展:(7)登記節(jié)目單此模塊主要功能是實現(xiàn)登記頻道的節(jié)目單功能。在下拉列表中選擇相應的頻道,然后填寫開始時間、結束時間和節(jié)目名稱,單擊“提交”按鈕,就實現(xiàn)了節(jié)目單的添加,頁面的效果圖如圖所示。登記節(jié)目單用戶在下拉列表中選擇頻道,然后填寫開始時間,結束時間,節(jié)目名稱,不用把每一行的文本框都填寫完,每一行都為選添,單擊提交,輸入的信息就會保存到數(shù)據(jù)庫表中。要實現(xiàn)此功能,首先要編寫一個存儲過程,這個存儲過程實現(xiàn)向數(shù)據(jù)庫中添加節(jié)目單數(shù)據(jù)。1)實現(xiàn)向數(shù)據(jù)庫中添加節(jié)目單數(shù)據(jù)的存儲過程2)創(chuàng)建一個inputplaybill.jsp頁面。

3.驗證系統(tǒng)的運行結果(1)首先配置好jsp的運行環(huán)境,然后在瀏覽器中輸入系統(tǒng)的地址:http://localhost:8080/datainput進入系統(tǒng),首先進入系統(tǒng)的主界面,如圖所示。系統(tǒng)主界面(2)單擊左側的鏈接“新增電視臺”,進入新增電視臺頁面,在頁面的電視臺名稱文本框中輸入電視臺名稱“河北電視臺”,然后單擊提交按鈕,“河北電視臺”就會保存到數(shù)據(jù)庫中。新增電視臺界面成功后提示頁面如下:新增電視臺成功提示界面(3)單擊左側的鏈接“新增頻道”,進入新增頻道頁面,在頁面的選擇電視臺下拉列表中選擇“河北電視臺”,頻道名稱文本框中輸入頻道名稱“河北電視臺一套”,然后單擊提交按鈕,頻道“河北電視臺一套”就會保存到數(shù)據(jù)庫中。新增頻道成功提示界面(4)單擊左側的鏈接“登記調(diào)查問卷”,進入登記調(diào)查問卷頁面,在頁面上填寫如圖所示的信息后,單擊提交按鈕,被調(diào)查者信息和收視信息都會保存到數(shù)據(jù)庫中。登記調(diào)查問卷界面成功后提示頁面如圖所示。登記調(diào)查問卷提示成功界面(5)單擊左側的鏈接“登記節(jié)目單”,進入登記節(jié)目單頁面,在頁面的選擇頻道下拉列表中選擇“中央一”,然后輸入節(jié)目單的開始時間,結束時間,節(jié)目名稱,然后單擊提交按鈕,兩條節(jié)目單數(shù)據(jù)就會保存到數(shù)據(jù)庫中。登記節(jié)目單界面成功后提示頁面如圖所示。登記節(jié)目單成功提示界面重點難點項目三設計收視分析問卷調(diào)查系統(tǒng)重點難點課程設計的目的和意義設計調(diào)查系統(tǒng)重點難點

項目四設計學生信息學管理系統(tǒng)本項目主要講解了如何利用SQLServer的相關知識來設計學生的信息管理系統(tǒng),幫助讀者更好地使用SQLServer數(shù)據(jù)庫的相關知識。目錄

任務設計學生信息管理系統(tǒng)并進行驗證設計學生信息管理系統(tǒng)任務:設計學生信息管理系統(tǒng)準備知識課程設計的目的和意義2.系統(tǒng)分析與設計1.課程設計的目的和意義1.課程設計的目的和意義由于當前學校規(guī)模不斷的擴招,學生數(shù)量的不斷增加,學生信息量也成倍的增長。學生管理工作也成了學校各項管理工作的一個重要的部分。其管理水平的高低將直接影響到人才的培養(yǎng)質(zhì)量。面對龐大的信息量,如何有效地提高學生管理工作的效率是一個學校急需解決的問題。因此本項目討論如何開發(fā)適合學校需要的學生管理信息系統(tǒng),通過這樣的系統(tǒng),可以做到信息的規(guī)范管理,科學統(tǒng)計和快速查詢,并減少管理工作的工作量。學生信息管理系統(tǒng)就是對學生的信息進行管理。學生信息包括學生的基本信息、學生的學籍信息、學生的成績信息、學生的獎罰信息。小提示:1.課程設計的目的和意義1.課程設計的目的和意義學生的基本信息就是每年新生報到時,對每位新生建立的個人檔案,包括學生學號、姓名、性別、出生日期、所屬班級、籍貫、家庭信息等。學生的成績信息包括學生在校期間所有考試的成績。學生的獎罰信息是對學習出色學生的獎勵和對差學生處罰的信息。學生的學籍信息記錄學生因每年的學業(yè)修完對學籍信息進行變更的信息。學生信息還包括許多其他信息,比如學生在校期間,每年的體檢信息;每個月的補助信息等等,在這里不再詳細介紹。2.系統(tǒng)分析與設計2.系統(tǒng)分析與設計(1)功能描述1)學生信息管理包括新生入學個人檔案的建立和在校學生信息的查詢修改。新生檔案的建立包括對新生分配的院系信息、班級信息、入學日期、學號、姓名、性別、年齡等信息的登記。學生信息的查詢修改是指對學生信息的修改,由于新生登記時信息錯誤的登記,或者

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論