久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

數據庫實驗報告

時間:2019-05-12 00:41:35下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《數據庫實驗報告》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《數據庫實驗報告》。

第一篇:數據庫實驗報告

課 程 實 驗 報 告

課程名稱:

數據庫系統概論

專業班級:

計科1207班

號:

U201215002

名:

李文勇

指導教師:

江勝

報告日期:

2015年6月8日

計算機科學與技術學院

目 錄 實驗一 基本SQL操作.........................................................................1 1.1 實驗目的.......................................................................................1 1.2 實驗內容.......................................................................................1 1.3 實驗環境.......................................................................................2 1.4 實驗步驟.......................................................................................2 1.5 實驗中遇到的問題及解決...........................................................8 2 實驗二 DBMS綜合運用......................................................................9 2.1 實驗目的.......................................................................................9 2.2 實驗內容及步驟...........................................................................9 2.3 實驗中遇到的問題.....................................................................12 3 實驗心得與體會..................................................................................13 4 附錄.......................................................................................................13 實驗一 基本SQL操作

1.1 實驗目的

1)熟悉一種DBMS軟件(Microsoft SQL Server、MySQL等)的安裝和使用; 2)熟悉并掌握SQL語言,會進行基本的SQL操作,包括表的創建、數據的增加、修改以及查詢等操作。

1.2 實驗內容

1)數據定義

參照下面的內容建立自己實驗所需的關系數據創建三個關系: 商品表【商品名稱、商品類型】

GOODS【GNAME char(20),GTYPE char(10)】

主關鍵字為(商品名稱),商品類型為(電器、文具、服裝??)

商場表【商場名稱,所在地區】

PLAZA【PNAME char(20),PAREA char(20)】

主關鍵字為商場名稱,所在地區為(洪山、漢口、漢陽、武昌??)

銷售價格表【商品名稱、商場名稱、當前銷售價格、目前舉辦活動類型】 SALE【GNAME char(20),PNAME char(20),PRICE FLOAT,ATYPE char(10)】

主關鍵字為(商品名稱、商場名稱),舉辦活動類型為(送券、打折),也可為空值,表示當前未舉辦任何活動。表中記錄如(?哈森皮靴?,?亞貿廣場?,200,?打折?),同一商場針對不同的商品可能采取不同的促銷活動。

2)數據更新

將SALE表中的打折記錄插入到新表SALE_CHEAP中,并基于SALE_CHEAP表創建一個統計每個商場各自打折商品平均價格的視圖。

3)用SQL語句完成下述查詢需求

(1)查詢價格在200~500元之間的商品名稱、所在的商場名稱、價格,結果按照商場名稱排序;

(2)查詢每種商品的最低價格、商品名稱;

(3)查詢以“送券”方式銷售的商品總數超過30種的商場名稱;

(4)查詢以“送券”方式銷售的商品總數超過30種的商場所在地區;(5)查詢價格為下列取值之一的商品名稱、所在商場名稱、目前舉辦活動的類型,(88、188、288、388、488、588、888);

(6)查詢以“老”字開頭的所有商品的名稱;(7)查詢同時銷售“剃須刀”和“電池”的商場名稱;(8)查詢不舉辦任何活動的商場。

1.3 實驗環境

Windows8.1 x64系統; Microsoft SQL Server 2012 1.4 實驗步驟

1)數據更新

(1)創建三個關系表:GOODS、PLAZA、SALE。

打開并連接SQL Server 2012,依次新建數據庫和新建查詢,然后分別輸入和執行以下語句即可創建三個關系表:

CREATE TABLE GOODS(GNAME CHAR(20)PRIMARY KEY,GTYPE CHAR(10));

CREATE TABLE PLAZA(PNAME CHAR(20)PRIMARY KEY,PAREA CHAR(20));

CREATE TABLE SALE(GNAME CHAR(20),PNAME CHAR(20),PRICE FLOAT,ATYPE CHAR(10),PRIMARY KEY(GNAME,PNAME),FOREIGN KEY(GNAME)REFERENCES GOODS(GNAME),FOREIGN KEY(PNAME)REFERENCES PLAZA(PNAME));然后分別在每個表中導入Excel文件,即完成了數據的添加。接著執行相應的插入、修改、刪除語句(按照課本3.5節的格式)

(2)將SALE表中的打折記錄插入到新表SALE_CHEAP中,并基于SALE_CHEAP表創建一個統計每個商場各自打折商品平均價格的視圖。

首先執行下列語句,創建一個SALE_CHEAP表:

CREATE TABLE SALE_CHEAP(GNAME CHAR(20),PNAME CHAR(20),PRICE FLOAT,ATYPE CHAR(10),PRIMARY KEY(GNAME,PNAME),FOREIGN KEY(GNAME)REFERENCES GOODS(GNAME),FOREIGN KEY(PNAME)REFERENCES PLAZA(PNAME));

然后執行下面的語句,將SALE表中的打折記錄插入新表SALE_CHEAP:

INSERT INTO SALE_CHEAP(GNAME,PNAME,PRICE,ATYPE)SELECT GNAME,PNAME,PRICE,ATYPE FROM SALE WHERE ATYPE='打折';

結果見圖1.1。

圖 1.1 SALE_CHEAP表

最后執行下列語句,創建統計商場打折商品平均價格的視圖:

GO CREATE VIEW A_PRICE(PNAME,AVG_PRICE)AS SELECT PNAME,AVG(PRICE)FROM SALE_CHEAP GROUP BY PNAME GO

統計結果見圖1.2。

圖 1.2 打折商品平均價格

2)數據查詢

(1)查詢價格在200~500元之間的商品名稱、所在的商場名稱、價格,結果按照商場名稱排序。

執行下列語句:

SELECT GNAME,PNAME,PRICE FROM SALE WHERE PRICE BETWEEN 200 AND 500 ORDER BY PNAME;

結果見圖1.3。

圖 1.3 價格在200~500元之間的商品

(2)查詢每種商品的最低價格、商品名稱。執行下列語句:

SELECT GNAME, MIN(PRICE)FROM SALE GROUP BY GNAME;

結果見圖1.4。

圖 1.4

每種商品最低價

(3)查詢以“送券”方式銷售的商品總數超過30種的商場名稱。執行下列語句:

SELECT PNAME FROM SALE

WHERE ATYPE='送券'

GROUP BY PNAME HAVING COUNT(*)>30;

結果如下:

(4)查詢以“送券”方式銷售的商品總數超過30種的商場所在地區。執行下列語句:

SELECT PAREA FROM PLAZA

WHERE PLAZA.PNAME IN(SELECT SALE.PNAME FROM SALE

WHERE ATYPE='送券'

GROUP BY SALE.PNAME HAVING COUNT(*)>30);

結果如下:

(5)查詢價格為下列取值之一的商品名稱、所在商場名稱、目前舉辦活動的類型,(88、188、288、388、488、588、888)。

執行下列語句:

SELECT GNAME,PNAME,ATYPE FROM SALE WHERE PRICE IN(88,188,288,388,488,588,888);

結果見下圖:

(6)查詢以“老”字開頭的所有商品的名稱; 執行下列語句:

SELECT* FROM GOODS WHERE GNAME LIKE '老%';

結果如下:

(7)查詢同時銷售“剃須刀”和“電池”的商場名稱; 執行下列語句:

SELECT PNAME FROM SALE WHERE GNAME='剃須刀' AND PNAME IN(SELECT PNAME FROM SALE WHERE GNAME='電池');

結果如下:

(8)查詢不舉辦任何活動的商場。執行下列語句:

SELECT DISTINCT PNAME FROM SALE WHERE ATYPE IS NULL;

結果如下:

1.5 實驗中遇到的問題及解決

(1)在做基于SALE_CHEAP表創建一個統計每個商場各自打折商品平均價格的視圖時,雖然語句能夠執行,但在語句上顯示“錯誤的語法:‘CREATE VIEW’必須是批處理中僅有的語句。”

后來在網上查找原因,才知道批處理必須以CREATE語句開始。也就是說一個查詢分析器里面只有一個批處理語句才是規范的語法。CREATE VIEW 語句不能在批處理中與其他語句組合使用。所有跟在該批處理后的其他語句將被解釋為第一個 CREATE 語句定義的一部分。

最后解決方法是在該語句前后加上關鍵字GO進行分批處理。

(2)在做查詢同時銷售“剃須刀”和“電池”的商場名稱時,剛開始用的下面這種方法:

SELECT S1.PNAME FROM SALE S1,SALE S2 WHERE S1.PNAME=S2.PNAME AND S1.GNAME='剃須刀' AND S2.GNAME='電池';結果也是有語法錯誤,后來改成了

SELECT PNAME FROM SALE WHERE GNAME='剃須刀' AND PNAME IN(SELECT PNAME FROM SALE WHERE GNAME='電池');解決了問題。實驗二 DBMS綜合運用

2.1 實驗目的

在第1次實驗的基礎上,使用Microsoft SQL Server或其他DBMS進行用戶管理、權限配置等操作,進一步熟悉DBMS的運用。

2.2 實驗內容及步驟

1)學習系統的身份、權限配置操作。

(1)當SQL Server 2012在Windows 上運行時,sysadmin固定服務器角色成員可以指定下面兩種身份驗證模式之一:

a、Windows 身份驗證模式

只進行Windows身份驗證。用戶不能指定SQL Server 2012登錄ID。這是 SQL Server 2012的默認身份驗證模式。不能為在 Windows 98上運行的SQL Server實例指定Windows身份驗證模式,因為此操作系統不支持Windows身份驗證。

說明:如果用戶試圖通過提供空白登錄名稱連接到SQL Server的實例,SQL Server將使用Windows身份驗證。此外,如果用戶試圖使用特定的登錄連接到配置為Windows身份驗證模式的SQL Server實例,則將忽略該登錄并使用 Windows身份驗證。

b、混合驗證模式

如果用戶在登錄時提供了SQL Server 2012登錄ID,則系統將使用SQL Server身份驗證對其進行驗證。如果沒有提供SQL Server 2014登錄ID或請求 Windows身份驗證,則使用Windows身份驗證對其進行身份驗證。

當用戶用指定的登錄名稱和密碼從非信任連接進行連接時,SQL Server通過檢查是否已設置SQL Server登錄帳戶,以及指定的密碼是否與以前記錄的密碼匹配,自己進行身份驗證。如果SQL Server未設置登錄帳戶,則身份驗證將失敗,而且用戶收到錯誤信息。

提供SQL Server身份驗證是為了向后兼容性,因為為SQL Server 7.0版或更早的版本編寫的應用程序可能要求使用SQL Server登錄和密碼。另外,當SQL Server實例在Windows 98上運行時,必須使用SQL Server身份驗證,因為在 Windows 98上不支持Windows身份驗證模式。因此,SQL Server在Windows 98 上運行時使用混合模式(但只支持SQL Server身份驗證)。

盡管建議使用Windows 身份驗證,但對于Windows NT 4.0和Windows客戶端以外的其它客戶端連接,可能需要使用SQL Server身份驗證。

(2)設置SQL Server 2012的身份驗證模式:

打開Microsoft SQL Server Management Studio,右鍵對象資源管理器,選擇“屬性”,如下圖所示。

在出來的窗口點擊左邊的“安全性”,如下圖所示:

在“服務器身份驗證”選項中,第1個即為Windows身份驗證模式,第2個即為混合驗證模式。

(3)權限配置操作

SQL Server 2012可以新建一個用戶并對其配置權限,當時我新建用戶后,使用SQL Server驗證方式登錄總是登錄錯誤,所以不能驗證是否正確實現了權限的配置。

2)了解SQLSERVER的存儲過程、觸發器、函數實現過程。

通過查看SQLSERVER的聯機幫助文檔和示例,體會存儲過程、函數和觸發器的原理,嘗試編制具備基本功能的存儲過程、觸發器和函數的實際例子,查看其執行效果。

(1)創建一個存儲過程,其中包含插入和刪除操作,經驗證存儲結果,過程生效。

CREAT PROCEDURE MyProcedure

AS

Begin

SET

NOCOUNT

ON;

SET XACT_ABORT ON;

BEGIN TRAN

DELETE FROM

GOODS WHERE GNAME='書包';

INSERT INTO

PLAZA VALUES('中百倉儲','洪山區');

COMMIT TRAN

END

(2)創建一個級聯刪除觸發器,使得在SALE中刪除一個貨物時刪除GOODS表中同種貨物。

CREATE TRIGGER GOODS_SALE ON SALE AFTER DELETE AS DELETE FROM GOODS WHERE GNAME IN(SELECT GNAME FROM DELETED);

然后執行:

DELETE FROM SALE WHERE GNAME=?茶幾?;

結果如下:

可以看到GOODS表和SALE表中的“茶幾“已經被刪除、(3)創建一個函數查詢GOODS表所有內容 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE FUNCTION se_goods()RETURNS TABLE AS RETURN(SELECT *from goods);GO

SELECT 選擇該函數,由于是表值函數所以用 select * from[dbo].[se_goods]()調用,選擇goods表內容,有結果可以看出,該函數執行成功。

再執行SELECT *FROM [dbo].[se_goods]();與直接執行函數體 SELECT *from goods 的結果是一樣的。

2.3 實驗中遇到的問題

遇到的最大問題就是新建用戶后以SQL Server驗證方式登錄總是失敗,這個問題一直到最后也沒解決,希望以后能更加深入的學習數據庫,解決目前存在的問題。實驗心得與體會

通過這次實驗,學到了許多課堂上沒有深入了解的東西。包括在SQL Server 2012下如何建表、導入數據、查詢、插入等。對SQL語言也有了更加透徹的了解,鞏固了課本上學到的知識,提高了動手能力和思維能力。

SQL Server數據庫的實驗學習使我對數據庫的學習有了新的進步,數據庫是很重要的一門課程,以后會再接再厲,不只是懂得運用數據庫,還要爭取去優化所用的數據庫。附錄

各題的SQL語句:

1)創建關系表GOODS、PLAZA、SALE:

CREATE TABLE GOODS(GNAME CHAR(20)PRIMARY KEY,GTYPE CHAR(10));

CREATE TABLE PLAZA(PNAME CHAR(20)PRIMARY KEY,PAREA CHAR(20));

CREATE TABLE SALE(GNAME CHAR(20),PNAME CHAR(20),PRICE FLOAT,ATYPE CHAR(10),PRIMARY KEY(GNAME,PNAME),FOREIGN KEY(GNAME)REFERENCES GOODS(GNAME),FOREIGN KEY(PNAME)REFERENCES PLAZA(PNAME));

2)第一部分第2題數據更新第(3)小題:

CREATE TABLE SALE_CHEAP(GNAME CHAR(20),PNAME CHAR(20),PRICE FLOAT,ATYPE CHAR(10),PRIMARY KEY(GNAME,PNAME),FOREIGN KEY(GNAME)REFERENCES GOODS(GNAME),FOREIGN KEY(PNAME)REFERENCES PLAZA(PNAME));

INSERT INTO SALE_CHEAP(GNAME,PNAME,PRICE,ATYPE)SELECT GNAME,PNAME,PRICE,ATYPE FROM SALE WHERE ATYPE='打折';GO CREATE VIEW A_PRICE(PNAME,AVG_PRICE)AS SELECT PNAME,AVG(PRICE)FROM SALE_CHEAP GROUP BY PNAME GO

3)第一部分第3題數據查詢第(3)小題:

SELECT GNAME,PNAME,PRICE FROM SALE WHERE PRICE BETWEEN 200 AND 500 ORDER BY PNAME;

4)第一部分第3題數據查詢第(4)小題:

SELECT GNAME, MIN(PRICE)FROM SALE GROUP BY GNAME;

5)第一部分第3題數據查詢第(5)小題:

SELECT PNAME FROM SALE

WHERE ATYPE='送券'

GROUP BY PNAME HAVING COUNT(*)>30;

6)第一部分第3題數據查詢第(6)小題:

SELECT PAREA FROM PLAZA

WHERE PLAZA.PNAME IN(SELECT SALE.PNAME FROM SALE

WHERE ATYPE='送券'

GROUP BY SALE.PNAME HAVING COUNT(*)>30);

7)第一部分第3題數據查詢第(7)小題:

SELECT GNAME,PNAME,ATYPE FROM SALE WHERE PRICE IN(88,188,288,388,488,588,888);

8)第一部分第3題數據查詢第(8)小題:

SELECT* FROM GOODS WHERE GNAME LIKE '老%';

9)第一部分第3題數據查詢第(9)小題:

SELECT PNAME FROM SALE

WHERE GNAME='剃須刀' AND PNAME IN(SELECT PNAME FROM SALE WHERE GNAME='電池');

10)第一部分第3題數據查詢第(10)小題:

SELECT DISTINCT PNAME FROM SALE

WHERE ATYPE IS NULL;

11)第二部分第5小題

CREAT PROCEDURE MyProcedure AS Begin SET

NOCOUNT

ON;SET XACT_ABORT ON;BEGIN TRAN DELETE FROM GOODS WHERE GNAME='書包';INSERT INTO

PLAZA VALUES('中百倉儲','洪山區');COMMIT TRAN END;創建存儲過程

CREATE TRIGGER GOODS_SALE ON SALE AFTER DELETE AS DELETE FROM GOODS WHERE GNAME IN(SELECT GNAME FROM DELETED);級聯刪除觸發器

DELETE FROM SALE WHERE GNAME=’茶幾’;

SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE FUNCTION se_goods()RETURNS TABLE AS RETURN(SELECT *from goods)GO 查詢函數

第二篇:數據庫實驗報告

數據庫實驗報告

一、題目要求

某銀行準備開發一個銀行業務管理系統,通過調查,得到以下的主要需求:

銀行有多個支行。各個支行位于某個城市,每個支行有唯一的名字。銀行要監控每個支行的資產。銀行的客戶通過其身份證號來標識。銀行存儲每個客戶的姓名及其居住的街道和城市。客戶可以有帳戶,并且可以貸款。客戶可能和某個銀行員工發生聯系,該員工是此客戶的貸款負責人或銀行帳戶負責人。銀行員工也通過身份證號來標識。員工分為部門經理和普通員工,每個部門經理都負責領導其所在部門的員工,并且每個員工只允許在一個部門內工作。每個支行的管理機構存儲每個員工的姓名、電話號碼、家庭地址及其經理的身份證號。銀行還需知道每個員工開始工作的日期,由此日期可以推知員工的雇傭期。銀行提供兩類帳戶——儲蓄帳戶和支票帳戶。帳戶可以由2個或2個以上客戶所共有,一個客戶也可有兩個或兩個以上的帳戶。每個帳戶被賦以唯一的帳戶號。銀行記錄每個帳戶的余額、開戶的支行以及每個帳戶所有者訪問該帳戶的最近日期。另外,每個儲蓄帳戶有其利率,且每個支票帳戶有其透支額。每筆貸款由某個分支機構發放,能被一個或多個客戶所共有。每筆貸款用唯一的貸款號標識。銀行需要知道每筆貸款所貸金額以及逐次支付的情況(銀行將貸款分幾次付給客戶)。雖然貸款號不能唯一標識銀行所有為貸款所付的款項,但可以唯一標識為某貸款所付的款項。對每次的付款需要記錄日期和金額。

二、需求分析

這一部分主要是根據實驗需求對銀行系統需求中的實體、實體屬性以及實體之間的關聯進行確認,以便畫出正確的概念模型。

2.1 實體確認

根據需求分析確認實體:銀行員工、銀行支行、客戶、賬戶(其中:儲蓄賬戶、支票賬戶是繼承實體賬戶而來)、貸款、支付(弱實體)。

2.2 實體屬性確認

銀行員工:身份證號(pi)、姓名、電話號碼、家庭地址、開始工作日期 銀行支行:支行名、資產、城市

客戶:身份證號、姓名、街道、所在城市 賬戶:賬戶號、余額、最近訪問日期 支票賬戶:透支額 儲蓄賬戶:利率 2.3 實體關系確認

賬戶和支行:N:1定義關系為Relationship_accout_bank 客戶和貸款:M:N定義關系為Relationship_client_loan 客戶和員工:M:1 定義關系為 Relation_client_staff 貸款和支行:1:N 定義關系為 Relationship_loan_bank 客戶和賬戶:M:N 定義關系為 client__accout 貸款發放信息和貸款:N:1 定義關系為 Relationship_loan_pay 支行和員工:1:N 定義關系為Relationship_staff_bank

員工和員工:1:N 定義關系為 Relationship_lead

三、概念模型(CDM)

根據sybase power designer畫出概念模型(CDM),如下圖所示:

四、物理模型(PDM)

根據概念模型轉化成物理模型(PDM),如下圖所示:

第三篇:數據庫實驗報告

實驗4SQL高級應用

【實驗目的】

1、掌握在SQL SERVER 2005下進行數據還原的方法。

2、掌握SQL語句的查詢統計功能和數據更改功能。

【實驗內容】

1.還原factory數據庫。

2.在factory數據庫上,完成如下各題。

(1)刪除factory數據庫上各個表之間建立的關系。(2)*顯示各職工的工資記錄和相應的工資小計。

(3)*按性別和部門名的所有組合方式列出相應的平均工資。

(4)在worker表中使用以下語句插入一個職工記錄。職工號:20;姓名:陳立;性別:女;出生日期:55/03/08;黨員否: 1;參加工作:75/10/10;部門號:4。

在depart表中使用以下語句插入一個部門記錄。部門號:5;部門名:設備處。對worker和depart表進行全外連接顯示職工的職工號、姓名和部門名,然后刪除這兩個插入的記錄。

(5)顯示最高工資的職工的職工號、姓名、部門名、工資發放日期和工資。(6)顯示最高工資的職工所在的部門名。

(7)顯示所有平均工資低于全部職工平均工資的職工的職工號和姓名。(8)*采用游標方式實現(6)小題的功能。(9)*采用游標方式實現(7)小題的功能。

(10)*先顯示worker表中的職工人數,開始一個事務,插入一個職工記錄,再顯示worker表中的職工人數,回滾該事務,最后顯示worker表中的職工人數。

【實驗報告要求】

1.第(1)寫出操作步驟。

2.其他各題寫出實現要求的命令/程序,并列出執行結果。

【操作步驟】

1.還原factory數據庫。

2.在factory基礎上,有

(1)刪除factory數據庫上各個表之間建立的關系。

(2)*顯示各職工的工資記錄和相應的工資小計。

Select 職工號,姓名,工資from salary Order by 職工號

Compute sum(工資)by 職工號

(3)*按性別和部門名的所有組合方式列出相應的平均工資。

select worker.職工號,worker.性別,depart.部門名,avg(工資)as'平均工資' from worker inner join depart on worker.部門號=depart.部門號 inner join salary on worker.職工號=salary.職工號

group by worker.職工號,worker.性別,depart.部門名

order by worker.職工號

(4)在worker表中使用以下語句插入一個職工記錄。職工號:20;姓名:陳立;性別:女;出生日期:55/03/08;黨員否: 1;參加工作:75/10/10;部門號:4。

insert into worker values('20','陳立','女','1955-03-08','1','1975-10-10',4)

在depart表中使用以下語句插入一個部門記錄。部門號:5;部門名:設備處。

Insert into depart Values('5','設備處')對worker和depart表進行全外連接顯示職工的職工號、姓名和部門名,然后刪除這兩個插入的記錄。

use factory Select b.部門號,c.姓名

from salary a,departb,worker c delete from worker where 職工號=20 delete from depart where 部門號=5(5)顯示最高工資的職工的職工號、姓名、部門名、工資發放日期和工資。

Use factory Select b.部門名,c.職工號,c.姓名,b.部門名,a.日期,a.工資 from salary a,departb,worker c Where 工資in(select max(a.工資)from salary a)and a.職工號=c.職工號and b.部門號=c.部門號(6)顯示最高工資的職工所在的部門名。

Use factory Select b.部門名from salary a,departb,worker c Where 工資in(select max(a.工資)from salary a)and c.部門號=b.部門號and a.職工號=c.職工號

(7)顯示所有平均工資低于全部職工平均工資的職工的職工號和姓名。

Use factory Select a.職工號,a.姓名,avg(b.工資)as平均工資from worker a,salary b where a.職工號=b.職工號 group by a.職工號,a.姓名

having avg(工資)<(select avg(工資)from salary)

第四篇:數據庫實驗報告

南華大學

計算機科學與技術學院

實驗報告

(2013 ~2014 學

第二學期)

課程名稱 實驗名稱

數據庫原理與技術

姓名 張濤 學號 20124350230

專業 軟件工程

班級 02班

地點

教師 劉征海 實驗1 認識DBMS 一.實驗題目

認識DBMS 二.實驗要求

1.利用管理工具創建數據庫、表和表間關系。

實驗目的和注意事項 基本操作,進一步理解數 據庫、表、表間關系的概念。

注意事項:創建數據庫和數據表時應認真,如果出現錯誤,應相應地修改結構或刪除。三.實驗代碼(內容)

(1)利用SQL Server Management Studio 創建數據庫,名稱為【學生選課

YYXXXX】。其中YY為專業代號,計算機為JS,軟件工程為RJ,網絡為WL,數媒為

SM;XXXX為各位同學的學號中的最后四位 實驗目的:熟悉SQL Server Management Studio

(2)在【學生選課YYXXXX】中建立數據表,表的定義如下所示。

學生YYXXXX(學號,姓名,性別,出生日期,院系名稱,備注);

課程YYXXXX(課程號,課程名,先行課,學分); 選修YYXXXX(學號,課程號,分數)。

要求定義每張表的主碼,為屬性選擇合適的數據類型,決定是否允許為空,為【性別】和【學分】屬性定義默認值。

(3)定義表之間的關系。

(4)分別為表錄入幾行數據記錄,同時練習數據的修改和刪除操作

2.利用SQL 語句創建數據庫、表和表間關系 實驗目的和注意事項

實驗目的:熟悉創建數據庫和數據表的SQL 語句。

注意事項:輸入SQL 語句時應注意,語句中均使用西文操作符號。

實驗內容

在SQL Server Management Studio 中新建查詢,實現以下操作。(1)用SQL 語句創建數據庫,名稱為“StudentCourseYYXXXX”。其中YYXXXX 為各位同學的學號中的最后四位。

(2)用SQL 語句創建StudentCourseYYXXXX 中的3 張表,同時指定主碼、外 碼、默認值等。

(3)直接在表數據窗口中錄入表數據記錄。

實驗 2 交互式 SQL(1)

一、數據庫單表查詢 實驗目的和注意事項

實驗目的:掌握單表查詢SELECT、FROM、WHERE 的用法,特別要掌握比較運 算符、邏輯運算符的使用。注意事項:子句WHERE<條件>表示元組篩選條件;子句HAVING<條件>表示元

組選擇條件;子句HAVING<條件>必須和GROUP BY 子句配合使用;注意輸入SQL語句時均應使用西文操作符號。實驗內容

(1)創建查詢窗口,設置查詢環境。(2)單表查詢 實驗步驟

(1)選擇要查詢的數據庫,右擊【新建查詢】,或者選擇系統菜單中的【文

件】|【新建】|【使用當前連接查詢】命令,或者單擊標準工具欄中的【新建查

詢】按鈕,即可新建一個查詢窗口。如果查詢數據庫不是StudentCourseYYXXXX,則可在可用數據庫下拉列表中進行選擇,或用USE 語句調用。

(2)在查詢窗口中輸入SELECT 查詢語句,對StudentCourseYYXXXX 數據庫 進行查詢操作。

① 查詢計算機系全體學生的信息

② 查詢姓“李”的學生的學號和姓名。

③ 查詢課程表中先行課為空的課程名。

④ 查詢考試成績有不及格的學生的學號。

⑤ 求選修了C1 課程或C2 課程的學生的學號及成績。

⑥ 查詢全體計算機系學生的姓名及其年齡。

⑦ 查詢計算機系在1986-1987 年之間出生的學生的姓名。

⑧ 查詢姓“李”的前兩個學生的學號和姓名。

⑨ 查詢選修了兩門以上課程的學生學號與課程數。

⑩ 查詢選修課程數大于等于2 的學生的學號、平均成績和選課門數,并按平均成績降序排列。

二、數據庫多表連接查詢 實驗目的和注意事項

實驗目的:理解多表查詢的概念;掌握多表查詢的SELECT、FROM、WHERE、JOIN子句的用法,特別要求比較內連接、外連接的結果。

注意事項:內連接、左外連接和右外連接的含義及表達方法;注意輸入SQL 語 句時均應使用西文操作符號。實驗內容

(1)創建查詢窗口,設置查詢環境。(2)多表復雜查詢。實驗步驟

新建查詢窗口,選擇StudentCourseYYXXXX 為當前數據庫,輸入如下SELECT 查詢語句并執行,對數據庫進行多表連接查詢操作。(1)查詢選修了【數據庫原理】的計算機系的學生學號和姓名。

(2)查詢每一門課的間接先行課(即先行課的先行課)。

(3)查詢學生的學號、姓名、選修課程的名稱和成績。

(4)查詢選修了課程的學生姓名。

(5)查詢所有學生的信息和所選修的課程。

(6)查詢已被選修的課程的情況和所有課程的名字。

(7)列出學生所有可能的選修情況。

(8)查找計算機系的學生選修課程數大于2 的學生的姓名、平均成績和選課 門數,并按平均成績降序排列。

實驗 3 交互式 SQL(2)數據庫嵌套查詢和組合查詢 實驗目的和注意事項

實驗目的:掌握查詢中嵌套查詢和組合查詢的操作方法,進一步加深對 SELECT 語句的理解。

注意事項:子句的使用;注意語句的層次嵌套關系和括號的配對使用問題;

注意輸入SQL 語句時均應使用西文操作符號。實驗內容(1)創建查詢窗口,設置查詢環境。(2)分組查詢。(3)統計查詢。(4)嵌套查詢。實驗步驟

新建查詢窗口,選擇StudentCourseYYXXXX 為當前數據庫,輸入如下SELECT 查詢語句并執行,對數據庫進行嵌套查詢和組合查詢操作。

(1)統計選修了【數據庫原理】課程的學生人數。

(2)查詢沒有選修【數據庫原理】課程的學生信息。

(3)查詢其他系中比計算機系學生年齡都小的學生。

(4)查詢被0602001 學生或0602002 學生所選修的課程的課程號(用UNION 組合查詢與IN 條件查詢兩種方法實現)。

(5)查詢0602001 學生和0602002 學生同時選修的課程的課程號(用

INTERSECT 組合查詢與EXISTS 嵌套子查詢兩種方法實現)。

(6)查詢被0602001 學生選修,但沒有被0602002 學生所選修的課程的課程

號(用EXCEPT 組合查詢與NOT EXISTS 嵌套子查詢兩種方法實現)。

實驗 4 交互式 SQL(3)數據的更新 實驗目的和注意事項

實驗目的:熟悉插入、修改和刪除SQL 語句的用法。注意事項:對于INSERT 語句,要求理解默認值約束、空值約束在插入時所 起的作用。實驗內容

(1)使用INSERT 語句在數據庫的表中插入幾行記錄。(2)使用UPDATA 語句修改某個數據。(3)使用DELETE 語句刪除某行記錄。實驗步驟

(1)新建查詢窗口,選擇StudentCourseYYXXXX 為當前數據庫。

(2)在已建立StudentCourseYYXXXX 數據庫和StudentsYYXXXX、CoursesYYXXXX、SCYYXXXX 3 個表的基礎上,向StudentCourseYYXXXX數據庫中 的表更新數據。

① 向表StudentsYYXXXX 中插入(0601001,趙林, 男,1985-09-08,計算機)的記錄。

② 向SCYYXXXX 表中添加一個學生的選課記錄,學號為0601001,所選的課

程號為C2。SC表中有Sno、Cno、Grade 這3 個列。這里只知道學號和課程號,不知道成績值。

③ 向表StudentsYYXXXX 中插入(0601002,張修雨,default)記錄,該記錄 的數據中default 表示默認值‘男’,其他數據表示空值。

④ 用CREATE 語句建立表StudentBAK1YYXXXX,包含(與Students 的Sno、Sname、Sdept 相同)3 個字段,然后用INSERT SELECT 語句實現向

StudentBAK1YYXXXX 添加StudentsYYXXXX 表中的計算機系學生的學號、姓名、所在系的信息。

⑤ 用 SELECT...INTO 語句實現把StudentsYYXXXX 表中1986 年后(包含

1986 年)出生的學生的學號、姓名存儲到一個新表StudentBAK2YYXXXX。

⑥ 將姓名為【趙林】的同學的所在系改為【機電系】,愛好改為【足球】。

⑦ 將選修了課程名為【數據庫原理】的學生成績加5 分。⑧ 將StudentCourseYYXXXX

數據庫的StudentBAK1YYXXXX 表中所有姓趙的 同學刪除。

⑨ 刪除計算機系選修成績不及格的學生選修記錄。⑩ 將除。StudentCourseYYXXXX

數據庫的StudentBAK2YYXXXX 表中的所有行刪

四.實驗總結

實驗一要注意創建數據庫和數據表時應認真,如果出現錯誤,應相應地修改結構或刪除。輸入SQL 語句時應注意,語句中均使用西文操作符號;實驗二應注意注意group和having以及where的搭配使用的情況;實驗三注意注意輸入SQL 語句時均應使用西文操作符號,子句的使用,注意語句的層次嵌套關系和括號的配對使用問題;實驗四注意輸入SQL 語句時均應使用西文操作符號,對于INSERT 語句,要求理解默認值約束、空值約束在插入時所起的作用。注意插入,修改,新建表,刪除語句的寫法,并且掌握把原表中的數據轉存到新表中的語句寫法。

第五篇:數據庫實驗報告

10包三 李雅 100910306

實驗報告

一、實驗題目:

數據庫基本操作實驗

二、實驗目的:

掌握數據庫的建立、表的設計基本方法,通過實際操作熟練掌握數據庫的基本操作——數據的輸入與導入,表的設計。

三、實驗內容:

建立課程管理數據庫,要求:

1.輸入老師、開設課程、選課表、學生基本數據等,并輸入一些學生不同課程的考試成績。

2.建立查詢表,分別是成績查詢、學分查詢、不及格學生查詢。

3.建立窗體,分別顯示不及格學生的姓名、課程名稱、成績和班級ID。在成績查詢中顯示學生姓名及各科成績。在教師基本信息中顯示編號、職稱、工資、院系、等。同時建立開設課程表和學生基本信息的窗體查詢。提供用戶一個簡單的應用程序界面,方便用戶操作使用。

4.制作報表。包括教師的授課報表,課程名稱及課程類別。學生的總成績報表,包括課程名稱、成績和學分。

注:課程及考試成績可以任意輸入。選課按照班級確定。

四、實驗過程:

1、數據庫表設計

在表格內填入教師基本信息、開始課程、課程基本信息、選課表、學生基本信息。

教師基本信息:

開設課程:

/ 7

10包三 李雅 100910306

課程基本信息:

選課表:

/ 7

10包三 李雅 100910306

學生基本信息:

2、查詢表: 成績查詢:

/ 7

10包三 李雅 100910306

學分查詢:

不及格學生查詢:

/ 7

10包三 李雅 100910306

3、窗體設計: 不及格學生信息查詢:

成績查詢:

教師基本信息查詢:

開設課程信息查詢:

/ 7

10包三 李雅 100910306

學生基本信息查詢:

4、報表: 教師的授課報表:

/ 7

10包三 李雅 100910306

學生的總成績:

/ 7

下載數據庫實驗報告word格式文檔
下載數據庫實驗報告.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    數據庫實驗報告

    實驗7 索引和數據完整性的使用 1、 目的與要求 (1) 掌握索引的使用方法; (2) 掌握數據完整性的實現方法; 2、 實驗準備 (1) 了解索引的作用與分類; (2) 掌握索引的創建方法; (3) 理解數據......

    數據庫實驗報告

    數據庫系統原理課程設計 總結報告 學院: 軟件學院 專業: 軟件工程 年級: 2009 學號: 20092647 姓名: 李野 1、開發環境 Windows7系統 2、DBMS系統架構 采用向量的存儲結構存儲數......

    《數據庫》實驗報告(2012最新)

    《數據庫系統概論》 實驗報告書 專業班級 學 號 姓 名 指導教師 安徽工業大學計算機學院計101 小七制作 夏小宅 戴小平 《數據庫系統概論》實驗指導書 安徽工業大學計算......

    數據庫實驗報告

    實驗一 PowerDesigner 的 CDM 應用 1:實驗目的 使用PowerDesinger進行數據庫概念模型設計,掌握CDM中的實體、實體屬性、實體與實體之間聯系的操作方法。 2:實驗內容建立一個“......

    數據庫實驗報告[精選]

    實驗報告 1. 實驗內容與實驗性質 實驗內容:數據庫實例設計 實驗性質:專業基礎綜合設計性實驗 2. 實驗目的與要求 實驗目的:深化“數據庫設計”一章的課堂教學,借助數據庫實例設......

    數據庫實驗報告格式

    課程:數據庫原理及應用 實驗題目: 系:班級:學號: 姓名:任課教師:時間: 一、 實驗目的二、實驗內容三、實驗環境四、實驗前準備五、實驗步驟六、實驗結果七、評價分析及心得體會......

    Access數據庫實驗報告

    注意事項:本手冊上寫的是題目的出處,但的實驗本上,必須寫上書上原本的題目,否則無效。并且寫下每題實現的步驟。 《Access數據庫》實驗報告指導手冊掌握選擇查詢、總記查詢、在......

    北工大 數據庫實驗報告

    數據庫實驗報告 專業:電子信息工程 學號:14020019 姓名:康文杰 一, 實驗內容: 本章介紹關系數據庫標準語言SQL。 主要內容包括:1數據定義、 2數據操縱、 3數據控制和數據約束等。......

主站蜘蛛池模板: 中文无码高潮到痉挛在线视频| 亚洲精品一区二区三区四区乱码| 最新国产精品无码| 亚洲欧美激情在线一区| 少妇又紧又色又爽又刺激视频| 欧美疯狂做受xxxx高潮| 成l人在线观看线路1| 亚洲美女又黄又爽在线观看| 国产乱人伦真实精品视频| 韩国亚洲精品a在线无码| 久久久久久久久久久国产| 男女啪啪永久免费观看网站| 亚洲综合无码无在线观看| 国产成年无码久久久免费| 亚洲国产欧美在线综合| 国产口爆吞精在线视频2020版| 日本特黄特色特爽大片| 国产精品自在欧美一区| 亚洲美腿丝袜无码专区| 亚洲一区av无码少妇电影玲奈| 久久亚洲日韩精品一区二区三区| 亚洲女女女同性video| 久久伊人五月丁香狠狠色| 亚洲国产精品无码久久九九大片| 国产成人亚洲精品| 又大又粗又爽免费视频a片| 国产婷婷色一区二区三区| 三上悠亚网站在线观看一区二区| 欧美性生交大片18禁止| 国产女人好紧好爽| 人妻少妇精品无码专区二区| 亚洲 欧美 国产 制服 动漫| 精品乱码无人区一区二区| 国内精品久久久久国产盗摄| 一本大道熟女人妻中文字幕在线| 欧洲精品色在线观看| 国产乱人伦av在线麻豆a| 久久精品女人天堂av| 久久久久国产精品人妻| 成年奭片免费观看视频天天看| 久久国产欧美日韩精品图片|