




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、數(shù) 據(jù) 庫 技 術(shù)實(shí)驗(yàn)指導(dǎo)書徐洪勝 齊心計(jì)算機(jī)技術(shù)實(shí)驗(yàn)中心目 錄實(shí)驗(yàn)一 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL25實(shí)驗(yàn)二 數(shù)據(jù)庫設(shè)計(jì)28實(shí)驗(yàn)三 數(shù)據(jù)庫應(yīng)用技術(shù)3224 數(shù)據(jù)庫技術(shù)實(shí)驗(yàn)指導(dǎo)書實(shí)驗(yàn)一 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL【實(shí)驗(yàn)?zāi)康摹吭诮o定的關(guān)系數(shù)據(jù)庫管理系統(tǒng)Microsoft SQL Server環(huán)境下,通過實(shí)驗(yàn)學(xué)生能夠:1、MS SQL SERVER認(rèn)識及其環(huán)境熟悉,了解T-SQL對標(biāo)準(zhǔn)SQL的擴(kuò)充。2、掌握T-SQL環(huán)境下數(shù)據(jù)定義包括數(shù)據(jù)庫、基本表、視圖、索引定義。3、掌握T-SQL環(huán)境下數(shù)據(jù)操縱包括數(shù)據(jù)插入、刪除、修改。4、掌握T-SQL環(huán)境下數(shù)據(jù)查詢及其各種變化。【實(shí)驗(yàn)性質(zhì)】驗(yàn)證性實(shí)驗(yàn)(學(xué)時數(shù):4H
2、)【實(shí)驗(yàn)導(dǎo)讀】在Microsoft SQL Server的Transact-SQL(簡稱T-SQL)環(huán)境下,一般包括數(shù)據(jù)定義語言(DDL)、數(shù)據(jù)操縱語言(DML)、數(shù)據(jù)控制語言(DCL)等。DDL包括定義數(shù)據(jù)庫(DataBase)、定義基本表(Table)、定義視圖(View)、定義索引(Index)等。DML包括插入(Insert)、刪除(Delete)、修改(Update)、查詢(Select),由于查詢使用的頻率及其重要性,將其單列出來。DCL可分為授權(quán)(Grant)與回收(Revoke)。下面給出基本語法,每個語句的詳細(xì)語法參見“聯(lián)機(jī)從書”的“Transact-SQL參考”。1、數(shù)據(jù)定
3、義語言(DDL)(1)定義數(shù)據(jù)庫(DataBase)CREATE DATABASE <數(shù)據(jù)庫名><數(shù)據(jù)庫名>命名規(guī)則遵從一般標(biāo)識符規(guī)則。在定義表及其它元素之前,必須將查詢分析器的當(dāng)前數(shù)據(jù)庫置為<數(shù)據(jù)庫名>。采用USE <數(shù)據(jù)庫名> 。(2)定義基本表(Table)CREATE TABLE <表名>()()給出每一列的說明包括列名、數(shù)據(jù)類型及長度,還給出相關(guān)列約束或表約束子句。<表名>、<列名>命名規(guī)則遵從一般標(biāo)識符規(guī)則。(3)定義視圖(View)CREATE VIEW <視圖名> AS <SE
4、LECT語句塊>視圖作為關(guān)系數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)外模式的基本單元,用于定義最終用戶(End-User)數(shù)據(jù)源。在視圖定義中可以采用復(fù)雜的SELECT語句。(4)定義索引(Index)CREATE INDEX <索引名>2、數(shù)據(jù)操縱語言(DML)插入(Insert)、刪除(Delete)、修改(Update)數(shù)據(jù)只針對單個關(guān)系。DML語句可能會造成數(shù)據(jù)不一致。在每條語句執(zhí)行之前,MS SQL Server會驗(yàn)證每條語句是否符合完整性要求包括實(shí)體完整性、參考完整性、用戶定義的完整性。(1)插入數(shù)據(jù)INSERT INTO <關(guān)系名> (column_list) VALUES(
5、data_values)數(shù)據(jù)values值與列列表要匹配個數(shù)與類型。以下類型的數(shù)據(jù)values值不用使用引號:整型數(shù)據(jù)類型(bit,int,smallint,tinyint)、貨幣數(shù)據(jù)類型(money,smallmoney)、數(shù)字?jǐn)?shù)據(jù)類型(decimal,numeric)、浮點(diǎn)類型數(shù)據(jù)(real,float)。對于以下數(shù)據(jù)類型就要對values值加單引號:字符數(shù)據(jù)類型(char,varchar,text)、復(fù)雜的日期/時間類型數(shù)據(jù)(datetime,smalldatetime)。<關(guān)系名>可以是表名或視圖名。INSERT語句還可以插入多行數(shù)據(jù)。(2)刪除數(shù)據(jù)DELETE FROM
6、table_name WHERE search_condition刪除符合條件的元組。(3)更新數(shù)據(jù)UPDATE table_name SET column_name = expression | DEFAULT | NULL ,.n FROM table_name ,.n WHERE search_condition刪除滿足條件的元組。3、數(shù)據(jù)查詢語言(SELECT)SELECT是SQL中使用最頻繁的語句,其變化形式繁多。其基本形式:SELECT query_expression | column_list|* FROM table_name_list|view_name_list WHER
7、E condition_expressionGROUP BY column_name_list HAVING condition_expressionORDER BY order_expression ASC | DESC 從數(shù)據(jù)庫中檢索行,并允許從一個或多個關(guān)系(包括表、視圖、查詢結(jié)果集)中選擇一個或多個行或列。常用的統(tǒng)計(jì)函數(shù):SUM()-返回一個數(shù)字或計(jì)算列的總和AVG()-對一個數(shù)字列或計(jì)算求列平均值MIN()-返回一個數(shù)字或一個數(shù)字表達(dá)式的最小值MAX()-返回一個數(shù)字或一個數(shù)字表達(dá)式的最大值COUNT()-返回滿足SELECT語句中指定條件的元組數(shù)量COUNT(*)-返回找到的行數(shù)4
8、、數(shù)據(jù)控制語言(DCL)MS SQL Server的安全性建立在認(rèn)證和訪問許可兩種機(jī)制上即用戶要經(jīng)過兩個安全性階段:身份驗(yàn)證和授權(quán)(權(quán)限驗(yàn)證)。MS SQL Server的安全模式中包括登陸(login)、數(shù)據(jù)庫用戶(user)、權(quán)限、角色(role)等。用戶(user)與登陸(login)是兩個不同的概念,其中所有的數(shù)據(jù)庫用戶(user)必須與某一登陸(login)相匹配。MS SQL Server的權(quán)限分為:Ø 對象權(quán)限:針對表、視圖、存儲過程等數(shù)據(jù)庫對象(元素)而言,決定了能對這些對象執(zhí)行哪些操作。不同類型的對象支持不同的操作。Ø 語句權(quán)限:指數(shù)據(jù)庫用戶執(zhí)行某些語句的
9、操作權(quán)如創(chuàng)建數(shù)據(jù)庫、表、視圖等。這些語句雖然包含操作對象,但這些對象在操作前并不存在于數(shù)據(jù)庫中。(教材中說明成對數(shù)據(jù)庫而言)。(1)授權(quán)GRANT <權(quán)限> ON <對象名> TO <用戶名>(2)收回權(quán)限REVOKE <權(quán)限> ON <對象名> FROM <用戶名>【實(shí)驗(yàn)內(nèi)容】 1、數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)查詢語句。(1)創(chuàng)建數(shù)據(jù)庫,置為當(dāng)前數(shù)據(jù)庫;(2)創(chuàng)建表(參看表結(jié)構(gòu)),包括主碼、外碼及其它完整性約束;Student表結(jié)構(gòu)列名說明數(shù)據(jù)類型約束Sno學(xué)號定長字符串,長度為7主碼Sname姓名定長字符串,長度為10非空
10、Ssex性別定長字符串,長度為2取男或女Sage年齡微整形(tinyint)取值1545Sdept所在系不定長字符串,長度為20默認(rèn)為計(jì)算機(jī)系Spec專業(yè)定長字符串,長度為10Course表結(jié)構(gòu)列名說明數(shù)據(jù)類型約束Cno課程號定長字符串,長度為10主碼Cname課程名不定長字符串,長度為20非空Ccredit學(xué)分小整數(shù)(smallint)取值大于0Semster學(xué)期小整數(shù)(smallint)取值大于0Periods學(xué)時數(shù)小整數(shù)(smallint)取值大于0Property課程性質(zhì)定長字符串,長度為4SC表結(jié)構(gòu)列名說明數(shù)據(jù)類型約束Sno學(xué)號定長字符串,長度為7主碼,引用Student的外碼Cno
11、課程號定長字符串,長度為10主碼,引用Course的外碼Grade成績小整數(shù)(smallint)取值0100-Student表-Course表-SC表(3)插入數(shù)據(jù);說明:以下為樣例數(shù)據(jù),請自行補(bǔ)充完整插入數(shù)據(jù)代碼。('9512101','李勇','男',19,'計(jì)算機(jī)系','軟件工程')('9512102','劉晨','男',20,'計(jì)算機(jī)系','軟件工程')('9512103','王敏','女
12、',20,'計(jì)算機(jī)系','計(jì)算機(jī)應(yīng)用')('9521101','張立','男',22,'信息系','財(cái)務(wù)管理')('9521102','吳賓','女',21,'信息系','財(cái)務(wù)管理')('9521103','張海','男',20,'信息系','財(cái)務(wù)管理')('9531101','錢小平'
13、,'女',18,'數(shù)學(xué)系','組合數(shù)學(xué)')('9531102','王大力','男',19,'數(shù)學(xué)系','模糊數(shù)學(xué)') ('c01','計(jì)算機(jī)文化學(xué)',3,1,30,'選修')('c02','VB',2,3,45,'必修')('c03','計(jì)算機(jī)網(wǎng)絡(luò)',4,7,45,'必修')('c04','數(shù)據(jù)庫基礎(chǔ)&
14、#39;,6,6,35,'必修')('c05','高等數(shù)學(xué)',8,2,30,'必修')('c06','數(shù)據(jù)結(jié)構(gòu)',5,4,35,'必修')('9512101','c01',90)('9512101','c02',86)('9512101','c06',null)('9512102','c02',78)('9512102','c04
15、39;,66)('9521102','c01',82)('9521102','c02',75)('9521102','c04',92)('9521102','c05',50)('9521103','c02',68)('9521103','c06',null)('9531101','c01',80)('9531101','c05',95)(
16、39;9531102','c05',85)(4)完成各種數(shù)據(jù)查詢;1、查詢學(xué)生選課表中的全部數(shù)據(jù)答:2、查詢計(jì)算機(jī)系學(xué)生的姓名、年齡答:3、查詢成績在70-80分之間的學(xué)生的學(xué)號、課程號和成績答:4、查詢計(jì)算機(jī)系年齡在18-20歲之間且性別為“男”的學(xué)生的姓名和年齡答:5、查詢“C01”號課程成績最高的分?jǐn)?shù)答:6、查詢計(jì)算機(jī)系學(xué)生的最大年齡和最小年齡答:7、統(tǒng)計(jì)每個系的學(xué)生人數(shù)答:8、統(tǒng)計(jì)每門課程的選課人數(shù)和考試最高分答:9、統(tǒng)計(jì)每個學(xué)生的選課門數(shù)和考試總成績,并按選課門數(shù)的遞增順序顯示結(jié)果答:10、查詢總成績超過200分的學(xué)生,要求列出學(xué)號、總成績答:11、查詢選修了
17、 “C02”號課程的學(xué)生的姓名和所在系答:12、查詢成績在80分以上的學(xué)生的學(xué)號、課程號和成績,并按成績的降序排列結(jié)果答:13、查詢哪些課程沒有人選修,要求列出課程號和課程名答:14、查詢選修了“C01”號課程的學(xué)生的姓名和所在系答:15、查詢數(shù)學(xué)系成績在80分以上的學(xué)生的學(xué)號、姓名答:16、查詢選修了“數(shù)據(jù)庫基礎(chǔ)”的學(xué)生的學(xué)號、姓名答:17、刪除選課成績低于50分的學(xué)生的選課記錄答:18、將所有選修了“C01”號課程的學(xué)生的成績加10分答:19、將計(jì)算機(jī)系所有選修了“計(jì)算機(jī)文化學(xué)”課程的學(xué)生的成績加10分答:(5)定義視圖并完成查詢;寫出滿足下述條件的SQL語句。(1)創(chuàng)建計(jì)算機(jī)系學(xué)生的視圖
18、,包括學(xué)號、姓名。以此查詢計(jì)算機(jī)系學(xué)生姓名。答:(2)創(chuàng)建查詢每個學(xué)生的平均成績的視圖,要求列出學(xué)生學(xué)號及平均成績答:(3)創(chuàng)建查詢每個學(xué)生的選課學(xué)分的視圖,要求列出學(xué)生學(xué)號及總學(xué)分答:2、根據(jù)實(shí)驗(yàn)數(shù)據(jù)情況,直觀判斷語句的正確性?!緦?shí)驗(yàn)作業(yè)】1、閱讀MS SQL SERVER“聯(lián)機(jī)叢書”相關(guān)內(nèi)容。2、同一查詢問題有多種寫法,它們之間有何差別?3、如何驗(yàn)證SQL語句的正確性?實(shí)驗(yàn)二 數(shù)據(jù)庫設(shè)計(jì) 【實(shí)驗(yàn)?zāi)康摹勘緦?shí)驗(yàn)通過學(xué)生一個應(yīng)用實(shí)例設(shè)計(jì)數(shù)據(jù)庫,達(dá)到:1、理解規(guī)范化數(shù)據(jù)庫設(shè)計(jì)包括步驟及其任務(wù)、方法、結(jié)果等。2、掌握數(shù)據(jù)庫設(shè)計(jì)過程中關(guān)鍵文檔的撰寫包括E-R模型、E-R模型向關(guān)系模型的轉(zhuǎn)換。
19、3、了解數(shù)據(jù)庫輔助設(shè)計(jì)工具。 【實(shí)驗(yàn)性質(zhì)】驗(yàn)證性實(shí)驗(yàn)(學(xué)時數(shù):2H)【實(shí)驗(yàn)導(dǎo)讀】1、概述數(shù)據(jù)庫設(shè)計(jì)是指對于一個給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng)(簡稱數(shù)據(jù)庫應(yīng)用系統(tǒng)),使之能夠有效地存儲數(shù)據(jù),滿足各種用戶的應(yīng)用需求(包括信息要求和處理要求)。數(shù)據(jù)庫設(shè)計(jì)的一個最基本的問題(輸出)是如何建立一個好的數(shù)據(jù)庫模式(邏輯結(jié)構(gòu)與物理結(jié)構(gòu)),如果可能的話包括基于數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計(jì)原則。即給出一定的硬件與軟件環(huán)境下(主要包括OS與DBMS),對于一定的信息需求和處理要求(輸入),如何構(gòu)造一個適合于它們的數(shù)據(jù)模式,使數(shù)據(jù)庫系統(tǒng)無論是在數(shù)據(jù)存儲方面,還是在數(shù)據(jù)操縱方面都有較好的性能。按
20、照規(guī)范化設(shè)計(jì)的方法,數(shù)據(jù)庫設(shè)計(jì)分為以下六個階段:需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫實(shí)施、數(shù)據(jù)庫運(yùn)行和維護(hù)。有些教材還包括規(guī)劃階段。為了敘述方便我們將后兩個階段合并。2、需求分析需求分析指各種需求的收集和分析、表達(dá),結(jié)果得到數(shù)據(jù)字典(DD)描述的數(shù)據(jù)需求和數(shù)據(jù)流圖(DFD)描述的處理需求。在結(jié)構(gòu)化設(shè)計(jì)方法中,需求分析采用自頂向下、逐層分解的方法。3、概念結(jié)構(gòu)設(shè)計(jì)通過對用戶需求進(jìn)行綜合、歸納與抽象,形成一個獨(dú)立于具體DBMS的概念模型,用E-R圖表示。E-R模型方法討論了實(shí)體與實(shí)體之間的數(shù)據(jù)聯(lián)系,目標(biāo)是要設(shè)計(jì)一個“好”的數(shù)據(jù)庫模型。設(shè)計(jì)E-R圖步驟:1)確定局部應(yīng)用,一般選
21、擇合適的中間層次。在DFD中選擇適當(dāng)層次的DFD,作為設(shè)計(jì)局部E-R圖的出發(fā)點(diǎn)。中層允許有一定的重疊。2)設(shè)計(jì)局部E-R圖。主要包括確定實(shí)體、確定聯(lián)系包括聯(lián)系名及其類型、標(biāo)明屬性、確定主關(guān)鍵字、標(biāo)明其它。3)局部E-R圖 4)合并及優(yōu)化全局E-R圖。4、邏輯結(jié)構(gòu)設(shè)計(jì)將概念結(jié)構(gòu)轉(zhuǎn)換為某個DBMS所支持的數(shù)據(jù)模型一般為關(guān)系模型,并對其進(jìn)行優(yōu)化。轉(zhuǎn)換時必須遵從轉(zhuǎn)換規(guī)則,每個規(guī)則強(qiáng)調(diào)轉(zhuǎn)換時必須確定每個關(guān)系的關(guān)系名、構(gòu)成的屬性、碼的確定。轉(zhuǎn)換規(guī)則可以分為三類即實(shí)體型的轉(zhuǎn)換、聯(lián)系轉(zhuǎn)換(聯(lián)系可分為二元聯(lián)系與多元聯(lián)系兩類,二元聯(lián)系劃分成1:1、1:n、n:m三種,一元聯(lián)系同二元聯(lián)系一樣處理)、關(guān)系合并規(guī)則。5
22、、物理結(jié)構(gòu)設(shè)計(jì)為邏輯數(shù)據(jù)模型選取一個最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)(存儲結(jié)構(gòu)和存取方法)。6、實(shí)施與運(yùn)行、維護(hù)數(shù)據(jù)庫實(shí)施指運(yùn)用DBMS提供的數(shù)據(jù)語言SQL及其宿主語言(例如C),根據(jù)邏輯設(shè)計(jì)和物理設(shè)計(jì)的結(jié)果建立數(shù)據(jù)庫,編制與調(diào)試應(yīng)用程序,組織數(shù)據(jù)入庫,并進(jìn)行試運(yùn)行。在編寫SQL語句之前,一般會要求提供詳細(xì)說明每個表的表實(shí)例圖(Table Instance Chart)。TIC詳細(xì)描述每個表的屬性、數(shù)據(jù)類型及其長度、各種約束(如主碼、外碼、唯一性、值域等),有些資料稱之為數(shù)據(jù)字典(注意與需求分析的結(jié)果數(shù)據(jù)字典區(qū)分開來)。數(shù)據(jù)庫應(yīng)用系統(tǒng)經(jīng)過試運(yùn)行后即可投入正式運(yùn)行。在數(shù)據(jù)庫系統(tǒng)運(yùn)行過程中必須不斷地對其進(jìn)
23、行評價、調(diào)整與修改。7、設(shè)計(jì)舉例下面設(shè)計(jì)一個高校教學(xué)管理系統(tǒng)作為示例,簡要說明數(shù)據(jù)庫設(shè)計(jì)過程。(1)數(shù)據(jù)分析各部門對教學(xué)管理系統(tǒng)的數(shù)據(jù)要求:學(xué)生處:管理各系班級學(xué)生的基本情況。對學(xué)生而言主要有學(xué)生的學(xué)號,姓名,性別,生日,家長,郵編,家庭住址,班編號等信息。對班級而言有班級的編號,班名稱,班簡稱,班長,層次,人數(shù),入學(xué)年度,系編號等。教務(wù)處:掌握課程的基本信息以及學(xué)生各門課程的成績情況。就課程需要掌握課程的編號,課程名,學(xué)期,學(xué)分,實(shí)習(xí)周數(shù)(對實(shí)踐類課程)。各系:登錄本系學(xué)生各門課程的成績按照前述方法,根據(jù)上述數(shù)據(jù)要求,設(shè)計(jì)了其E-R模型,如圖2.1。圖2.1 教學(xué)管理E-R模型(2)E-R模
24、型轉(zhuǎn)換為關(guān)系模型根據(jù)轉(zhuǎn)換規(guī)則將上述E-R模型經(jīng)過轉(zhuǎn)換得到5個關(guān)系,下劃線為主碼:系(系編號,系名稱,系簡稱,電話,系主任,班級數(shù))。對應(yīng)實(shí)體型“系”。班級(班編號,班名稱,班簡稱,班長,層次,人數(shù),入學(xué)年度,系編號)。對應(yīng)實(shí)體型“班級”,包含了聯(lián)系“擁有”。學(xué)生(學(xué)號,姓名,性別,生日,家長,郵編,家庭住址,班編號)。對應(yīng)實(shí)體型“學(xué)生”,包含了聯(lián)系“組成”。課程(課程號,課程名,學(xué)期,學(xué)分,實(shí)習(xí)周數(shù))。對應(yīng)實(shí)體型“課程”。選修成績(學(xué)號,課程號,成績)。對應(yīng)聯(lián)系“選修”。(3)數(shù)據(jù)字典為了更好實(shí)施數(shù)據(jù)庫,給出每個關(guān)系的詳細(xì)說明。 表名內(nèi)容Department系Class班級Stude
25、nt學(xué)生Course課程Grade選修成績1、Department字段名數(shù)據(jù)類型及長度字段中文名約束Dept_ID Decimal(5)系編號Primary KeyDepartment varchar(50)系名稱Not NullAbbreviation varchar(10)系簡稱Phone varchar(50)電話Director varchar(50)系主任No_ClassDecimal(5)班級數(shù)Not Null Default 02、Class字段名數(shù)據(jù)類型及長度字段中文名約束Class_IDChar(7)班編號Primary KeyDept_ID Decimal(5)系編號For
26、eign KeyClass varchar(30)班名稱Not NullAbbreviation varchar(20)班簡稱Monitorvarchar(24)班長Level varchar(4)層次Not Null,大專、本科、碩士、博士Enroll_Datechar(4)入學(xué)年度Not NullNo_StudentDecimal(5)人數(shù)Not Null ,Default 03、Student字段名數(shù)據(jù)類型及長度字段中文名約束Student_IDvarchar(9)學(xué)號Primary KeyClass_IDvarchar(7)班編號Foreign KeyName varchar(24)姓
27、名Not NullGender varchar(2)性別Not Null,取值:男,女BirthdayDatetime生日Not NullAddressvarchar(50)家庭地址Zip_CodeDecimal(6)郵編HouseholderVarchar(50家長4、Course字段名數(shù)據(jù)類型及長度字段中文名約束Course_ID varchar(8)課程編號Primary KeyCoursevarchar(50)課程名Not NullCredit Decimal(5)學(xué)分PeriodDecimal(5)學(xué)期 Practice_periodDecimal(5) 實(shí)習(xí)周數(shù)
28、;5、Grade字段名數(shù)據(jù)類型及長度字段中文名約束Student_IDvarchar(9)學(xué)號Foreign KeyPrimary KeyCourse_ID varchar(8)課程編號Foreign KeyGradeDecimal(5)成績Not Null (4)創(chuàng)建表SQL語句 (略)【實(shí)驗(yàn)內(nèi)容】1、對自己熟悉的應(yīng)用領(lǐng)域完成數(shù)據(jù)庫設(shè)計(jì),也可以參照下面兩個E-R圖中任何一個。圖2.2圖2.32、編寫關(guān)鍵文檔(轉(zhuǎn)換的關(guān)系模型、數(shù)據(jù)字典、SQL語句)。3、上機(jī)調(diào)試相應(yīng)的SQL語句。【實(shí)驗(yàn)作業(yè)】1、數(shù)據(jù)庫設(shè)計(jì)的輸入是什么?2、數(shù)據(jù)庫設(shè)計(jì)的輸出是什么?3、E-R模型向關(guān)系模型的轉(zhuǎn)
29、換時注意事項(xiàng)有哪些?4、簡單總結(jié)規(guī)范化數(shù)據(jù)庫設(shè)計(jì)方法的優(yōu)缺點(diǎn)。實(shí)驗(yàn)三 數(shù)據(jù)庫應(yīng)用技術(shù)【實(shí)驗(yàn)?zāi)康摹?、了解數(shù)據(jù)庫應(yīng)用結(jié)構(gòu)。2、了解數(shù)據(jù)庫接口。3、掌握數(shù)據(jù)庫應(yīng)用過程尤其連接數(shù)據(jù)庫、表現(xiàn)數(shù)據(jù)庫。4、加深SQL語言掌握。【實(shí)驗(yàn)性質(zhì)】綜合性實(shí)驗(yàn)(學(xué)時數(shù):4H)【實(shí)驗(yàn)導(dǎo)讀】1 窗體是VB中的對象,具有自己的屬性、事件和方法。窗體屬性:(1)Name屬性對象的名稱,是所有對象都具有的屬性,用來唯一標(biāo)識該控件。在程序中,控件名是作為對象的標(biāo)識而引用,不會顯示在窗體上。所有的控件在創(chuàng)建時由VB自動提供一個默認(rèn)名稱。(2)Height、Width、Top和Left屬性圖3-1 窗體位置、大小Height和Wid
30、th屬性決定了控件的高度和寬度,Top表示控件到窗體頂部的距離,Left表示控件到窗體左邊框的距離。默認(rèn)單位為twip,1 twip=1/20點(diǎn)=1/1440英寸=1/567cm 。窗體位置、大小如圖3-1所示。(3)Caption 標(biāo)題屬性Caption屬性的值是顯示在窗體標(biāo)題欄上的文字。(4)BackColor屬性和ForeColor屬性 BackColor屬性用于返回或設(shè)置對象的背景顏色,F(xiàn)oreColor屬性用于返回或設(shè)置在對象里顯示圖片和文本的前景顏色。(5)BorderStyle屬性此屬性決定邊框風(fēng)格, 通過改變 BorderStyle 屬性,可以控制窗體如何調(diào)整大小。(6)Max
31、Button、MinButton和ControlBox屬性MaxButton最大化按鈕和MinButton最小化按,當(dāng)值為 True,有最大或最小化按鈕,F(xiàn)alse則無。ControlBox控制菜單框?qū)傩?,其值設(shè)置為Ture時,有控件菜單;設(shè)置為False時,則無控件菜單,同時窗體也無“最大化”按鈕和“最小化”按鈕,即使MaxButton屬性和MinButton屬性設(shè)置為Ture。(7)Picture屬性使用Picture屬性可以指定一幅圖片顯示在窗體的表面上,作為控件的背景。(8)WindowsState屬性0:正常窗口狀態(tài),有窗口邊界;1:最小化狀態(tài),以圖標(biāo)方式運(yùn)行;2:最大化狀態(tài),無邊框
32、,充滿整個屏幕。(9)字體Font屬性組² FontName屬性是字符型,決定對象上正文的字體(缺省為宋體)。² FontSize屬性是整型,決定對象上正文的字體大小(缺省為9磅)。² FontBold屬性是邏輯型,決定對象上正文是否是粗體(缺省為False)。² FontItalic屬性是邏輯型,決定對象上正文是否是斜體(缺省為False)。² FontStrikeThru屬性是邏輯型,決定對象上正文是否加一刪除線(缺省為False)。² FontUnderLine屬性是邏輯型,決定對象上正文是否帶下劃線(缺省為False)。(10
33、)AutoRedraw屬性該屬性決定窗體被隱藏或被另一窗口覆蓋之后重新顯示時,是否重新還原該窗體被隱藏或覆蓋以前的畫面。即是否重畫如Circle、Line、Pset和Print等方法的輸出。當(dāng)為True時,重新還原該窗體以前的畫面。當(dāng)為False時,則不重畫。窗體常用事件:窗體常用的事件有Load、Click、DblClick、Activate、Resize等。其中Load事件是當(dāng)窗體被裝入工作區(qū)時觸發(fā)的事件,常用來在啟動應(yīng)用程序時對屬性和變量進(jìn)行初始化。Activate是當(dāng)一個窗體成為活動窗口時所觸發(fā)的事件,Resize是當(dāng)窗體大小發(fā)生改變時所觸發(fā)的事件。窗體常用方法:窗體常用的方法有Pri
34、nt(打印輸出)、Cls(清除)、Show(顯示)、Hide(隱藏)以及(Move)移動等。2 在窗體上添加控件圖3-2 設(shè)置啟動窗體窗體是設(shè)計(jì)VB應(yīng)用程序的一個基本平臺,幾乎所有的控件都是添加在窗體上的。對于生成的控件,可以調(diào)整控件大小、移動控件位置、使用網(wǎng)格精確定位控件;對于多個控件,還可以對它們進(jìn)行排列、調(diào)整大小等操作。另外,在VB中還允許可視地創(chuàng)建和編輯控件數(shù)組,這對于編組使用選擇框、命令按鈕等控件提供了很大方便。3 設(shè)置啟動窗體在默認(rèn)情況下,應(yīng)用程序中的第一個窗體被指定為啟動窗體。應(yīng)用程序開始運(yùn)行時,此窗體就被顯示出來。如果想在應(yīng)用程序啟動時顯示別的窗體,可以將其他窗體設(shè)置為啟動窗體
35、。設(shè)置方法:在“工程”菜單或者“工程資源管理器”快捷菜單中選擇工程“屬性”,會彈出“工程屬性”對話框,如圖3-2所示,在“啟動對象”的選擇列表中選擇窗體名稱即可把該窗體設(shè)為啟動窗體。4 實(shí)驗(yàn)舉例例:使用VB建立一個簡單的應(yīng)用程序,在窗體上輸出“大家好!”“歡迎來到這里”。設(shè)計(jì)思路:窗體上通常是不直接輸出文本信息,一般通過窗體上的對象輸出文本信息。例如,可以用標(biāo)簽輸出“大家好!”,用文本框輸出“歡迎來到這里!”,因此可以在窗體上放置一個標(biāo)簽、一個文本框和一個命令按鈕,單擊命令按鈕,則在標(biāo)簽上顯示“大家好!”,在文本框顯示“歡迎來到這里!”。設(shè)計(jì)步驟:(1)新建工程單擊Windows任務(wù)欄中的“開
36、始”¨“程序”¨“Microsoft Visual Basic6.0中文版”¨“Microsoft Visual Basic6.0中文版”命令,進(jìn)入Visual Basic6.0集成開發(fā)環(huán)境,并顯示“新建工程”對話框,默認(rèn)選擇是建立“標(biāo)準(zhǔn)EXE”(即標(biāo)準(zhǔn)工程)。單擊“打開”按鈕,Visual Basic 6.0進(jìn)入設(shè)計(jì)模式,并自動創(chuàng)建了一個窗體模塊Form1,這就是將要建立的應(yīng)用程序的窗體。在這個窗體上添加控件,即可建立應(yīng)用程序界面。(2)創(chuàng)建應(yīng)用程序界面 設(shè)置窗體屬性圖1-3 例 界面設(shè)計(jì)A在屬性窗口中雙擊“Caption”屬性條,輸入“我的第一個VB程序”。B
37、在屬性窗口中選擇“BackColor”屬性條,然后單擊右端的箭頭,在所顯示的“調(diào)色板”中選擇一種顏色(例如淺黃色)。 在窗體上添加控件A單擊工具箱中的標(biāo)簽(Label)控件類型圖標(biāo),鼠標(biāo)指針變?yōu)槭中?,再在“對象”窗口的窗體上單擊并拖動,然后釋放鼠標(biāo)鍵,窗體上就會出現(xiàn)一個標(biāo)簽類型的控件對象,同時鼠標(biāo)指針恢復(fù)為箭頭形狀。B用同樣方法將文本框(TextBox)控件放置在窗體上。C放置命令按鈕(CommandButton)到窗體上。 設(shè)置控件屬性在窗體上選中命令按鈕,然后在屬性窗口中雙擊“Caption”屬性條,輸入“顯示”。通過鼠標(biāo)的幾個簡單操作,我們已經(jīng)建立好了應(yīng)用程序界面,如圖1-3所示。圖4
38、-4 例 代碼編輯窗口(3)編寫應(yīng)用程序代碼創(chuàng)建好了應(yīng)用程序界面,下面就開始編寫應(yīng)用程序代碼,控制程序的運(yùn)行。編寫的程序具有這樣的功能:當(dāng)用戶在應(yīng)用程序窗體中用鼠標(biāo)單擊“顯示”按鈕時,窗體中的標(biāo)簽上會顯示“大家好!”,文本框中會顯示“歡迎來到這里!”。圖3-5 例 運(yùn)行結(jié)果在這里要對“顯示”命令按鈕(Command1)進(jìn)行編程,在窗體上雙擊“顯示”命令按鈕(Command1),會彈出代碼編輯窗口,在編輯窗口上部左側(cè)的對象列表框中顯示對象名為“Command1”,在右側(cè)的過程列表框中顯示的過程是“Click”,如圖1-4所示。此時,在代碼編輯窗口會出現(xiàn)如下代碼:Private Sub Comma
39、nd1_Click()End Sub說明我們是對命令按鈕Command1的單擊事件進(jìn)行編程。在這兩條語句之間輸入如下代碼:Label1.Caption = "大家好!"Label1.FontName = "宋體"Label1.FontSize = 15Label1.FontBold = TrueText1.Text = "歡迎來到這里!"Text1.FontName = "黑體"Text1.FontSize = 16Text1.FontBold = True至此,我們完成了對命令按鈕Command1(“顯示”按鈕)
40、的編程。(4)運(yùn)行程序點(diǎn)擊工具欄中的“啟動”按鈕,開始運(yùn)行程序,單擊命令按鈕(顯示),結(jié)果如圖3-5所示。(5)保存文件圖3-6 窗體文件保存程序在編寫過程中或運(yùn)行結(jié)束后常常要將有關(guān)文件保存到磁盤上,以便以后多次使用。通常一個工程中會涉及到多種文件類型,但本例比較簡單,它僅涉及到一個窗體,因此在保存文件時,只需保存一個窗體文件和工程文件即可。保存文件的步驟如下:A選擇“文件”“保存Form1”(窗體文件)命令,系統(tǒng)彈出“文件另存為”對話框,提示用戶輸入文件名。如圖3-6所示。用戶在“保存在”文本框選擇保存的文件夾,在“文件名”文本框輸入窗體文件名(后綴名由系統(tǒng)根據(jù)不同的文件類型自動添加,這里是
41、.frm)。本例窗體文件名為 vblx.frm,保存在G盤的VBpro文件夾下。B選擇“文件”“保存工程”(工程文件)命令,系統(tǒng)彈出“工程另存為”對話框,提示用戶輸入文件名,操作同上。本例工程文件名為vblx.vbp。在保存了文件后,用戶若要再次調(diào)入文件進(jìn)行修改或運(yùn)行,只需選擇“文件”“打開工程”命令,輸入要打開的工程文件名,就可把硬盤上的文件調(diào)入內(nèi)存進(jìn)行所需的操作。圖3-7 生成工程對話框(6)生成可執(zhí)行文件在前面的程序運(yùn)行時,我們直接選擇在工具欄單擊“”啟動按鈕,或選擇“運(yùn)行”¨“啟動”命令運(yùn)行程序,這時的運(yùn)行是在解釋運(yùn)行模式下,仍然在VB環(huán)境中。有時我們需要程序的運(yùn)行能脫離VB
42、環(huán)境,可像任何基于Windows的應(yīng)用程序那樣,雙擊程序文件圖標(biāo)就可運(yùn)行。這就必須對應(yīng)用程序源代碼進(jìn)行編譯,生成可執(zhí)行文件(.EXE文件)。生成可執(zhí)行文件的步驟如下:A選擇“文件”¨“生成.exe”命令,系統(tǒng)顯示“生成工程”對話框,如圖3-7所示。B在“文件名”文本框內(nèi)顯示與原工程文件名一致的可執(zhí)行文件名,用戶也可修改文件名,本例文件名為vblx1_1.exe?!緦?shí)驗(yàn)內(nèi)容】1、 利用SQL Server2000數(shù)據(jù)查詢分析器建立數(shù)據(jù)庫應(yīng)用結(jié)構(gòu)drop database testgocreate database testgouse testgocreate table student
43、(sno nvarchar(7)primary key,sname nvarchar(10)not null,ssex nvarchar(2) check(ssex='男' or ssex='女'),sage tinyint check(sage>=15 and sage<=45),sdept nvarchar(20) default '計(jì)算機(jī)系')goinsert into student values('9512101','李勇','男',19,'計(jì)算機(jī)系')inse
44、rt into student values('9512102','劉晨','男',20,'計(jì)算機(jī)系')insert into student values('9512103','王敏','女',20,'計(jì)算機(jī)系')insert into student values('9521101','張立','男',22,'信息系')insert into student values('9521102
45、39;,'吳賓','女',21,'信息系')insert into student values('9521103','張海','男',20,'信息系')insert into student values('9531101','錢小平','女',18,'數(shù)學(xué)系')insert into student values('9531102','王大力','男',19,'
46、數(shù)學(xué)系')select * from student2、 新建一VB應(yīng)用程序工程文件設(shè)置窗體Form1標(biāo)題欄的Caption屬性為學(xué)生信息管理系統(tǒng)如圖3-8所示圖3-83、 添加對ADO對象的引用選擇【工程】菜單下的【引用】,如圖3-9所示。圖3-9在引用對話框中將Microsoft ActiveX Data Object 2.8 Library選項(xiàng)打勾,添加對ADO對象的引用,選擇確定。如圖3-10所示。圖3-104、 添加ADO數(shù)據(jù)控件和MSHFlexGrid網(wǎng)格控件選擇【工具】菜單下的【部件】,如圖3-11所示。圖3-11在部件對話框中分別對Microsoft ADO Data
47、Control 6.0 (SP6)和Microsoft Hierarchical FlexGrid Control 6.0 (SP4) (OLEDB)打勾,添加ADO數(shù)據(jù)控件和MSHFlexGrid數(shù)據(jù)網(wǎng)格控件。如圖3-12和3-13所示。圖3-12圖3-13圖3-145、 設(shè)計(jì)應(yīng)用程序界面,界面效果如圖3-15所示,各個控件的說明及屬性如下表所示。圖3-15窗體及各個控件名稱說明如圖3-16所示:txtSnotxtSnametxtSsextxtSagetxtSdeptcmdAddNewcmdDeletecmdUpdatetxtFindcmdFindAdodc1cmdFirstcmdPrevc
48、mdNextcmdLastMSHFlexGrid1Form1Label1Label2Label3Label4Label5Label6圖3-16各個控件屬性說明如下:對象名稱(控件名稱)屬性名稱屬性值Form1caption學(xué)生信息管理系統(tǒng)Label1Caption學(xué)號:Label2Caption姓名:Label3Caption性別:Label4Caption年齡:Label5Caption系部:Label6Caption請輸入要查詢的學(xué)號:txtSnoText空txtSnameText空txtSsexText空txtSageText空txtSdepttext空txtFindtext空cmdFi
49、rstCaption第一條cmdPrevCaption上一條cmdNextCaption下一條cmdLastCaption最末條cmdAddNewCaption添加記錄cmdDeleteCaption刪除記錄cmdUpdateCaption保存記錄cmdFindCaption查找記錄adodc1Caption學(xué)生信息記錄VisiblefalseMSHFlexGrid1DataSourceadodc1表16、 設(shè)置ADO控件adodc1的數(shù)據(jù)庫連接及屬性選擇adodc1控件,在右鍵菜單中選擇ADODC屬性,出現(xiàn)數(shù)據(jù)庫連接屬性頁,如圖3-17和圖3-18所示。圖3-17圖3-18選擇生成按鈕,設(shè)置
50、數(shù)據(jù)鏈接屬性。在提供程序中選擇Microsoft OLE DB Provider for SQL Server,然后選擇下一步。如圖3-19所示。圖3-19在連接屬性頁中輸入服務(wù)器名稱localhost,使用指定的用戶名:sa,密碼:空,然后在服務(wù)器上選擇數(shù)據(jù)庫test,如圖3-20所示。點(diǎn)擊測試連接按鈕。如果出現(xiàn)測試連接成功對話框說明數(shù)據(jù)庫連接成功。如圖3-21所示。圖3-20圖3-21點(diǎn)擊確定以后,在屬性頁的通用選項(xiàng)卡中出現(xiàn)連接數(shù)據(jù)庫的字符串。如圖3-22所示。圖3-22選擇記錄源選項(xiàng)卡,在命令類型中選擇adCmdTable,在表或存儲過程中選擇student。如圖3-23。圖3-237、
51、 綁定數(shù)據(jù)控件選擇txtSno文本框控件,在右邊的屬性中設(shè)置DataSource屬性為adodc1,DataField屬性為sno。如圖17所示。選擇txtSname文本框控件,在右邊的屬性中設(shè)置DataSource屬性為adodc1,DataField屬性為sname。參看圖17所示。選擇txtSsex文本框控件,在右邊的屬性中設(shè)置DataSource屬性為adodc1,DataField屬性為ssex。參看圖17所示。選擇txtSage文本框控件,在右邊的屬性中設(shè)置DataSource屬性為adodc1,DataField屬性為sage。參看圖17所示。選擇txtSdept文本框控件,在右
52、邊的屬性中設(shè)置DataSource屬性為adodc1,DataField屬性為sdept。參看圖3-24所示。圖3-248、 編寫第一條、上一條、下一條、最末條按鈕的事件代碼。運(yùn)行程序并測試功能。'第一條按鈕事件代碼Private Sub cmdFirst_Click() Adodc1.Recordset.MoveFirstEnd Sub'上一條按鈕事件代碼Private Sub cmdLast_Click() Adodc1.Recordset.MoveLastEnd Sub'下一條按鈕事件代碼Private Sub cmdNext_Click() Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then Adodc1.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療設(shè)備付款合同范例
- 與演員合同范本
- 別墅電梯采購合同范本
- 乙方出資建房合同范本
- 出售工地用車合同范本
- 勞務(wù)派遣施工合同范本
- 醫(yī)療營銷合同范本
- 北京園林公司合同范本
- 代理推廣合作合同范本
- 醫(yī)院棉被訂購合同范例
- DB12-T 3034-2023 建筑消防設(shè)施檢測服務(wù)規(guī)范
- 銷售人員崗位職責(zé)培訓(xùn)
- 小學(xué)生日常行為規(guī)范實(shí)施方案
- 2024-2025學(xué)年九年級化學(xué)人教版上冊檢測試卷(1-4單元)
- 2024年遼寧省鞍山岫巖滿族自治縣事業(yè)單位招聘(150人)歷年高頻難、易錯點(diǎn)500題模擬試題附帶答案詳解
- DBJ46-070-2024 海南省民用建筑外門窗工程技術(shù)標(biāo)準(zhǔn)
- 金屬冶煉安全生產(chǎn)實(shí)務(wù)注冊安全工程師考試(初級)試題與參考答案
- 2024年高職高考語文必背古詩
- 護(hù)理質(zhì)控護(hù)士競聘
- 醫(yī)學(xué)課件炎癥性腸病4
- 2024年4月自考00263外國法制史試題及答案
評論
0/150
提交評論