




版權(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í)數(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)。下面給出基本語法,每個(gè)語句的詳細(xì)語法參見“聯(lián)機(jī)從書”的“Transact-SQL參考”。1、數(shù)據(jù)定
3、義語言(DDL)(1)定義數(shù)據(jù)庫(DataBase)CREATE DATABASE 命名規(guī)則遵從一般標(biāo)識符規(guī)則。在定義表及其它元素之前,必須將查詢分析器的當(dāng)前數(shù)據(jù)庫置為。采用USE 。(2)定義基本表(Table)CREATE TABLE ()()給出每一列的說明包括列名、數(shù)據(jù)類型及長度,還給出相關(guān)列約束或表約束子句。、命名規(guī)則遵從一般標(biāo)識符規(guī)則。(3)定義視圖(View)CREATE VIEW AS 視圖作為關(guān)系數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)外模式的基本單元,用于定義最終用戶(End-User)數(shù)據(jù)源。在視圖定義中可以采用復(fù)雜的SELECT語句。(4)定義索引(Index)CREATE INDEX 2、數(shù)據(jù)
4、操縱語言(DML)插入(Insert)、刪除(Delete)、修改(Update)數(shù)據(jù)只針對單個(gè)關(guān)系。DML語句可能會(huì)造成數(shù)據(jù)不一致。在每條語句執(zhí)行之前,MS SQL Server會(huì)驗(yàn)證每條語句是否符合完整性要求包括實(shí)體完整性、參考完整性、用戶定義的完整性。(1)插入數(shù)據(jù)INSERT INTO (column_list) VALUES(data_values)數(shù)據(jù)values值與列列表要匹配個(gè)數(shù)與類型。以下類型的數(shù)據(jù)values值不用使用引號:整型數(shù)據(jù)類型(bit,int,smallint,tinyint)、貨幣數(shù)據(jù)類型(money,smallmoney)、數(shù)字?jǐn)?shù)據(jù)類型(decimal,num
5、eric)、浮點(diǎn)類型數(shù)據(jù)(real,float)。對于以下數(shù)據(jù)類型就要對values值加單引號:字符數(shù)據(jù)類型(char,varchar,text)、復(fù)雜的日期/時(shí)間類型數(shù)據(jù)(datetime,smalldatetime)??梢允潜砻蛞晥D名。INSERT語句還可以插入多行數(shù)據(jù)。(2)刪除數(shù)據(jù)DELETE FROM table_name WHERE search_condition刪除符合條件的元組。(3)更新數(shù)據(jù)UPDATE table_name SET column_name = expression | DEFAULT | NULL ,.n FROM table_name ,.n WHER
6、E search_condition刪除滿足條件的元組。3、數(shù)據(jù)查詢語言(SELECT)SELECT是SQL中使用最頻繁的語句,其變化形式繁多。其基本形式:SELECT query_expression | column_list|* FROM table_name_list|view_name_list WHERE condition_expressionGROUP BY column_name_list HAVING condition_expressionORDER BY order_expression ASC | DESC 從數(shù)據(jù)庫中檢索行,并允許從一個(gè)或多個(gè)關(guān)系(包括表、視圖、查詢
7、結(jié)果集)中選擇一個(gè)或多個(gè)行或列。常用的統(tǒng)計(jì)函數(shù):SUM()-返回一個(gè)數(shù)字或計(jì)算列的總和AVG()-對一個(gè)數(shù)字列或計(jì)算求列平均值MIN()-返回一個(gè)數(shù)字或一個(gè)數(shù)字表達(dá)式的最小值MAX()-返回一個(gè)數(shù)字或一個(gè)數(shù)字表達(dá)式的最大值COUNT()-返回滿足SELECT語句中指定條件的元組數(shù)量COUNT(*)-返回找到的行數(shù)4、數(shù)據(jù)控制語言(DCL)MS SQL Server的安全性建立在認(rèn)證和訪問許可兩種機(jī)制上即用戶要經(jīng)過兩個(gè)安全性階段:身份驗(yàn)證和授權(quán)(權(quán)限驗(yàn)證)。MS SQL Server的安全模式中包括登陸(login)、數(shù)據(jù)庫用戶(user)、權(quán)限、角色(role)等。用戶(user)與登陸(lo
8、gin)是兩個(gè)不同的概念,其中所有的數(shù)據(jù)庫用戶(user)必須與某一登陸(login)相匹配。MS SQL Server的權(quán)限分為: 對象權(quán)限:針對表、視圖、存儲(chǔ)過程等數(shù)據(jù)庫對象(元素)而言,決定了能對這些對象執(zhí)行哪些操作。不同類型的對象支持不同的操作。 語句權(quán)限:指數(shù)據(jù)庫用戶執(zhí)行某些語句的操作權(quán)如創(chuàng)建數(shù)據(jù)庫、表、視圖等。這些語句雖然包含操作對象,但這些對象在操作前并不存在于數(shù)據(jù)庫中。(教材中說明成對數(shù)據(jù)庫而言)。(1)授權(quán)GRANT ON TO (2)收回權(quán)限REVOKE 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)建表(參看
9、表結(jié)構(gòu)),包括主碼、外碼及其它完整性約束;Student表結(jié)構(gòu)列名說明數(shù)據(jù)類型約束Sno學(xué)號定長字符串,長度為7主碼Sname姓名定長字符串,長度為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ù)小整數(shù)(smalli
10、nt)取值大于0Property課程性質(zhì)定長字符串,長度為4SC表結(jié)構(gòu)列名說明數(shù)據(jù)類型約束Sno學(xué)號定長字符串,長度為7主碼,引用Student的外碼Cno課程號定長字符串,長度為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,王敏,女,20,計(jì)算機(jī)系,計(jì)算機(jī)應(yīng)用)(9521101,張立,男,22,信息系,財(cái)務(wù)管理)(95211
11、02,吳賓,女,21,信息系,財(cái)務(wù)管理)(9521103,張海,男,20,信息系,財(cái)務(wù)管理)(9531101,錢小平,女,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ǔ),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,c0
12、4,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)(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é)生的最大年
13、齡和最小年齡答:7、統(tǒng)計(jì)每個(gè)系的學(xué)生人數(shù)答:8、統(tǒng)計(jì)每門課程的選課人數(shù)和考試最高分答:9、統(tǒng)計(jì)每個(gè)學(xué)生的選課門數(shù)和考試總成績,并按選課門數(shù)的遞增順序顯示結(jié)果答:10、查詢總成績超過200分的學(xué)生,要求列出學(xué)號、總成績答:11、查詢選修了 “C02”號課程的學(xué)生的姓名和所在系答:12、查詢成績在80分以上的學(xué)生的學(xué)號、課程號和成績,并按成績的降序排列結(jié)果答:13、查詢哪些課程沒有人選修,要求列出課程號和課程名答:14、查詢選修了“C01”號課程的學(xué)生的姓名和所在系答:15、查詢數(shù)學(xué)系成績在80分以上的學(xué)生的學(xué)號、姓名答:16、查詢選修了“數(shù)據(jù)庫基礎(chǔ)”的學(xué)生的學(xué)號、姓名答:17、刪除選課成績低于5
14、0分的學(xué)生的選課記錄答:18、將所有選修了“C01”號課程的學(xué)生的成績加10分答:19、將計(jì)算機(jī)系所有選修了“計(jì)算機(jī)文化學(xué)”課程的學(xué)生的成績加10分答:(5)定義視圖并完成查詢;寫出滿足下述條件的SQL語句。(1)創(chuàng)建計(jì)算機(jī)系學(xué)生的視圖,包括學(xué)號、姓名。以此查詢計(jì)算機(jī)系學(xué)生姓名。答:(2)創(chuàng)建查詢每個(gè)學(xué)生的平均成績的視圖,要求列出學(xué)生學(xué)號及平均成績答:(3)創(chuàng)建查詢每個(gè)學(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語
15、句的正確性?實(shí)驗(yàn)二 數(shù)據(jù)庫設(shè)計(jì)【實(shí)驗(yàn)?zāi)康摹勘緦?shí)驗(yàn)通過學(xué)生一個(gè)應(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)換。3、了解數(shù)據(jù)庫輔助設(shè)計(jì)工具。 【實(shí)驗(yàn)性質(zhì)】驗(yàn)證性實(shí)驗(yàn)(學(xué)時(shí)數(shù):2H)【實(shí)驗(yàn)導(dǎo)讀】1、概述數(shù)據(jù)庫設(shè)計(jì)是指對于一個(gè)給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng)(簡稱數(shù)據(jù)庫應(yīng)用系統(tǒng)),使之能夠有效地存儲(chǔ)數(shù)據(jù),滿足各種用戶的應(yīng)用需求(包括信息要求和處理要求)。數(shù)據(jù)庫設(shè)計(jì)的一個(gè)最基本的問題(輸出)是如何建立一個(gè)好的數(shù)據(jù)庫模式(邏輯結(jié)構(gòu)與物理結(jié)構(gòu)),如果可能的話包括基于
16、數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計(jì)原則。即給出一定的硬件與軟件環(huán)境下(主要包括OS與DBMS),對于一定的信息需求和處理要求(輸入),如何構(gòu)造一個(gè)適合于它們的數(shù)據(jù)模式,使數(shù)據(jù)庫系統(tǒng)無論是在數(shù)據(jù)存儲(chǔ)方面,還是在數(shù)據(jù)操縱方面都有較好的性能。按照規(guī)范化設(shè)計(jì)的方法,數(shù)據(jù)庫設(shè)計(jì)分為以下六個(gè)階段:需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫實(shí)施、數(shù)據(jù)庫運(yùn)行和維護(hù)。有些教材還包括規(guī)劃階段。為了敘述方便我們將后兩個(gè)階段合并。2、需求分析需求分析指各種需求的收集和分析、表達(dá),結(jié)果得到數(shù)據(jù)字典(DD)描述的數(shù)據(jù)需求和數(shù)據(jù)流圖(DFD)描述的處理需求。在結(jié)構(gòu)化設(shè)計(jì)方法中,需求分析采用自頂向下、逐層分解的方法。3、概
17、念結(jié)構(gòu)設(shè)計(jì)通過對用戶需求進(jìn)行綜合、歸納與抽象,形成一個(gè)獨(dú)立于具體DBMS的概念模型,用E-R圖表示。E-R模型方法討論了實(shí)體與實(shí)體之間的數(shù)據(jù)聯(lián)系,目標(biāo)是要設(shè)計(jì)一個(gè)“好”的數(shù)據(jù)庫模型。設(shè)計(jì)E-R圖步驟:1)確定局部應(yīng)用,一般選擇合適的中間層次。在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)換為某個(gè)DBMS所支持的數(shù)據(jù)模型一般為關(guān)系模型,并對其進(jìn)行優(yōu)化。轉(zhuǎn)換時(shí)必須遵從轉(zhuǎn)換規(guī)則,每個(gè)規(guī)則強(qiáng)
18、調(diào)轉(zhuǎn)換時(shí)必須確定每個(gè)關(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、物理結(jié)構(gòu)設(shè)計(jì)為邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)(存儲(chǔ)結(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語句之前,一般會(huì)要求提供詳細(xì)說明每個(gè)表的表實(shí)例圖(Table Instance Chart)。TIC詳細(xì)
19、描述每個(gè)表的屬性、數(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)行評價(jià)、調(diào)整與修改。7、設(shè)計(jì)舉例下面設(shè)計(jì)一個(gè)高校教學(xué)管理系統(tǒng)作為示例,簡要說明數(shù)據(jù)庫設(shè)計(jì)過程。(1)數(shù)據(jù)分析各部門對教學(xué)管理系統(tǒng)的數(shù)據(jù)要求:學(xué)生處:管理各系班級學(xué)生的基本情況。對學(xué)生而言主要有學(xué)生的學(xué)號,姓名,性別,生日,家長,郵編,家庭住址,班編號等信息。對班級而言有班級的編號,班名稱,班簡稱,班長,層次,人數(shù),入學(xué)年度,系編號等。教務(wù)處:掌握課程的基本信息以及學(xué)生各門課
20、程的成績情況。就課程需要掌握課程的編號,課程名,學(xué)期,學(xué)分,實(shí)習(xí)周數(shù)(對實(shí)踐類課程)。各系:登錄本系學(xué)生各門課程的成績按照前述方法,根據(jù)上述數(shù)據(jù)要求,設(shè)計(jì)了其E-R模型,如圖2.1。圖2.1 教學(xué)管理E-R模型(2)E-R模型轉(zhuǎn)換為關(guān)系模型根據(jù)轉(zhuǎn)換規(guī)則將上述E-R模型經(jīng)過轉(zhuǎn)換得到5個(gè)關(guān)系,下劃線為主碼:系(系編號,系名稱,系簡稱,電話,系主任,班級數(shù))。對應(yīng)實(shí)體型“系”。班級(班編號,班名稱,班簡稱,班長,層次,人數(shù),入學(xué)年度,系編號)。對應(yīng)實(shí)體型“班級”,包含了聯(lián)系“擁有”。學(xué)生(學(xué)號,姓名,性別,生日,家長,郵編,家庭住址,班編號)。對應(yīng)實(shí)體型“學(xué)生”,包含了聯(lián)系“組成”。課程(課程號,課
21、程名,學(xué)期,學(xué)分,實(shí)習(xí)周數(shù))。對應(yīng)實(shí)體型“課程”。選修成績(學(xué)號,課程號,成績)。對應(yīng)聯(lián)系“選修”。(3)數(shù)據(jù)字典為了更好實(shí)施數(shù)據(jù)庫,給出每個(gè)關(guān)系的詳細(xì)說明。表名內(nèi)容Department系Class班級Student學(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_ClassDe
22、cimal(5)班級數(shù)Not Null Default 02、Class字段名數(shù)據(jù)類型及長度字段中文名約束Class_IDChar(7)班編號Primary KeyDept_ID Decimal(5)系編號Foreign 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、
23、Student字段名數(shù)據(jù)類型及長度字段中文名約束Student_IDvarchar(9)學(xué)號Primary KeyClass_IDvarchar(7)班編號Foreign KeyName varchar(24)姓名Not NullGender varchar(2)性別Not Null,取值:男,女BirthdayDatetime生日Not NullAddressvarchar(50)家庭地址Zip_CodeDecimal(6)郵編HouseholderVarchar(50家長4、Course字段名數(shù)據(jù)類型及長度字段中文名約束Course_ID varchar(8)課程編號Primary Key
24、Coursevarchar(50)課程名Not NullCredit Decimal(5)學(xué)分PeriodDecimal(5)學(xué)期Practice_periodDecimal(5) 實(shí)習(xí)周數(shù)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ì),也可以參照下面兩個(gè)E-R圖中任何一個(gè)。圖2.2圖2.32、編寫關(guān)鍵文檔(轉(zhuǎn)
25、換的關(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)換時(shí)注意事項(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í)數(shù):4H)【實(shí)驗(yàn)導(dǎo)讀】1 窗體是VB中的對象,具有自己的屬性、事件和方法。窗體屬性:(1)Name屬性對象的名稱,是所有對象都具有的屬性,用來唯一標(biāo)識該控件。在程序中,控件名是作為對象的標(biāo)識而引
26、用,不會(huì)顯示在窗體上。所有的控件在創(chuàng)建時(shí)由VB自動(dòng)提供一個(gè)默認(rèn)名稱。(2)Height、Width、Top和Left屬性圖3-1 窗體位置、大小Height和Width屬性決定了控件的高度和寬度,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è)置在
27、對象里顯示圖片和文本的前景顏色。(5)BorderStyle屬性此屬性決定邊框風(fēng)格, 通過改變 BorderStyle 屬性,可以控制窗體如何調(diào)整大小。(6)MaxButton、MinButton和ControlBox屬性MaxButton最大化按鈕和MinButton最小化按,當(dāng)值為 True,有最大或最小化按鈕,F(xiàn)alse則無。ControlBox控制菜單框?qū)傩裕渲翟O(shè)置為Ture時(shí),有控件菜單;設(shè)置為False時(shí),則無控件菜單,同時(shí)窗體也無“最大化”按鈕和“最小化”按鈕,即使MaxButton屬性和MinButton屬性設(shè)置為Ture。(7)Picture屬性使用Picture屬性可以指
28、定一幅圖片顯示在窗體的表面上,作為控件的背景。(8)WindowsState屬性0:正常窗口狀態(tài),有窗口邊界;1:最小化狀態(tài),以圖標(biāo)方式運(yùn)行;2:最大化狀態(tài),無邊框,充滿整個(gè)屏幕。(9)字體Font屬性組 FontName屬性是字符型,決定對象上正文的字體(缺省為宋體)。 FontSize屬性是整型,決定對象上正文的字體大小(缺省為9磅)。 FontBold屬性是邏輯型,決定對象上正文是否是粗體(缺省為False)。 FontItalic屬性是邏輯型,決定對象上正文是否是斜體(缺省為False)。 FontStrikeThru屬性是邏輯型,決定對象上正文是否加一刪除線(缺省為False)。 F
29、ontUnderLine屬性是邏輯型,決定對象上正文是否帶下劃線(缺省為False)。(10)AutoRedraw屬性該屬性決定窗體被隱藏或被另一窗口覆蓋之后重新顯示時(shí),是否重新還原該窗體被隱藏或覆蓋以前的畫面。即是否重畫如Circle、Line、Pset和Print等方法的輸出。當(dāng)為True時(shí),重新還原該窗體以前的畫面。當(dāng)為False時(shí),則不重畫。窗體常用事件:窗體常用的事件有Load、Click、DblClick、Activate、Resize等。其中Load事件是當(dāng)窗體被裝入工作區(qū)時(shí)觸發(fā)的事件,常用來在啟動(dòng)應(yīng)用程序時(shí)對屬性和變量進(jìn)行初始化。Activate是當(dāng)一個(gè)窗體成為活動(dòng)窗口時(shí)所觸發(fā)
30、的事件,Resize是當(dāng)窗體大小發(fā)生改變時(shí)所觸發(fā)的事件。窗體常用方法:窗體常用的方法有Print(打印輸出)、Cls(清除)、Show(顯示)、Hide(隱藏)以及(Move)移動(dòng)等。2 在窗體上添加控件圖3-2 設(shè)置啟動(dòng)窗體窗體是設(shè)計(jì)VB應(yīng)用程序的一個(gè)基本平臺,幾乎所有的控件都是添加在窗體上的。對于生成的控件,可以調(diào)整控件大小、移動(dòng)控件位置、使用網(wǎng)格精確定位控件;對于多個(gè)控件,還可以對它們進(jìn)行排列、調(diào)整大小等操作。另外,在VB中還允許可視地創(chuàng)建和編輯控件數(shù)組,這對于編組使用選擇框、命令按鈕等控件提供了很大方便。3 設(shè)置啟動(dòng)窗體在默認(rèn)情況下,應(yīng)用程序中的第一個(gè)窗體被指定為啟動(dòng)窗體。應(yīng)用程序開始
31、運(yùn)行時(shí),此窗體就被顯示出來。如果想在應(yīng)用程序啟動(dòng)時(shí)顯示別的窗體,可以將其他窗體設(shè)置為啟動(dòng)窗體。設(shè)置方法:在“工程”菜單或者“工程資源管理器”快捷菜單中選擇工程“屬性”,會(huì)彈出“工程屬性”對話框,如圖3-2所示,在“啟動(dòng)對象”的選擇列表中選擇窗體名稱即可把該窗體設(shè)為啟動(dòng)窗體。4 實(shí)驗(yàn)舉例例:使用VB建立一個(gè)簡單的應(yīng)用程序,在窗體上輸出“大家好!”“歡迎來到這里”。設(shè)計(jì)思路:窗體上通常是不直接輸出文本信息,一般通過窗體上的對象輸出文本信息。例如,可以用標(biāo)簽輸出“大家好!”,用文本框輸出“歡迎來到這里!”,因此可以在窗體上放置一個(gè)標(biāo)簽、一個(gè)文本框和一個(gè)命令按鈕,單擊命令按鈕,則在標(biāo)簽上顯示“大家好!
32、”,在文本框顯示“歡迎來到這里!”。設(shè)計(jì)步驟:(1)新建工程單擊Windows任務(wù)欄中的“開始”“程序”“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ì)模式,并自動(dòng)創(chuàng)建了一個(gè)窗體模塊Form1,這就是將要建立的應(yīng)用程序的窗體。在這個(gè)窗體上添加控件,即可建立應(yīng)用程序界面。(2)創(chuàng)建應(yīng)用程序界面 設(shè)置窗體屬性圖1-3 例 界面設(shè)計(jì)A在屬性窗口中雙擊
33、“Caption”屬性條,輸入“我的第一個(gè)VB程序”。B在屬性窗口中選擇“BackColor”屬性條,然后單擊右端的箭頭,在所顯示的“調(diào)色板”中選擇一種顏色(例如淺黃色)。 在窗體上添加控件A單擊工具箱中的標(biāo)簽(Label)控件類型圖標(biāo),鼠標(biāo)指針變?yōu)槭中?,再在“對象”窗口的窗體上單擊并拖動(dòng),然后釋放鼠標(biāo)鍵,窗體上就會(huì)出現(xiàn)一個(gè)標(biāo)簽類型的控件對象,同時(shí)鼠標(biāo)指針恢復(fù)為箭頭形狀。B用同樣方法將文本框(TextBox)控件放置在窗體上。C放置命令按鈕(CommandButton)到窗體上。 設(shè)置控件屬性在窗體上選中命令按鈕,然后在屬性窗口中雙擊“Caption”屬性條,輸入“顯示”。通過鼠標(biāo)的幾個(gè)簡單
34、操作,我們已經(jīng)建立好了應(yīng)用程序界面,如圖1-3所示。圖4-4 例 代碼編輯窗口(3)編寫應(yīng)用程序代碼創(chuàng)建好了應(yīng)用程序界面,下面就開始編寫應(yīng)用程序代碼,控制程序的運(yùn)行。編寫的程序具有這樣的功能:當(dāng)用戶在應(yīng)用程序窗體中用鼠標(biāo)單擊“顯示”按鈕時(shí),窗體中的標(biāo)簽上會(huì)顯示“大家好!”,文本框中會(huì)顯示“歡迎來到這里!”。圖3-5 例 運(yùn)行結(jié)果在這里要對“顯示”命令按鈕(Command1)進(jìn)行編程,在窗體上雙擊“顯示”命令按鈕(Command1),會(huì)彈出代碼編輯窗口,在編輯窗口上部左側(cè)的對象列表框中顯示對象名為“Command1”,在右側(cè)的過程列表框中顯示的過程是“Click”,如圖1-4所示。此時(shí),在代碼編
35、輯窗口會(huì)出現(xiàn)如下代碼:Private Sub Command1_Click()End Sub說明我們是對命令按鈕Command1的單擊事件進(jìn)行編程。在這兩條語句之間輸入如下代碼:Label1.Caption = 大家好!Label1.FontName = 宋體Label1.FontSize = 15Label1.FontBold = TrueText1.Text = 歡迎來到這里!Text1.FontName = 黑體Text1.FontSize = 16Text1.FontBold = True至此,我們完成了對命令按鈕Command1(“顯示”按鈕)的編程。(4)運(yùn)行程序點(diǎn)擊工具欄中的“啟
36、動(dòng)”按鈕,開始運(yùn)行程序,單擊命令按鈕(顯示),結(jié)果如圖3-5所示。(5)保存文件圖3-6 窗體文件保存程序在編寫過程中或運(yùn)行結(jié)束后常常要將有關(guān)文件保存到磁盤上,以便以后多次使用。通常一個(gè)工程中會(huì)涉及到多種文件類型,但本例比較簡單,它僅涉及到一個(gè)窗體,因此在保存文件時(shí),只需保存一個(gè)窗體文件和工程文件即可。保存文件的步驟如下:A選擇“文件”“保存Form1”(窗體文件)命令,系統(tǒng)彈出“文件另存為”對話框,提示用戶輸入文件名。如圖3-6所示。用戶在“保存在”文本框選擇保存的文件夾,在“文件名”文本框輸入窗體文件名(后綴名由系統(tǒng)根據(jù)不同的文件類型自動(dòng)添加,這里是.frm)。本例窗體文件名為 vblx.
37、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)行時(shí),我們直接選擇在工具欄單擊“”啟動(dòng)按鈕,或選擇“運(yùn)行”“啟動(dòng)”命令運(yùn)行程序,這時(shí)的運(yùn)行是在解釋運(yùn)行模式下,仍然在VB環(huán)境中。有時(shí)我們需要程序的運(yùn)行能脫離VB環(huán)境,可像任何基于Windows的應(yīng)用程序那樣,雙擊
38、程序文件圖標(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(sno nvarchar(7)primary key,snam
39、e 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ī)系)insert into student values(9512102,劉晨,男,20,計(jì)算機(jī)系)insert into student values(9512103,王敏,女,20,計(jì)算機(jī)系)insert into studen
40、t values(9521101,張立,男,22,信息系)insert into student values(9521102,吳賓,女,21,信息系)insert into student values(9521103,張海,男,20,信息系)insert into student values(9531101,錢小平,女,18,數(shù)學(xué)系)insert into student values(9531102,王大力,男,19,數(shù)學(xué)系)select * from student2、 新建一VB應(yīng)用程序工程文件設(shè)置窗體Form1標(biāo)題欄的Caption屬性為學(xué)生信息管理系統(tǒng)如圖3-8所示圖3-83、
41、 添加對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 Control 6.0 (SP6)和Microsoft Hierarchical FlexGrid Control 6.0 (SP4) (OLEDB)打勾,添加ADO數(shù)據(jù)控件和MS
42、HFlexGrid數(shù)據(jù)網(wǎng)格控件。如圖3-12和3-13所示。圖3-12圖3-13圖3-145、 設(shè)計(jì)應(yīng)用程序界面,界面效果如圖3-15所示,各個(gè)控件的說明及屬性如下表所示。圖3-15窗體及各個(gè)控件名稱說明如圖3-16所示:txtSnotxtSnametxtSsextxtSagetxtSdeptcmdAddNewcmdDeletecmdUpdatetxtFindcmdFindAdodc1cmdFirstcmdPrevcmdNextcmdLastMSHFlexGrid1Form1Label1Label2Label3Label4Label5Label6圖3-16各個(gè)控件屬性說明如下:對象名稱(控件名
43、稱)屬性名稱屬性值Form1caption學(xué)生信息管理系統(tǒng)Label1Caption學(xué)號:Label2Caption姓名:Label3Caption性別:Label4Caption年齡:Label5Caption系部:Label6Caption請輸入要查詢的學(xué)號:txtSnoText空txtSnameText空txtSsexText空txtSageText空txtSdepttext空txtFindtext空cmdFirstCaption第一條cmdPrevCaption上一條cmdNextCaption下一條cmdLastCaption最末條cmdAddNewCaption添加記錄cmdDel
44、eteCaption刪除記錄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è)置數(shù)據(jù)鏈接屬性。在提供程序中選擇Microsoft OLE DB Provider for SQL Server,然后選擇下一步。如圖3-19所示。圖3-19在連接屬性頁中輸入服務(wù)器
45、名稱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,在表或存儲(chǔ)過程中選擇student。如圖3-23。圖3-237、 綁定數(shù)據(jù)控件選擇txtSno文本框控件,在右邊的屬性中設(shè)置DataSource屬性為adodc1,DataField屬性為sno。如圖17所示。選擇txtSname文本框控件,在
46、右邊的屬性中設(shè)置DataSource屬性為adodc1,DataField屬性為sname。參看圖17所示。選擇txtSsex文本框控件,在右邊的屬性中設(shè)置DataSource屬性為adodc1,DataField屬性為ssex。參看圖17所示。選擇txtSage文本框控件,在右邊的屬性中設(shè)置DataSource屬性為adodc1,DataField屬性為sage。參看圖17所示。選擇txtSdept文本框控件,在右邊的屬性中設(shè)置DataSource屬性為adodc1,DataField屬性為sdept。參看圖3-24所示。圖3-248、 編寫第一條、上一條、下一條、最末條按鈕的事件代碼。運(yùn)行程序并測試功能。第一條按鈕事件代碼Private Sub cmdFirst_Click() Adodc1.Recordset.MoveFirstEnd Sub上一條按鈕事件代碼Private Sub
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 品牌授權(quán)店租賃合同協(xié)議
- 2025標(biāo)準(zhǔn)版共有房租賃合同
- 2025正式期勞動(dòng)合同格式范本
- 殘運(yùn)會(huì)訓(xùn)練協(xié)議書范本
- 呈貢縣建筑施工合同協(xié)議
- 正常停播協(xié)議書范本
- 2025年武漢市物業(yè)管理服務(wù)合同備案流程
- 2025年的倉庫租賃合同模板
- 重慶市2025屆高三上學(xué)期一診試題 英語 含解析
- 2025湖南天壹名校聯(lián)盟高三4月大聯(lián)考(婁底二模)地理試題及答案
- 多囊卵巢綜合征-北京大學(xué)第三醫(yī)院婦產(chǎn)科課件
- 國開電大《C語言程序設(shè)計(jì)》形考任務(wù)2答案
- 《猝死的預(yù)防和治療》課件
- 物業(yè)保潔作業(yè)指導(dǎo)書(三甲大型醫(yī)院類)
- 安全技術(shù)交底(模板)
- 2022新大象版科學(xué)五年級下冊必背知識點(diǎn)總結(jié)
- 納稅實(shí)務(wù)(第三版)項(xiàng)目一納稅基礎(chǔ)知識
- 藍(lán)色卡通風(fēng)醫(yī)療健康匯報(bào)PPT模板
- 匯源果汁生產(chǎn)廢水處理工程設(shè)計(jì)
- 裸子植物課件
- 賓館安全保衛(wèi)制度
評論
0/150
提交評論