《數(shù)據(jù)庫原理及應(yīng)用》實驗大綱
本文關(guān)鍵詞:數(shù)據(jù)庫原理及應(yīng)用,由筆耕文化傳播整理發(fā)布。
《數(shù)據(jù)庫原理及應(yīng)用》實驗大綱
關(guān)鍵字: 日期:2016-01-25 04:01:54
《數(shù)據(jù)庫原理及應(yīng)用》上機(jī)實驗教學(xué)大綱 數(shù)據(jù)庫原理及應(yīng)用》上機(jī)實驗
實驗?zāi)夸?br />(1)實驗一 創(chuàng)建 sql server 數(shù)據(jù)庫和表 (6)實驗二 基本表的建立和修改 (7)實驗三 select 語句的使用(一) (8)實驗四 select 語句的使用(二) (9)實驗五 sql 的存儲操作 (10)實驗六 視圖的建立及操作 (11)實驗七 完整性約束的實現(xiàn) (1
2)實驗八 創(chuàng)建觸發(fā)器 (13)實驗九 transact-sql 語句的使用 (14)實驗十 創(chuàng)建存儲過程
實驗一
一、實驗?zāi)康?實驗?zāi)康?br />
創(chuàng)建 sql server 數(shù)據(jù)庫和表
通過實驗使學(xué)生了解 sql server 系統(tǒng)數(shù)據(jù)庫和用戶數(shù)據(jù)庫,掌握 sql server 數(shù)據(jù)庫的創(chuàng)建 方法和數(shù)據(jù)庫對象,了解 sql server2000 的數(shù)據(jù)類型,掌握創(chuàng)建 sql server 表的方法。 二、實驗準(zhǔn)備 1、了解 sql server 數(shù)據(jù)庫結(jié)構(gòu) 、 在 sql server 中, 所有信息都存儲在數(shù)據(jù)庫中。 每個數(shù)據(jù)庫都由物理和邏輯組件兩部分組成。 邏輯組件是用戶在使用 sql server 圖形操作界面看到的,或在程序中訪問的數(shù)據(jù)庫和數(shù)據(jù)庫對 象。比如:數(shù)據(jù)庫名和表名、視圖名、存儲過程名等數(shù)據(jù)庫對象。面數(shù)據(jù)庫的物理組件——文件, 對用戶是透明的,一般只有系統(tǒng)管理員才直接對數(shù)據(jù)庫文件進(jìn)行操作。 每個數(shù)據(jù)庫文件由以下三種組成: (1)主數(shù)據(jù)文件(文件名后輟:.mdf) 。該文件是數(shù)據(jù)庫的基礎(chǔ),每個數(shù)據(jù)庫有且僅有一個 主要的數(shù)據(jù)文件。 (2)次數(shù)據(jù)文件(文件名后輟:.ndf) 。該文件存儲著主數(shù)據(jù)文件沒有包括的內(nèi)容。它不是 每個數(shù)據(jù)庫都必須的。簡單的數(shù)據(jù)庫可以沒有次要數(shù)據(jù)文件,復(fù)雜的數(shù)據(jù)庫可以有多個次要數(shù)據(jù) 文件。 (3)日志文件(文件名后輟:.ldf) 。日志文件記錄著事務(wù)日志信息,每個數(shù)據(jù)庫必須至少 有一個日志文件。 2、了解 sql server 的四個系統(tǒng)數(shù)據(jù)庫及其作用 、 四個系統(tǒng)數(shù)據(jù)庫為: master, model, tempdb, msdb, 它們是正常運(yùn)行 sql server 所必需的, 不 能刪除和隨意修改。其中: master: sql server 的主數(shù)據(jù)庫, 是 保存著 sql server 所有的系統(tǒng)級的信息, 包括登錄信息, 所有的系統(tǒng)配置信息。它還記錄著所有用戶數(shù)據(jù)庫和主數(shù)據(jù)文件的位置,確保用戶數(shù)據(jù)庫的初始 化。 model:是創(chuàng)建新數(shù)據(jù)庫的模板數(shù)據(jù)庫。當(dāng)用戶新創(chuàng)建數(shù)據(jù)庫時,首先將 model 數(shù)據(jù)庫數(shù)據(jù) 庫拷貝到新數(shù)據(jù)庫中。model 數(shù)據(jù)庫可以自定義,任何對 model 數(shù)據(jù)庫的修改,都將在以后新建 數(shù)據(jù)庫時體現(xiàn)出來。 tempdb:臨時數(shù)據(jù)庫,為臨時表和其他臨時工作提供一個臨時的存儲區(qū)域。每次打開 sql server,tempdb 數(shù)據(jù)庫都會重建。 msdb:是 sqlserveragent 的主要支持,用于復(fù)制、任務(wù)調(diào)度、報警、系統(tǒng)操作員信息以及 備份信息。 3、了解 sql server 的兩個示例數(shù)據(jù)庫 、 兩個示例數(shù)據(jù)庫為: pubs 數(shù)據(jù)庫和 northwind 數(shù)據(jù)庫, 是微軟為學(xué)習(xí) sql server 的用戶準(zhǔn)備
1
的例子數(shù)據(jù)庫。熟練用戶可以刪除這兩個數(shù)據(jù)庫。 4、了解 sql server 的常用數(shù)據(jù)類型 了解 下面主要介紹 sql server 的常用數(shù)據(jù)類型: 字符型數(shù)據(jù)、整型數(shù)據(jù)類型、精確數(shù)據(jù)類型、浮 點數(shù)據(jù)類型、貨幣型數(shù)據(jù)類型、日期時間型數(shù)據(jù)類型、統(tǒng)一字符編碼型(unicode)數(shù)據(jù)類型、 布爾數(shù)據(jù)類型。 1)字符型數(shù)據(jù) sql server 提供了三種字符型數(shù)據(jù)類型:char、 varchar、 text。它們可以存儲的數(shù)據(jù)包括: 大寫或小寫字母;數(shù)字;特殊字符,例如:、*、@等。 char[(n)]:表示一個長度為 n 的固定長度字符串,其中 n 最大可以是 8000。 例如用戶定義一個字段為 char(10) not null,如果存儲的字符不足 10 個字符,如: “abcdef” , 則 sql serever 將該字符存儲為“abcdef ” ,即不足 10 個字符部分用空格補(bǔ)齊。如果要存儲 的字符長度超過了允許的字符串長度,那么在執(zhí)行插入語句時,將導(dǎo)致執(zhí)行錯誤。 varchar[(n)]:表示一個長度為 n 的可變長度字符串,其中 n 最大可以是 8000。 varchar 的使用與 char 的數(shù)據(jù)類型相似,只是它的存儲空間與字符串的實際長度相同。 text:如果要存儲的字符超過了 8000 個,則可以使用 text 數(shù)據(jù)類型。 text 字符串是存儲在數(shù)據(jù)記錄以外的大型字符串,長度最多可達(dá) 2gb。在數(shù)據(jù)記錄中,只包 含了一個 16 字節(jié)的文本指針,指向?qū)嶋H的存儲數(shù)據(jù)。 2)整型數(shù)據(jù)類型 用來存儲精確的數(shù)字值,包括以下四類: bigint:是 sql server 2000 新增的數(shù)據(jù)類型,存儲空間為 8 個字節(jié),共 64 位,其中 63 位用 來 存 儲 數(shù) 值 , 一 位 用 來 存 儲 數(shù) 值 的 正 負(fù) 。 能 夠 存 儲 -263 ( -9223372036854775808 ) ~263-1 (9223372036854775807)之間的數(shù)字。 int:存儲空間為 4 個字節(jié),,共 32 位,其中 31 位用來存儲數(shù)值,一位用來存儲數(shù)值的正負(fù)。 可以存儲從-231(-2147483648)~231-1(2147483647)之間的數(shù)字。 smallint:存儲空間為 2 個字節(jié),共 16 位,其中 15 位用來存儲數(shù)值,一位用來存儲數(shù)值的 正負(fù)?梢源鎯-215(-32768)~215-1(32767)之間的數(shù)字。 tinyint:存儲空間為 1 個字節(jié),共 8 位,用來存儲 0~255 之間的數(shù)字。 整型對象或表達(dá)式可以用于所有的數(shù)學(xué)操作,執(zhí)行后,由這些操作生成的小數(shù)部分都將被直 接舍去,而不是四舍五入。 3)精確數(shù)據(jù)類型 包括 decimal 和 numeric 兩種。在 t-sql 中,mumeric 與 decimal 在功能上等效。 一般使用此數(shù)據(jù)類型的表達(dá)式為: decimal(p, s), 其中, 指精度或?qū)ο竽軌蚩刂频臄?shù)字個數(shù); p s 指定可放在小數(shù)點右邊的小數(shù)位數(shù)或數(shù)字個數(shù)。
2
p 和 s 必須滿足以下規(guī)則: 0≤s≤p≤38 4)浮點數(shù)據(jù)類型 包括 float 和 real 兩種。他們所存儲的并不是數(shù)字指定的精確值,而是這些值的最近似值。所 以在字段定義中很少使用。 float[(n)]:可以存儲從-1.79e+308~1.79e+308 之間的所有浮點數(shù)。如果 0≤n≤24,則精度 為 7 個有效數(shù)字,存儲空間為 4 個字節(jié);如果 25≤n≤53,則精度為 15 個有效數(shù)字,存儲空間為 8 個字節(jié)。 real:存儲從-3.40e+38~3.40e+38,存儲空間為 4 個字節(jié)。 5)貨幣型數(shù)據(jù)類型 包括 money 和 smallmoney 兩種。 money 數(shù)據(jù)類型存儲從(-922337203685477.5808)~(922337203685477.5807)之間的數(shù)值. 存儲空間為 8 個字節(jié),前 4 個字節(jié)表示貨幣的整數(shù)部分,后 4 個字節(jié)表示貨幣值的小數(shù)部分。 smallmoney 數(shù)據(jù)類型存儲從(-214748.3648)~(214748.3647)之間的數(shù)值。存儲空間為 4 個字節(jié)。 6)日期時間型數(shù)據(jù)類型 包括 datetime 和 smalldatetime 兩種,用來存儲日期和時間的組合數(shù)據(jù)。用戶可以使用 sql server 提供的函數(shù)直接進(jìn)行日期時間的運(yùn)算,比如:兩個日期的遠(yuǎn)近比較、日期值的計算等。 datetime: 可以存儲從 1753 年 1 月 1 日到 9999 年 12 月 31 日所有的時間, 精確度為 1/300s。 需要 8 個字節(jié)存儲空間。 smalldatetime: 可以存儲從 1900 年 1 月 1 日到 2079 年 12 月 31 日所有的時間, 精確度為 1s。 需要 4 個字節(jié)的存儲空間。 7)統(tǒng)一字符編碼型(unicode)數(shù)據(jù)類型 該數(shù)據(jù)類型使用當(dāng)前最新的 unicode 編碼數(shù)據(jù)而設(shè)定。ascii 碼使用一個字節(jié)編碼每個字符, 故最多只能表示 256 個不同的字符。而 unicode 編碼提供采用雙字節(jié)編碼每個字符的方法,最多 可提供 65536 個雙字節(jié)字符,解決了像中文、日文漢字、韓文等雙字節(jié)字符的存儲問題。 支持雙字節(jié)的數(shù)據(jù)類型有:nchar、nvarchar、ntext,他們?nèi)龑傩院陀梅ǚ謩e與 char、varchar、 text 相同,但存儲 unicode 字符所需要的空間更大,所以 nchar 和 nvarchar 數(shù)據(jù)類型最多只可存儲 4000 個字符。 8)布爾數(shù)據(jù)類型 sql server 的布爾數(shù)據(jù)類型的取值只能為 1、0 或空值。該數(shù)據(jù)類型用于存儲只有兩種可能 值的數(shù)據(jù),如:yes 或 no、true 或 false、on 或 off 等。 三、實習(xí)內(nèi)容 (1)啟動 ms sql server 服務(wù),打開“企業(yè)管理器” 。
3
(2)單擊“企業(yè)管理器”左邊“控制臺根目錄”樹結(jié)構(gòu)中的 sql server group(服務(wù)組) , 使其展開;再展開服務(wù)組下面的 sql server 服務(wù)器(安裝 sql server 時的服務(wù)器名) 。 (3)展開“數(shù)據(jù)庫” ,用戶可見 sql server 自帶的四個系統(tǒng)數(shù)據(jù)庫和兩個示例數(shù)據(jù)庫。 (4)在“企業(yè)管理器”中創(chuàng)建名為 grademanager 的數(shù)據(jù)庫。 實驗步驟: 1) 選中 “數(shù)據(jù)庫” (database) 單擊鼠標(biāo)右鍵, , 在其彈出菜單中選擇 “新建數(shù)據(jù)庫……” (new database……) 。 2)在隨后出現(xiàn)的“新建數(shù)據(jù)庫”對話框的“名稱”一欄中,輸入數(shù)據(jù)庫名:grademanager, 也可通過“新建數(shù)據(jù)庫”對話框更改數(shù)據(jù)庫文件的存放路徑(默認(rèn)路徑在 ms sql server 安裝目 錄的..mssqldata下) 。幾秒鐘后在 database 一欄中可見新建的數(shù)據(jù)庫。 3)展開新建的數(shù)據(jù)庫,會發(fā)現(xiàn)數(shù)據(jù)庫中已有了以下目錄結(jié)構(gòu),稱之為數(shù)據(jù)庫對象: 關(guān)系圖(diagram) 表(table) 視圖(view) 存儲過程(stored procedure) 用戶(user) 角色(role) 規(guī)則(ruler) 默認(rèn)(default) 用戶定義的數(shù)據(jù)類型(user defined data type) 用戶定義的函數(shù)(function) 新建數(shù)據(jù)庫的這些對象,都是從 model 數(shù)據(jù)庫中復(fù)制來的。 (5)在 grademanager 數(shù)據(jù)庫中,創(chuàng)建表。 實驗步驟: 1)打開“查詢分析器” 。 2)在“查詢分析器”的工具欄的數(shù)據(jù)庫下拉選擇框中,選中 grademanager,使之成為當(dāng)前 操作的數(shù)據(jù)庫,在編輯框中鍵入下列 sql 語句,創(chuàng)建 worker 表: create table worker( wno char(4) primary key, wname char(8) not null, wsex char(2) not null, wbirthday datetime ); 3)按編輯框上方圖形菜單中的綠色箭頭按鈕,執(zhí)行編輯框中的 sql 語句。 4)清空上面的 sql 語句,然后輸入: select * from worker;
4
5)按編輯框上方圖形菜單中的綠色箭頭按鈕,執(zhí)行 select 語句,結(jié)果為空。 6)在“企業(yè)管理器”中展開數(shù)據(jù)庫→展開 grademanager 數(shù)據(jù)庫→選中 table,右擊鼠標(biāo)→ 選擇刷新,可見右邊出現(xiàn)新建的 worker 表。 7)選中 worker 表,右擊鼠標(biāo)→打開表,可見 worker 表中記錄為空。 四、實習(xí)報告內(nèi)容 (1)寫出在“企業(yè)管理器”中創(chuàng)建數(shù)據(jù)庫的一般步驟; (2)寫出在“查詢分析器”中創(chuàng)建表的一般步驟。 五、思考題 (1)sql server 的數(shù)據(jù)庫文件有幾種后綴名分別是什么 (2)sql server 2000 中,有哪幾種整型數(shù)據(jù)類型它們占用的存儲空間分別是多少取值 范圍分別是什么
5
實驗二
基本表的建立和修改
一、實習(xí)目的 通過建立基本表和向表中輸入記錄,加深學(xué)生對關(guān)系數(shù)據(jù)模型中型和值概念的理解;學(xué)會對 基本表進(jìn)行修改、刪除和建立索引等基本操作。 二、實習(xí)準(zhǔn)備 (1)復(fù)習(xí)第 2 章 2.2、2.3 節(jié)基本表、索引的創(chuàng)建、刪除和修改操作; (2)復(fù)習(xí) create table、create index、alter table、drop table 等命令; (3)復(fù)習(xí) insert、update、delete 命令的使用; (4)完成習(xí)題二第 13、14 題(p54)中和各項操作。 三、實習(xí)內(nèi)容 (1)啟動 mssql server 服務(wù),打開 enterprise manager 和 query analyzer。 (2) query analyzer 中用 create table 命令在實驗一創(chuàng)建的 grademanager 數(shù)據(jù)庫中定義基 在 本表: 學(xué)生表 (student)課程表 、 (course)利用 enterprise manager 的圖形化功能建立班級表 、 (class) 以及成績表(grade) 。表結(jié)構(gòu)如下: 表一: student 屬性名
sno sname ssex sage clno
表三: class 可否 為空
否 否 否 可 否
數(shù)據(jù)類型
char(7) varchar(20) char(2) smallint char(5)
含義
學(xué)號(唯一) 學(xué)生姓名 性別 年齡 學(xué)生所在班級
屬性名 clno speciality inyear number monitor
數(shù)據(jù)類型 char(5) varchar(20) char(4) integer char(7)
可否 為空 否 否 否 可 否
含義 班級號(唯一) 班級所在專業(yè) 入校年份 班級人數(shù) 班長學(xué)號
表二: course
屬性名 cno cname credit precno 數(shù)據(jù)類型 char(1) varchar(20) smallint char(1) 可否 為空 否 否 可 可 含義 課程號(唯一) 課程名稱 學(xué)分 先修課
表四: grade
屬性名 sno cno gmark 數(shù)據(jù)類型 char(7) char(1) numeric(4,1) 可否 為空 否 否 可 學(xué)號 課程號 成績(百分制) 含義
6
(3)驗證習(xí)題二第 14 題中的各項操作。 五、思考題 在定義基本表語句時,not null 參數(shù)的使用有何作用
7
實驗三
select 語句的使用(一) 語句的使用(
一、實習(xí)目的 掌握 select 的基本使用格式,能使用 sql server 對表作簡單的查詢。 二、實習(xí)準(zhǔn)備 (1)復(fù)習(xí)第 2 章 2. 4 節(jié)中 select 語句的基本使用格式。 (2)復(fù)習(xí) sql 中五種庫函數(shù):avg、sum、max、min、count。 (3)完成下列各題中的各項操作的 sql 語句: 15-1:找出所有被學(xué)生選修了的課程號; 15-2:找出 01311 班女學(xué)生的個人信息; 15-3:找出 01311 班、01312 班學(xué)生的姓名、性別、出生年份; 15-4:找出所有姓李的學(xué)生的個人信息; 15-5:找出學(xué)生李勇所在班級的學(xué)生人數(shù); 15-6:找出課程名為操作系統(tǒng)的平均成績、最高分、最低分; 15-7:找出選修了課程的學(xué)生人數(shù); 15-8:找出選修了課程“操作系統(tǒng)”的學(xué)生人數(shù); 15-9:找出 2000 級計算機(jī)軟件班的成績?yōu)榭盏膶W(xué)生姓名. 三、實習(xí)內(nèi)容 (1)驗證實習(xí)準(zhǔn)備(3)中各題的 sql 語句是否正確. (2)試一下下列語句是否正確: select eno, basepay, service from salary where basepay
本文關(guān)鍵詞:數(shù)據(jù)庫原理及應(yīng)用,由筆耕文化傳播整理發(fā)布。
本文編號:288663
本文鏈接:http://sikaile.net/wenshubaike/dxkc/288663.html