實(shí)
驗(yàn)
報(bào)
告
實(shí)驗(yàn)課程:
數(shù)據(jù)庫原理與應(yīng)用
學(xué)生姓名:
郝君
學(xué) 學(xué)
號:
6104113035
專業(yè)班級: 信息管理與信息系統(tǒng) 131 班
5 2015 年 年 6 06 月
20 日
目 目
錄 一、 實(shí)驗(yàn)一 實(shí)驗(yàn)環(huán)境的建立„„„„„„„„„„„„„„3
二、 實(shí)驗(yàn)二 數(shù)據(jù)庫及表的建立„„„„„„„„„„„„„9 三、 實(shí)驗(yàn)三 表的查詢„„„„„„„„„„„„„„„„„12 四、 實(shí)驗(yàn)四 數(shù)據(jù)操縱„„„„„„„„„„„„„„„„„19 五、 實(shí)驗(yàn)五 數(shù)據(jù)庫完整性、安全性研究„„„„„„„„„22 六、 實(shí)驗(yàn)六 簡單系統(tǒng)的設(shè)計(jì)„„„„„„„„„„„„„„
南昌大學(xué)實(shí)驗(yàn)報(bào)告
學(xué)生姓名:
學(xué)
號:
專業(yè)班級:
信息管理
實(shí)驗(yàn)類型:□ 驗(yàn)證 □ 綜合 □ 設(shè)計(jì) □ 創(chuàng)新
實(shí)驗(yàn)日期:
實(shí)驗(yàn)成績:
一、實(shí)驗(yàn)項(xiàng)目名稱:實(shí)驗(yàn)環(huán)境的建立 二、實(shí)驗(yàn)?zāi)康? 1.了解 SQL Server 2000 常用版本與對操作系統(tǒng)的不同要求
2.熟悉 SQL Server 2000 的基本性能 3.正確安裝與配置 SQL Server 2000 三、實(shí)驗(yàn)基本原理 SQL 就是結(jié)構(gòu)化查詢語言(Structured Query Language)的簡稱,就是一種特殊目的的編程語言,就是一種數(shù)據(jù)庫查詢與程序設(shè)計(jì)語言,用于存取數(shù)據(jù)以及查詢、更新與管理關(guān)系數(shù)據(jù)庫系統(tǒng)。SQL 就是高級的非過程化編程語言,允許用戶在高層數(shù)據(jù)結(jié)構(gòu)上工作。它不要求用戶指定對數(shù)據(jù)的存放方法,也不需要用戶了解具體的數(shù)據(jù)存放方式,所以具有完全不同底層結(jié)構(gòu)的不同數(shù)據(jù)庫系統(tǒng), 可以使用相同的結(jié)構(gòu)化查詢語言作為數(shù)據(jù)輸入與管理的接口。結(jié)構(gòu)化查詢語言語句可以嵌套,這使它具有極大的靈活性與強(qiáng)大的功能。
自 SQL 成為國際標(biāo)準(zhǔn)語言之后,各個(gè)數(shù)據(jù)庫廠家紛紛推出各自的 SQL 軟件或與 SQL 的接口軟件。這就使大多數(shù)數(shù)據(jù)庫均用 SQL 作為共同的數(shù)據(jù)存取語言與標(biāo)準(zhǔn)接口,使不同數(shù)據(jù)庫系統(tǒng)之間的互操作有了共同的基礎(chǔ)。
SQL Server 就是一個(gè)關(guān)系數(shù)據(jù)庫管理系統(tǒng),它最初就是由 Microsoft Sybase 與Ashton-Tate 三家公司共同開發(fā)的,于 1988 年推出了第一個(gè) OS/2 版本。在 Windows NT 推出后,Microsoft 將 SQL Server 移植到 Windows NT 系統(tǒng)上,專注于開發(fā)推廣 SQL Server 的Windows NT 版本。SQL Server 2000 就是 Microsoft 公司推出的 SQL Server 數(shù)據(jù)庫管理系統(tǒng)的一個(gè)版本。該版本繼承了 SQL Server 7、0 版本的優(yōu)點(diǎn)同時(shí)又比它增加了許多更先進(jìn)的功能,具有使用方便,可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點(diǎn),可跨越從運(yùn)行 Microsoft Windows 98 的膝上型電腦到運(yùn)行 Microsoft Windows 2000 的大型多處理器的服務(wù)器等多種平臺(tái)使用。
四、主要儀器設(shè)備及耗材 相互連成 LAN 的計(jì)算機(jī) 2 臺(tái)以上,windows 2000 server 操作系統(tǒng),SQL Server 2000 安裝標(biāo)準(zhǔn)版安裝軟件。
五、實(shí)驗(yàn)步驟 1. 安裝 SQL Server 2000:將安裝光盤放入 CD-ROM,將自動(dòng)彈出“SQL Server 自動(dòng)菜單”界面,如果沒有自動(dòng)彈出則選擇光盤根目錄下的 autorun、exe,雙擊運(yùn)行:
選擇運(yùn)行“安裝 SQL Server 2000 組件”進(jìn)入安裝組件界面,選擇“安裝數(shù)據(jù)庫服務(wù)器”。進(jìn)入安裝界面后,按照安裝提示進(jìn)行安裝;一般需要人工進(jìn)行干預(yù)的有: ? 選擇安裝類型與安裝路徑:安裝類型有:典型安裝、最小安裝、與自定義安裝。安裝路徑就是指 SQL Server 的系統(tǒng)文件與數(shù)據(jù)文件的安裝位置。默認(rèn)情況下“安裝類型”就是典型安裝,“安裝路徑”就是操作系統(tǒng)設(shè)定的“Program Files”文件夾。您可以自行改變,初次安裝最好不要改變她,按默認(rèn)情況使用; ? 配置啟動(dòng)服務(wù)的帳號:有兩類用戶帳號:一類就是與 Windows 操作系統(tǒng)的集成帳號,一類就是混合帳號。選擇第一類帳號進(jìn)行安裝; 2. 配置服務(wù)器端網(wǎng)絡(luò)庫:SQL Server支持多種網(wǎng)絡(luò)庫,這些網(wǎng)絡(luò)庫必須與操作系統(tǒng)的網(wǎng)絡(luò)協(xié)議共同工作,才能實(shí)現(xiàn)客戶機(jī)與數(shù)據(jù)庫服務(wù)器的通信。安裝完成后,可以通過操作系統(tǒng)的開始菜單操作:“開始”―>SQL Server”->“數(shù)據(jù)庫服務(wù)器網(wǎng)絡(luò)配置”進(jìn)行配置; 3. 配置客戶端網(wǎng)絡(luò)庫:客戶機(jī)要與數(shù)據(jù)庫服務(wù)器通信,必須安裝有與服務(wù)器網(wǎng)絡(luò)庫一樣的網(wǎng)絡(luò)庫。可以通過操作系統(tǒng)的開始菜單操作:“開始”―>SQL Server”->“客戶端網(wǎng)絡(luò)配置”進(jìn)行配置; 4. 使用“企業(yè)管理器”:(1)了解企業(yè)管理器的界面、菜單結(jié)構(gòu)以及各項(xiàng)功能;(2)了解“數(shù)據(jù)庫服務(wù)器”的屬性配置;(3)了解“數(shù)據(jù)庫”的屬性配置;(4)初步了解數(shù)據(jù)庫、表、視圖、用戶、安全管理,復(fù)制等概念; 5. 使用查詢分析器:進(jìn)入查詢分析器 ,在分析器中輸入語句: use pubs
select * from authors
運(yùn)行觀瞧結(jié)果 六、實(shí)驗(yàn)數(shù)據(jù)及處理結(jié)果
七、思考討論題或體會(huì)或?qū)Ω倪M(jìn)實(shí)驗(yàn)的建議
1、 查詢分析器的作用就是什么?可以有幾種啟動(dòng)查詢分析器的方法? 分析分析器與數(shù)據(jù)庫的關(guān)系;怎樣在分析器中選擇不同的數(shù)據(jù)庫;怎樣在分析器中查瞧數(shù)據(jù)庫的結(jié)構(gòu)?
答: 查詢分析器的作用就是: 1、 創(chuàng)建查詢與其它 SQL 腳本,并針對 SQL Server 數(shù)據(jù)庫執(zhí)行它們。("查詢"窗口) 2、,由預(yù)定義腳本快速創(chuàng)建常用數(shù)據(jù)庫對象。(模板) 3、快速復(fù)制現(xiàn)有數(shù)據(jù)庫對象。(對象瀏覽器腳本功能) 4、在參數(shù)未知的情況下執(zhí)行存儲(chǔ)過程。(對象瀏覽器過程執(zhí)行功能) 5、調(diào)試存儲(chǔ)過程。(T-SQL 調(diào)試程序) 6、調(diào)試查詢性能問題。(顯示執(zhí)行計(jì)劃、顯示服務(wù)器跟蹤、顯示客戶統(tǒng)計(jì)、索引優(yōu)化向?qū)? 7、在數(shù)據(jù)庫內(nèi)定位對象(對象搜索功能),或查瞧與使用對象。(對象瀏覽器)
8、快速插入、更新或刪除表中的行。("打開表"窗口) 9、為常用查詢創(chuàng)建鍵盤。(自定義查詢 HYPERLINK 快捷方式功能) 10、向"工具"菜單添加常用命令。(自定義"工具"菜單功能)
啟動(dòng)查詢分析器的方法:
1、在“開始”菜單中依次選擇“所有程序|Microsoft SQL Server|查詢分析器”打開查詢分析器。
2、在“開始”菜單中依次選擇“所有程序|Microsoft SQL Server|企業(yè)管理器”打開企業(yè)管理器后,單擊菜單欄中的“工具”選項(xiàng),選擇“SQL 查詢分析器”,即可打開查詢分析器。
分析器與數(shù)據(jù)庫的關(guān)系:
在分析器中可以對數(shù)據(jù)庫及數(shù)據(jù)庫中的表進(jìn)行一系列的操作,如查詢與更撰。
在分析器中選擇不同的數(shù)據(jù)庫的方法:
在工具欄中“當(dāng)剌數(shù)據(jù)庫”欄目中,點(diǎn)擊小黑三角,在彈凸的下拉列表中選擇要倇換的數(shù)據(jù)庫名稱即可實(shí)現(xiàn)數(shù)據(jù)庫的切換。
在分析器中查瞧 數(shù)據(jù)庫的結(jié)構(gòu):
在“對象瀏覽器”窗口不,單擊要查瞧的數(shù)據(jù)庫名稱前的“+”,使其變?yōu)?ldquo;-”展開數(shù)據(jù)庫,就可瞧到數(shù)據(jù)庫的結(jié)構(gòu),若要查瞧其中某一遹的結(jié)構(gòu),仍就是單擊要查瞧項(xiàng)目名稱前的“弫”。例如要查瞧表 s 的結(jié)構(gòu),可依次展開“用戶表”、“dbo、s”、“列”,即可查瞧 s 的結(jié)構(gòu)。
2、遇到的問題及解決的方法
SQL2000 太過老舊,無法在 win7,win8 上運(yùn)行。
解決辦法:使用虛擬機(jī)裝 XP 系統(tǒng),XP 系統(tǒng)支持 SQL2000、 3、體會(huì)或建議
SQL2000 的安裝與其她的軟件安裝類似。但就是這個(gè)軟件所支持的平臺(tái)太過老舊,我們教學(xué)應(yīng)該跟緊時(shí)代腳步,學(xué)習(xí)新的 SQL 版本。
八、參考資料 1.《數(shù)據(jù)庫系統(tǒng)實(shí)驗(yàn)指導(dǎo)》,單建魁等著,清華大學(xué)出版社
南昌大學(xué)實(shí)驗(yàn)報(bào)告
學(xué)生姓名:
學(xué)
號:
專業(yè)班級:
信息管理
實(shí)驗(yàn)類型:□ 驗(yàn)證 □ 綜合 □ 設(shè)計(jì) □ 創(chuàng)新
實(shí)驗(yàn)日期:
實(shí)驗(yàn)成績:
一、實(shí)驗(yàn)項(xiàng)目名稱:數(shù)據(jù)庫及表的建立 二、實(shí)驗(yàn)?zāi)康? 1.鞏固數(shù)據(jù)庫的基礎(chǔ)知識
2.掌握創(chuàng)建數(shù)據(jù)庫的兩種方法,掌握表的建立與刪除方法,掌握修改表結(jié)構(gòu)的基本方法
3.掌握對數(shù)據(jù)庫與表的相關(guān)操作方法 三、實(shí)驗(yàn)基本原理 SQL 即結(jié)構(gòu)化查詢語言,就是關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言,SQL 就是一個(gè)綜合的、功能極強(qiáng)同時(shí)又簡潔易學(xué)的語言。它集數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)定義與數(shù)據(jù)控制功能于一體。
在 SQL server 2000 中,建立數(shù)據(jù)庫既可以在查詢分析器中使用 sql 語句來實(shí)現(xiàn),也可以在企業(yè)管理器中使用菜單命令直接創(chuàng)建。同樣的表的建立與刪除,以及修改表結(jié)構(gòu)也有這兩種
方法。
創(chuàng)建數(shù)據(jù)庫的 SQL 語句: create database <數(shù)據(jù)庫名> 創(chuàng)建表的 SQL 語句: create table <表名>(<列名><數(shù)據(jù)類型>[列級完整性約束條件]
[,<列名><數(shù)據(jù)類型>[列級完整性約束條件]]
、、、、、、、、
[,<表級完整性約束條件>]); 刪除基本表的 SQL 語句: drop table <表名>[restrict|cascade]; 修改表的結(jié)構(gòu)的 SQL 語句: alter table <表名>
[add <新列名><數(shù)據(jù)類型>[完整性約束]]
[drop <完整性約束名>]
[alter column<列名><數(shù)據(jù)類型>]; 其中,add 子句用于增加新列與新的完整性約束條件,drop 字句用于刪除指定的完整性約束條件,alter column 子句用于修改原有的列定義,數(shù)據(jù)類型。
四、主要儀器設(shè)備及耗材 相互連成 LAN 的計(jì)算機(jī) 2 臺(tái)以上,安裝有 SQL Server 2000 軟件。
五、實(shí)驗(yàn)步驟
1.創(chuàng)建數(shù)據(jù)庫 (1)使用查詢分析器創(chuàng)建數(shù)據(jù)庫
打開查詢分析器,輸入如下的 sql 命令:create database Demo。執(zhí)行命令后即建立一個(gè)名為“Demo”的數(shù)據(jù)庫。
(2)使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫
打開企業(yè)管理器,在左邊的小窗口中依次展開目錄,找到數(shù)據(jù)庫文件夾,在數(shù)據(jù)庫文件夾處右擊,選擇“新建數(shù)據(jù)庫”命令,在彈出的數(shù)據(jù)庫屬性對話框中輸入數(shù)據(jù)庫的名稱“Demo”,即可完成創(chuàng)建。
2.查瞧數(shù)據(jù)庫屬性
在查詢分析器中,輸入如下的 sql 命令: exec sp_helpdb Demo
執(zhí)行命令后查瞧 Demo 的相關(guān)屬性 3.創(chuàng)建表 (1)打開查詢分析器,在工具欄中切換數(shù)據(jù)庫至新建的“Demo”,輸入如下命令: create table Student( Sno char(10) PRIMARY KEY, Sname char(8),Ssex char(8),Sage SMALLINT,Sdept char(10) ); 來創(chuàng)建學(xué)生表 Student。
采用同樣的方法創(chuàng)建表課程表 Course、選課表 SC。創(chuàng)建的語句如下所示。
create table Course( Cno char(10),Cname char(10),Cpno char(8),Ccredit SMALLINT );來創(chuàng)建課程表 Course。
create table SC( Sno char(10),Cno char(8),Grade char(8) );來創(chuàng)建選課表 SC。
(2)可以使用如 insert
into
Student
values("2015052201","夜神月","男",19,"CS"); 的命令向Student 表中輸入數(shù)據(jù),也可以在企業(yè)管理器中找到 Student 表后,右擊選擇“打開表|返回所有行”命令來向表中直接輸入數(shù)據(jù)。
4.修改表結(jié)構(gòu) 1)向 Course 表中增加“Tname”這一列。
alter table Course add Tname char(5); 對課程表增加一列教師名稱。
5.刪除表
使用 DROP TABLE<表名>[restrict|cascade]; 刪除表。
或者直接在對象瀏覽器窗口中選中表后右擊刪除表。
六、實(shí)驗(yàn)數(shù)據(jù)及處理結(jié)果 創(chuàng)建的數(shù)據(jù)庫名稱為“Demo”,又在其下創(chuàng)建了三個(gè)表,分別為學(xué)生表“Student”(表 1)、課程表“Course”(表 2)與選課表“SC”(表 3)。
圖一
圖二
圖三 七、思考討論題或體會(huì)或?qū)Ω倪M(jìn)實(shí)驗(yàn)的建議 1、說明數(shù)據(jù)庫與表的關(guān)系? 答 答:一個(gè) SQL 數(shù)據(jù)庫就是由多個(gè)表構(gòu)成的,即數(shù)據(jù)庫就是表的匯集,就是表的主要組成部分。
表在數(shù)據(jù)庫中就是存儲(chǔ)數(shù)據(jù)的方式。
2、遇到的問題及解決的方法 答 答:在修改學(xué)號時(shí)提示輸入的值與數(shù)據(jù)類型不一致,或者此值與列的長度不一致。
解決辦法:多打了空格。刪去控制字節(jié)數(shù)。
3.體會(huì)或建議 答 答:企業(yè)管理器與查詢分析器各有優(yōu)勢。企業(yè)管理器中輸入數(shù)據(jù)方便,查詢分析器方便進(jìn)行查詢等操作。
八、參考資料 1.《數(shù)據(jù)庫系統(tǒng)實(shí)驗(yàn)指導(dǎo)》,單建魁等著,清華大學(xué)出版社
南昌大學(xué)實(shí)驗(yàn)報(bào)告
學(xué)生姓名:
學(xué)
號:
專業(yè)班級:
信息管理
實(shí)驗(yàn)類型:□ 驗(yàn)證 □ 綜合 □ 設(shè)計(jì) □ 創(chuàng)新
實(shí)驗(yàn)日期:
實(shí)驗(yàn)成績:
一、實(shí)驗(yàn)項(xiàng)目名稱:表的查詢
二、實(shí)驗(yàn)?zāi)康? 1.了解查詢的概念與方法,掌握查詢分析器的使用方法
2.掌握 select 語句的語法與作用
3.掌握多表連接的方法,能熟練進(jìn)行多表操作的復(fù)雜檢索 三、實(shí)驗(yàn)基本原理
數(shù)據(jù)庫查詢就是數(shù)據(jù)庫的核心操作。SQL 提供了 SELECT 語句進(jìn)行數(shù)據(jù)庫的查詢,該語句具有靈活的使用方式與豐富的功能。其一般格式為: SELECT [ALL | DISTINCT ]<目標(biāo)列表達(dá)式>[,<目標(biāo)列表達(dá)式>]、、、、、、、 FROM <表名或視圖名>[,<表名或視圖名>]、、、、、、 [WHERE <條件表達(dá)式>] [GROUP BY <列名 1>[ HAVING <條件表達(dá)式>] ] [ORDER BY <列名 2>[ASC | DESC ] ]; 整個(gè) SELECT 語句的含義就是,根據(jù) WHERE 子句的條件表達(dá)式,從 FROM 子句指定的基本表或視圖中找出滿足條件的元組,再按SELECT子句中的目標(biāo)列表達(dá)式,選出元組中的屬性值形成結(jié)果表。
如果有GROUP BY子句,則將結(jié)果按<列名1>的值進(jìn)行分組,該屬性列值相等的元組為一個(gè)組。通常會(huì)在每組中作用聚集函數(shù)。如果 GROUP BY 子句帶 HAVING 短語,則只有滿足指定條件的組才予以輸出。
如果有 ORDER BY 子句,則結(jié)果還要按<列名 2>的值的升序或降序排列。
SELECT 語句既可以完成簡單的單表查詢,也可以完成復(fù)雜的連接查詢與嵌套查詢。
視圖就是從一個(gè)或幾個(gè)基本表(或視圖)導(dǎo)出的表。它與基本表不同,就是一個(gè)虛表。數(shù)據(jù)庫中只存放視圖的定義,而不存放視圖對應(yīng)的數(shù)據(jù),這些數(shù)據(jù)仍存放在原來的基本表中。視圖已經(jīng)定義,就可以與基本表一樣被查詢、被刪除。也可以在一個(gè)視圖之上再定義新的視圖,但對視圖的更新(增、刪、改)操作則有一定的限制。
SQL 語言用 CREATE VIEW 命令建立視圖,其一般格式為 CREATE VIEW<視圖名>[(<列名>[,<列名>]、、、、)]
AS <子查詢>
[WITH CHECK OPTION]; 其中,子查詢可以就是任意復(fù)雜的 SELECT 語句,但通常不允許含有 ORDER BY 子句與DISTINCT 短語。
WITH CHECK OPTION 表示對視圖進(jìn)行 UPDATE,INSERT 與 DELECT 操作時(shí)要保證更新、插入或刪除的行滿足視圖定義中的謂詞條件(即子查詢中的條件表達(dá)式)。
刪除視圖的格式為 DROP VIEW<視圖名>[CASCADE]; 視圖定義后就可以像對基本表一樣對視圖進(jìn)行查詢了。
四、主要儀器設(shè)備及耗材 相互連成 LAN 的計(jì)算機(jī) 2 臺(tái)以上,安裝有 SQL Server 2000 軟件。
五、實(shí)驗(yàn)步驟 1.單表查詢 (1)了解 select 語句的語法 (2)輸入一些檢索數(shù)據(jù),進(jìn)行簡單的檢索,并使用 top,distinct 等關(guān)鍵字
查詢所有學(xué)生的詳細(xì)情況: select * from Student; 查詢選修了課程的學(xué)生學(xué)號: select distinct Sno from SC; 查詢考試成績低于 80 分的學(xué)生學(xué)號 select distinct Sno from SC where Grade<80; 查詢學(xué)號為 2015052201 的學(xué)生的詳細(xì)情況
select * from Student where Sno ="2015052201"; 查詢年齡在 18-19 歲之間的學(xué)生的姓名、系別與年齡: select Sname,Sdept,Sage from Student where Sage between 18 and 19; 查詢計(jì)算機(jī)科學(xué)系 CS 的學(xué)生姓名與性別: select Sname,Ssex from Student where Sdept in("CS"); 查詢不就是數(shù)學(xué)系 MA 的學(xué)生姓名與性別: select Sname,Ssex from Student where Sdept not in("MA"); 查詢選修了 1 號課程的學(xué)生學(xué)號及成績,查詢結(jié)果按分?jǐn)?shù)降序排列: select Sno,Grade from SC where Cno="1" order by Grade DESC; 查詢選課學(xué)生的情況,查詢結(jié)果按課程號升序排列,同一門課程按學(xué)號降序排列: select * from SC order by Cno,Sno DESC; 查詢選修了 1 號課程的學(xué)生的最高分: select max(grade) from SC where Cno="1"; 求出各個(gè)課程號及相應(yīng)的選課人數(shù): select Cno,count(distinct Sno)from SC group by Cno; 2.多表查詢
(1)連接查詢 查詢計(jì)算機(jī)科學(xué)系 CS 年齡在 20 歲以下的學(xué)生姓名: select distinct Sname from Student,SC where Sdept="CS"and Sage<20; 查詢選修了 4 號課程且成績在 85 分以上的所有學(xué)生: select Student、Sno,Student、Sname from Student,SC
where Student、Sno=SC、Sno and SC、Cno="4" and grade>85;
查詢學(xué)生 131003 的平均分
select avg(Grade) as average from SC,Course where Sno="2015052206"and SC、Cno=Course、Cno;
(2)嵌套查詢
查詢選修了 6 號課程且成績在 80 分以上的所有學(xué)生
select Student、Sno,Student、Sname from Student,SC where Student、Sno=SC、Sno and SC、Cno="6" and grade>80;
查詢與遠(yuǎn)坂凜同樣專業(yè)的學(xué)生: select Sno,Sname from Student where Sdept in(select Sdept from Student where Sname="遠(yuǎn)坂凜"); 查詢已經(jīng)選課“操作系統(tǒng)”的學(xué)生的姓名
select Sname From Student where
exists(select * from SC where Sno=Student、Sno and Cno="4");
找出每個(gè)學(xué)生超過她選修課程平均成績的課程號 select Sno, Cno from SC x
where grade>(select avg(Grade)from SC y where y、Sno=x、Sno); 3.視圖的建立及使用視圖進(jìn)行檢索 建立 CS 系學(xué)生的視圖,并要求進(jìn)行修改與插入操作時(shí)仍需保證該視圖只有該系的學(xué)生: create view CS_Student as select Sno,Sname,Sage,Ssex from Student where Sdept="CS"
建立一個(gè)由學(xué)生學(xué)號與她的平均成績定義的視圖: create view S_G(Sno,Gavg) as select Sno,avg(Grade)from Student group by Sno 刪除視圖 CS_Student:
drop view CS_Student; 在 S_G 視圖中查詢平均成績在 80 分以上的學(xué)生學(xué)號與平均成績: select Sno,Gavg from S_G where Gavg>=80; 將 CS_Student 視圖中學(xué)號為 10 的學(xué)生姓名改為“桐人”: update CS_Student set Sname="桐人"where Sno="10"; 向 CS_Student 視圖中插入一個(gè)新的學(xué)生記錄,學(xué)號為 2015052211,姓名為新一,男,20 歲。
insert into CS_Student values("2015052211","新一","20","男"); 刪除信息管理系學(xué)生視圖中學(xué)號為 2015052211 的記錄: delete from CS_Student where Sno="2015052211"; 六、實(shí)驗(yàn)數(shù)據(jù)及處理結(jié)果 建立的數(shù)據(jù)庫名與表名及數(shù)據(jù)如實(shí)驗(yàn)二,各查詢的結(jié)果依次如下圖: 1. 單表查詢
1)所有學(xué)生的詳細(xì)情況
2)查詢選修了課程的學(xué)生學(xué)號
3)查詢考試成績低于 80 分的學(xué)生學(xué)號
4)查詢學(xué)號為 2015052201 的學(xué)生的詳細(xì)情況
5)查詢年齡在 18-19 歲之間的學(xué)生的姓名、系別與年齡
6)查詢計(jì)算機(jī)科學(xué)系 CS 的學(xué)生姓名與性別
7)查詢不就是數(shù)學(xué)系 MA 的學(xué)生姓名與性別
8)查詢選修了 1 號課程的學(xué)生學(xué)號及成績,查詢結(jié)果按分?jǐn)?shù)降序排列
9)查詢選課學(xué)生的情況,查詢結(jié)果按課程號升序排列,同一門課程按學(xué)號降序排列
10)查詢選修了 1 號課程的學(xué)生的最高分
11)各個(gè)課程號及相應(yīng)的選課人數(shù) 2. 多表查詢
1、查詢 CS 年齡在 20 歲以下的學(xué)生姓名
2、查詢選修 4 號課程且成績在 85 分以上的學(xué)生
3、查詢學(xué)生 131003 的平均分
4、查詢選修了 6 號課程且成績在 80 分以上的所有學(xué)生
5、查詢與遠(yuǎn)坂凜同樣專業(yè)的學(xué)生
6、查詢已經(jīng)選課“操作系統(tǒng)”的學(xué)生的姓名
7、找出每個(gè)學(xué)生超過她選修課程平均成績的課程號 3. 視圖建立與檢索操作
1、建立 CS 系學(xué)生的視圖,并要求進(jìn)行修改與插入操作時(shí)仍需保證該視圖只有該系的學(xué)生
2、建立一個(gè)由學(xué)生學(xué)號與她的平均成績定義的視圖
3、查詢平均 80 分以上的學(xué)生學(xué)號與平均成績
4、將 CS_Student 視圖中學(xué)號為 2015052210 的學(xué)生姓名改為“桐人”
5、向 CS_Student 視圖中插入一個(gè)新的學(xué)生記錄,學(xué)號為 2015052211,姓名為新一,男,20 歲。
七、思考討論題或體會(huì)或?qū)Ω倪M(jìn)實(shí)驗(yàn)的建議 1、說明多表連接屬于自然連接還就是等值連接?
答:屬于等值連接。
2、遇到的問題及解決的方法
答:在企業(yè)管理器中編輯后,在查詢分析器中找不到數(shù)據(jù)。后面發(fā)現(xiàn) 3、體會(huì)或建議
八、參考資料 1.《數(shù)據(jù)庫系統(tǒng)實(shí)驗(yàn)指導(dǎo)》,單建魁等著,清華大學(xué)出版社
南昌大學(xué)實(shí)驗(yàn)報(bào)告
學(xué)生姓名:
學(xué)
號:
專業(yè)班級:
信息管理
實(shí)驗(yàn)類型:□ 驗(yàn)證 □ 綜合 □ 設(shè)計(jì) □ 創(chuàng)新
實(shí)驗(yàn)日期:
實(shí)驗(yàn)成績:
一、實(shí)驗(yàn)項(xiàng)目名稱:數(shù)據(jù)操縱
二、實(shí)驗(yàn)?zāi)康? 1.掌握查瞧、重命名及刪除用戶定義的數(shù)據(jù)類型的方法
2.掌握向表中添加、刪除與修改數(shù)據(jù)的方法
三、實(shí)驗(yàn)基本原理
SQL 中插入元組的 INSERT 語句格式為 INSERT INTO <表名>[(<屬性列 1>[,<屬性列 2>]…、)] VALUES(<常量 1>[,<常量 2>]…); 其功能就是將新元組插入到指定表中,其中新元組的屬性列 1 的值為常量 1,屬性列 2 的值為常量 2…、。INTO 子句中沒有出現(xiàn)屬性列,新元組將在這些列上取空值。如果 INTO 子句中沒有指明任何屬性列名,則新插入的元組必須在每個(gè)屬性列上均有值。
修改數(shù)據(jù)的一般格式為 UPDATE <表名> SET <列名>=<表達(dá)式>[,<列名>=<表達(dá)式>]…
[WHERE<條件>];其功能就是修改指定表中滿足 WHERE 子句條件的元組。其中 SET 子句給出<表達(dá)式>的值用于取代相應(yīng)的屬性列值。如果省略 WHERE 子句,則表示要修改表中的所有元組。
刪除數(shù)據(jù)的格式一般為 DELETE
FROM
<表名>
[WHERE<條件>]; DELETE 語句的功能就是從指定表中刪除滿足條件的的所有元組,如果省略了 WHERE 子句,表示要?jiǎng)h除表中的所有元組,但表的定義仍在字典中。
四、主要儀器設(shè)備及耗材 相互連成 LAN 的計(jì)算機(jī) 2 臺(tái)以上,安裝有 SQL Server 2000 軟件。
五、實(shí)驗(yàn)步驟 1.使用 insert 向表中添加一行或多行數(shù)據(jù)
向課程表中添加一門新課:insert into Course values("8","學(xué)術(shù)英語","1","4"); 新建一個(gè)表 G_Course,并向新表中插入每個(gè)課程的平均成績: create table G_Course(Cno char(4),Avg_age int);
insert into G_Course select Cno,avg(Grade)from SC group by Cno; 2.使用 update 實(shí)現(xiàn)一行或成組數(shù)據(jù)的修改
將 s 表中學(xué)號為“2015052209”的學(xué)生的年齡改為 19 歲:
update Student set Sage=19 where Sno="2015052209";
將 SC 表中成績少于 80 的學(xué)生成績改為 80:update SC set Grade=80 where grade<80; 3.使用 delete 刪除表中的數(shù)據(jù)
將新插入的學(xué)號為“2015052211”的學(xué)生記錄刪除:
delete from Student where Sno=’2015052211’; 4、 創(chuàng)建、重命名與刪除用戶定義的數(shù)據(jù)類型
將 datetime 創(chuàng)建為新的數(shù)據(jù)類型 type:exec sp_addtype [type],datetime,’null’; 六、實(shí)驗(yàn)數(shù)據(jù)及處理結(jié)果 建立的數(shù)據(jù)庫名與表名及數(shù)據(jù)如實(shí)驗(yàn)二,各查詢的結(jié)果依次如下各截圖:
1.使用 insert 向表中添加一行或多行數(shù)據(jù)
1、向課程表中添加一門新課 2、新建一個(gè)表 G_Course,并向新表中插入每個(gè)課程的平均成績
3.將 s 表中學(xué)號為“2015052209”的學(xué)生的年齡改為 19 歲 4、將 SC 表中成績少于 80 的學(xué)生成績改為 80
5.將新插入的學(xué)號為“2015052211”的學(xué)生記錄刪除
6、將 datetime 創(chuàng)建為新的數(shù)據(jù)類型 七、思考討論題或體會(huì)或?qū)Ω倪M(jìn)實(shí)驗(yàn)的建議 1、如何創(chuàng)建用戶定義的數(shù)據(jù)類型?完成后該如何查瞧?
答:使用“sp_addtype”語句。
2、體會(huì)或建議
答: 需要加強(qiáng)對 SQL 語句的練習(xí)。
八、參考資料 1.《數(shù)據(jù)庫系統(tǒng)實(shí)驗(yàn)指導(dǎo)》,單建魁等著,清華大學(xué)出版社
南昌大學(xué)實(shí)驗(yàn)報(bào)告
學(xué)生姓名:
學(xué)
號:
專業(yè)班級:
信息管理
實(shí)驗(yàn)類型:□ 驗(yàn)證 □ 綜合 □ 設(shè)計(jì) □ 創(chuàng)新
實(shí)驗(yàn)日期:
實(shí)驗(yàn)成績:
一、實(shí)驗(yàn)項(xiàng)目名稱:數(shù)據(jù)庫的完整性、安全型研究 二、實(shí)驗(yàn)?zāi)康? 1.理解完整性的概念,重點(diǎn)理解用戶定義完整性的使用
2.掌握 SQL Server 2000 中有關(guān)用戶、角色及操作權(quán)限的管理方法 3.掌握數(shù)據(jù)庫備份與還原的基本方法
三、實(shí)驗(yàn)基本原理 SQL 中用 GRANT 語句與 REVORK 語句向用戶來授予權(quán)限與收回權(quán)限。
GRANT 語句的一般格式為: GRANT<權(quán)限>[,<權(quán)限>]…、 ON <對象類型><對象名>[,<對象類型><對象名>]…、 TO <用戶> [,<用戶>]…
[WITH GRANT OPTION]; 其語義為:將對指定操作對象的指定操作權(quán)限授予指定的用戶。發(fā)出該 GRANT 語句的可以就是 DBA,也可以就是該數(shù)據(jù)庫對象創(chuàng)建者(即屬主 Owner),也可以就是已經(jīng)擁有該權(quán)限的用戶,接受該權(quán)限的用戶可以就是一個(gè)或多個(gè)具體用戶,也可以就是 PUBLIC,即全體用戶。
如果指定了 WITH GRANT OPTION 字句,即獲得某種權(quán)限的用戶還可以把這種權(quán)限再
授予其她的用戶。但不允許循環(huán)授權(quán),即被授權(quán)者不能把權(quán)限再授回給授權(quán)者或其祖先。
授予的權(quán)限可以由DBA或其她授權(quán)者用REVORK語句收回,REVORK語句的一般格式為: REVORK<權(quán)限>[,<權(quán)限>]… ON<對象類型><對象名>[,<對象類型><對象名>]… FROM<用戶>[,<用戶>]…[CASCADE|RESTRICT]; 數(shù)據(jù)庫角色就是被命名的一組與數(shù)據(jù)庫操作相關(guān)的權(quán)限,角色就是權(quán)限的集合。因此,可以為一組具有相同權(quán)限的用戶創(chuàng)建一個(gè)角色,使用角色來管理數(shù)據(jù)庫權(quán)限可以簡化授權(quán)的過程。
在 SQL 中首先用 CREATE ROLE 語句來創(chuàng)建角色,然后用 GRANT 語句來給角色授權(quán)。
創(chuàng)建角色的 SQL 語句格式就是 CREATE
ROLE<> 剛剛創(chuàng)建的角色就是空的,沒有任何內(nèi)容。可以用 GRANT 為角色授權(quán)。
GRANT <權(quán)限>[,<權(quán)限>]… ON<對象類型><對象名> TO<角色>[,<角色>]… 將一個(gè)角色授予其她的角色或用戶 GRANT <角色 1>[,<角色 2>]… TO<角色 3>[,<用戶 1>]、、 [WITH
ADMIN
OPTION] 角色權(quán)限的收回 REVORK <權(quán)限>[,<權(quán)限>]… ON<對象類型><對象名> FROM <角色>[,<角色>]…、、 四、主要儀器設(shè)備及耗材 相互連成 LAN 的計(jì)算機(jī) 2 臺(tái)以上,安裝有 SQL Server 2000 軟件。
五、實(shí)驗(yàn)步驟 1.數(shù)據(jù)庫的備份 方法一:在查詢分析器中輸入以下命令 backup database Demo to disk="Demo、bak" 備份數(shù)據(jù)庫
backup,如圖 1 方法二:在企業(yè)管理器中找到要備份的數(shù)據(jù)庫,右擊“所有任務(wù)→備份數(shù)據(jù)庫”,彈出備份數(shù)據(jù)庫對話框,選擇備份路徑,單擊確定,即可備份成功。如圖 2
2.數(shù)據(jù)庫的還原
方法一:在查詢分析器中輸入: “restore database Demo from disk="Demo、bak"”還原數(shù)據(jù)庫 Demo,如圖 3 方法二:在企業(yè)管理器中找到要還原的數(shù)據(jù)庫,右擊選擇“所有命令|還原數(shù)據(jù)庫”,彈出還原數(shù)據(jù)庫對話框,選擇備份文件的路徑,單擊確定,即可還原成功,如圖 4 所示。
3.SQL Server 2000 的安全模式 4、 管理數(shù)據(jù)庫用戶 5.管理數(shù)據(jù)庫角色 新 建 一 個(gè) 角 色 user2,create role visitor2; 并 將 查 詢 與 更 新 權(quán) 限 授 予 它 :grant
select,delete,insert,update on Student to visitor2;
圖一
圖 2
圖 3
圖 4
圖 5
圖 6
圖 7 6.權(quán)限管理 (1)新建一個(gè)用戶登錄,采用 sql 身份驗(yàn)證的方式,用戶名為 HJ 。將查詢權(quán)限授予用戶 me:grant select on s to HJ
(2)收回授予用戶 HJ 的查詢權(quán)限:revoke select on s from HJ 7.對表的某個(gè)字段的約束
在定義表時(shí)定義屬性上的約束條件,如 unique 、not null 等 六、實(shí)驗(yàn)數(shù)據(jù)及處理結(jié)果 七、思考討論題或體會(huì)或?qū)Ω倪M(jìn)實(shí)驗(yàn)的建議 1、如何避免用戶數(shù)據(jù)的不一致? (1)提供定義完整性約束條件的機(jī)制 (2)提供完整性檢查的方法 (3)違約處理,如拒絕執(zhí)行該操作或級連執(zhí)行其她操作。
2、遇到的問題及解決的方法
創(chuàng)建用戶時(shí)使用語句“create role manager”總就是報(bào)錯(cuò),查資料得知 SQL Sever 2000 不支持 create role ,后采用 sp_addrole。
3、體會(huì)或建議 通過幾次的實(shí)驗(yàn)發(fā)現(xiàn),所有可以在企業(yè)管理器中執(zhí)行的操作,都可以在查詢分析器中使用SQL 代碼來做。例如創(chuàng)建新的用戶登錄,就可以使用“sp_addlogin "zhangsan","888888","abc" ”的 sql 語句,表示創(chuàng)建一個(gè)用戶名為張三、登錄密碼為 888888,默認(rèn)數(shù)據(jù)庫為 abc 的新登錄用戶。又如創(chuàng)建一個(gè)新的角色,可以使用“sp_addrole "manager" ”sql 語句來創(chuàng)建,表示創(chuàng)建了一個(gè)名為 manager 的角色。而刪除新建的用戶登錄與角色則用“sp_droplogin"zhangsan"”與“sp_droprole"manager"”語句。
八、參考資料 1.《數(shù)據(jù)庫系統(tǒng)實(shí)驗(yàn)指導(dǎo)》,單建魁等著,清華大學(xué)出版社
推薦訪問: 南昌大學(xué) 實(shí)驗(yàn) 數(shù)據(jù)庫在偉大祖國73華誕之際,我參加了單位組織的“光影鑄魂”主題黨日活動(dòng),集中觀看了抗美援朝題材影片《長津湖》,再一次重溫這段悲壯歷史,再一次深刻感悟偉大抗美援朝精神。1950年10月,新中國剛剛成立一年,
根據(jù)省局黨組《關(guān)于舉辦習(xí)近平談治國理政(第四卷)讀書班的通知》要求,我中心通過專題學(xué)習(xí)、專題研討以及交流分享等形式,系統(tǒng)的對《習(xí)近平談治國理政》(第四卷)進(jìn)行了深入的學(xué)習(xí)與交流,下面我就來談一談我個(gè)人
《習(xí)近平談治國理政》(第四卷)是在百年變局和世紀(jì)疫情相互疊加的大背景下,對以習(xí)近平同志為核心的黨中央治國理政重大戰(zhàn)略部署、重大理論創(chuàng)造、重大思想引領(lǐng)的系統(tǒng)呈現(xiàn)。它生動(dòng)記錄了新一代黨中央領(lǐng)導(dǎo)集體統(tǒng)籌兩個(gè)
《真抓實(shí)干做好新發(fā)展階段“三農(nóng)工作”》是《習(xí)近平談治國理政》第四卷中的文章,這是習(xí)近平總書記在2020年12月28日中央農(nóng)村工作會(huì)議上的集體學(xué)習(xí)時(shí)的講話。文章指出,我常講,領(lǐng)導(dǎo)干部要胸懷黨和國家工作大
在《習(xí)近平談治國理政》第四卷中,習(xí)近平總書記強(qiáng)調(diào),江山就是人民,人民就是江山,打江山、守江山,守的是人民的心。從嘉興南湖中駛出的小小紅船,到世界上最大的執(zhí)政黨,在中國共產(chǎn)黨的字典里,“人民”一詞從來都
黨的十八大以來,習(xí)近平總書記以馬克思主義戰(zhàn)略家的博大胸襟和深謀遠(yuǎn)慮,在治國理政和推動(dòng)全球治理中牢固樹立戰(zhàn)略意識,在不同場合多次圍繞戰(zhàn)略策略的重要性,戰(zhàn)略和策略的關(guān)系,提高戰(zhàn)略思維、堅(jiān)定戰(zhàn)略自信、強(qiáng)化戰(zhàn)
《習(xí)近平談治國理政》第四卷集中展示了以習(xí)近平同志為核心的黨中央在百年變局和世紀(jì)疫情相互疊加背景下,如何更好地堅(jiān)持和發(fā)展中國特色社會(huì)主義而進(jìn)行的生動(dòng)實(shí)踐與理論探索;對于新時(shí)代堅(jiān)持和發(fā)展什么樣的中國特色社
在黨組織的關(guān)懷下,我有幸參加了區(qū)委組織部組織的入黨積極分子培訓(xùn)班。為期一周的學(xué)習(xí),學(xué)習(xí)形式多樣,課程內(nèi)容豐富,各位專家的講解細(xì)致精彩,對于我加深對黨的創(chuàng)新理論的認(rèn)識、對黨的歷史的深入了解、對中共黨員的
《習(xí)近平談治國理政》第四卷《共建網(wǎng)上美好精神家園》一文中指出:網(wǎng)絡(luò)玩命是新形勢下社會(huì)文明的重要內(nèi)容,是建設(shè)網(wǎng)絡(luò)強(qiáng)國的重要領(lǐng)域。截至2021年12月,我國網(wǎng)民規(guī)模達(dá)10 32億,較2020年12月增長4
剛剛召開的中國共產(chǎn)黨第十九屆中央委員會(huì)第七次全體會(huì)議上討論并通過了黨的十九屆中央委員會(huì)向中國共產(chǎn)黨第二十次全國代表大會(huì)的報(bào)告、黨的十九屆中央紀(jì)律檢查委員會(huì)向中國共產(chǎn)黨第二十次全國代表大會(huì)的工作報(bào)告和《