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

數據庫實驗報告

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

第一篇:數據庫實驗報告

實驗一 PowerDesigner 的 CDM 應用

1:實驗目的

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

建立一個“實驗一練習”命名的Conceptual Data Model(CDM)文件,其中應包括的實體、實體的屬性及實體之間的聯系。3:實驗結果

4.實驗心得

初次接觸數據庫原理實驗,相對來說還是比較陌生,但老師講解還相對比較清楚,并且實驗報告寫的十分清楚,只是遇到多建立了一個實體而無法刪除的問題,通過同學的幫助也解決了,相對來說第一次實驗還是比較順利的。

實驗二 PowerDesigner 的 PDM 應用

1.實驗目的

用PowerDesinger的工具將CDM生成PDM過程,熟悉PDM工作區,為生成數據庫中的物理的表打下基礎。完成這個實驗后,應該能夠了解從CDM到PDM的轉換過程,熟悉PowerDesinger的PDM工作區,使用工具選項板進行PDM對象設計。

2.實驗內容

從CDM生成PDM,設計結束后,利用PowerDesigner的“生成數據庫”功能,產生數據庫中各數據對象的定義,再運行MySQL的命令行客戶端軟件,打開test數據庫,運行crebas.sql,同時進行中英文的轉換,最后運行show tables命令查看表。

3.實驗結果

4.實驗心得

經過本次實驗,學會了用PowerDesinger的工具將CDM生成PDM過程,并且利用crebas.sql進行中英文的轉換,最后利用show tables命令查看表,受益匪淺。

實驗 三Navicat for MySQL的使用和SQL語言數據定義語言DDL 1.實驗目的

了解Navicat for MySQL的啟動,熟悉如何在Navicat for MySQL下配置數據庫聯接。了解DDL語言的CREATE、DROP、ALTER對表、索引、視圖的操作,學會在Navicat for MySQL中用DDL語言進行對表、索引、視圖的增加、刪除和改動 2.實驗內容

1.啟動Navicat for MySQL。

2.在MySQL–新建連接中完成連接參數配置,并完成連接測試和保存連接參數。3.查看mysql數據庫的help_category表的定義、表中數據與索引、完整性約束等。4.查看mysql數據庫的其它數據庫對象,如視圖、索引、存儲過程、函數、觸發器。5.在Navicat for MySQL中打開查詢,新建查詢,運行簡單的SQL語句,如select * from help_keyword where help_keyword_id<=3;觀察下結果。3.實驗結果

4.實驗心得

使用navicat for MySQL連接數據庫的時候,不能正常連接到數據庫,出現“access denied for user’root@’localhost”的錯誤提示,經過查找發現是MySQL沒有正確安裝,重裝之后就可以正常的訪問數據庫,在本次實驗中也學會了Navicat for MySQL的基礎的查詢使用以及簡單的SQL語句的運行。

實驗 四 SQL語言數據定義語言DDL 1:實驗目的

本次實驗了解SQL語言中DDL語言的CREATE、DROP、ALTER對表、索引、視圖的操作,掌握在Navicat for MySQL中用DDL語言進行對表、索引、視圖的增加、刪除和改動。掌握使用SQL語句增加或刪除約束,加深對完整性概念的理解,達到靈活應用的目的。掌握使用SQL語句定義和刪除同義詞。2:實驗原理

在 Navicat for MySQL 中使用 CREATE 命令完成對表、索引、視圖、同義詞 的創建,使用 DROP 命令完成對表、索引、視圖、同義詞的刪除,使用 ALTER 命 令對表結構進行修改及完整性約束的增加、刪除。

3:實驗代碼及結果 相應SQL語句為:

CREATE TABLE NewTable(studentid varchar(10)NOT NULL , name varchar(20)NOT NULL , sex varchar(2)NOT NULL , age integer NOT NULL , Fee decimal(10,2)NULL , address varchar(50)NULL , memo varchar(300)NULL , PRIMARY KEY(studentid));

截圖如下:

3.用Create Table語句建表CourseAa,相應的SQL語句為: CREATE TABLE CourseAa(Aa1 Varchar(20), Aa2 INTEGER, Aa3 decimal(10)); 截圖如下:

5.用Create Table語句建表ChooseBb 相應的SQL語句如下: CREATE TABLE ChooseBb(Bb1 VARCHAR(30), Bb2 INTEGER, Bb3 DECIMAL(6));

6.用Drop Table語句刪除表CourseAa,相應的SQL語句如下: Drop table CourdeAa;

7.用Alter Table語句更新表ChooseBb,添加一個屬性名Bb4,類型Varchar,長度20,完整性約束設為非空值,缺省值設為字符“系統測試值”,相應的SQL語句如下: ALTER TABLE choosebb ADD Bb4 VARCHAR(30)NOT NULL;

8.用Alter Table語句更新表ChooseBb,添加一個屬性名Bb5,類型Varchar, 長度10,完整性約束設為主碼。完成后,表ChooseBb的設計如下所示。相應的SQL語句如下:

ALTER TABLE choosebb ADD Bb5 VARCHAR(30)PRIMARY KEY;

9.用Create View語句建立一個視圖View_Choosebb,生成的視圖屬性名(View_bb1,View_bb2,view_bb3), 其中View_bb1對應于基表ChooseBb的Bb1、View_bb2對應于基表ChooseBb的Bb4、view_bb3對應于基表ChooseBb的Bb5。完成后,視圖View_Choosebb的設計如下所示。

相應的SQL語句如下:

CREATE VIEW View_Choosebb AS SELECT Bb4 AS View_bb1,View_bb2 FROM chooseBb;CREATE VIEW View_Choosebb AS SELECT Bb5 AS View_bb3 FROM chooseBb;10.用Drop View語句刪除視圖View_Choosebb。相應的SQL語句如下: DROP VIEW View_choosebb;11.用Create Index語句對表ChooseBb的Bb2屬性建立一個升序索引,索引名Index_bb2。用Create Index語句對表ChooseBb的Bb4屬性建立一個降序索引,索引名Index_bb4。相應的SQL語句如下:

CREATE INDEX Index_bb2 ON ChooseBb(Bb4 DESC);12.用Drop Index語句刪除索引Index_bb2。相應的SQL語句如下:

DROP INDEX Index_bb2 ON ChooseBb;

4:實驗中遇到的問題及心得體會

1、用Drop Table語句刪除表CourseAa的時候,在SQL瀏覽框中輸入語句并運行,發現左邊項目欄中還是有CourseAa表的存在,但是確打不開CourseAa表,弄了很長時間,也不知道是什么情況,最后嘗試刷新頁面之后,發現語句運行正確,CourseAa表成功刪除。

2、由于理論課時查詢語言之學到了表的查詢,到后面實驗中涉及視圖的建立及查詢,也不清楚是怎么回事,而且由于對查詢語句的不熟悉,實驗過程中進行緩慢,視圖的部分是課下看書慢慢寫的,沒有截圖。

通過這次實驗,初步了解了SQL語言中DDL語言的CREATE、DROP、ALTER對表、索引、視圖的操作,掌握在Navicat for MySQL中用DDL語言進行對表、索引、視圖的增加、刪除和改動。掌握使用SQL語句增加或刪除約束。因為實驗過程中對這些語句的不熟悉耽誤課很長時間,還需課下多下工夫多看、多寫。

實驗五

SQL語言數據操縱語言DML

1:實驗目的

SQL 語言的數據操縱功能通過 DML(數據維護語言)實現。DML 包括數據查詢 和數據更新兩種數據操縱語句。其中,數據查詢指對數據庫中的數據查詢、統計、分組、排序等操作;數據更新指數據的插入、更新和刪除等數據維護操作。

本次實驗了解 DML 語言的 INSERT、UPDATE、DELETE 等數據維護語言,掌握 在 Navicat for MySQL 中用 DML 語言的 INSERT、UPDATE、DELETE 對表進行數據 插入、更新和刪除。

2實驗內容

在 Navicat for MySQL 中使用 INSERT 語句向表中插入數據。使用 UPDATE 語句更新(修改)表中已有數據。使用 DELETE 語句刪除表中數據。

3:實驗代碼及結果

1、用Create Table語句建立test表,其語句和截圖如下所示; CREATE TABLE `NewTable`(`Name` varchar(20)NOT NULL , `Age` integer NULL , `Score` numeric(10,2)NOT NULL , `Address` varchar(60)NULL);

2、繼續用Create Table語句建立test_temp表,其語句同1。

3、用INSERT語句對表test_temp,插入如實驗報告中的三條記錄,其插入語句和截圖如下: INSERT INTO test_temp

VALUES('鄭七',21,'490.50','重郵宿舍11-2-1');INSERT INTO test_temp

VALUES('張八',20,'560.00','南福苑3-3-3');INSERT INTO test_temp

VALUES('王九',10,'515.00','學生新區19-7-1');

4、用INSERT INTO…SELECT…FROM語句,將test_temp表中的數據,插入到test中,其語句及其截圖如下: INSERT INTO test

SELECT * FROM test_temp;

5、用UPDATE語句將test表中年齡小于20的數據,將其成績更新為原來的成績加5分,其語句和截圖如下:

UPDATE test SET Score=Score+5 WHERE Age<=20;

6用UPDATE語句將test表中居住在南福苑所有的學生年齡減少1歲,其語句和截圖如下:、UPDATE test SET Age=Age-1 WHERE Address Like '南福苑%';

7、用DELETE語句將test表中年齡大于等于21 并且成績大于等于500的學生數據刪除,其語句和截圖如下: DELETE FROM test

WHERE Score<=500 AND Age>=21;

8、用DELETE語句將test表中成績小于550并且居住在重郵宿舍的學生數據刪除,其語句和截圖如下:

DELETE FROM test WHERE Score<=550 AND Address LIke'重郵宿舍%';

4實驗心得

這次實驗從實驗原理還是實驗操作來說還是相對簡單的,但越是對簡單的是就越容易犯迷糊,這次件表命名給了我很多啟示,以后對細節還是要十分注意的。

實驗六 SQL語言數據查詢語言DQL

1:實驗目的

本次實驗了解 SQL 語言的 SELECT 語句對數據的查詢,學會在 Navicat for MySQL 中用 SELECT 語句對表中的數據進行簡單查詢、連接查詢、嵌套查詢和組 合查詢。2:實驗原理

在 Navicat for MySQL 中使用 SELECT 語句從表中查詢數據、統計數據及對 數據進行分組和排序等操作。3:實驗代碼及結果

1.用 Create Table 建立 Student 表:

2.用 Create Table 建立 Course 表:

3.用 Create Table 建立 Choose 表:

4.用 INSERT 語句向 Student 表中插入 3 個元組:

5.用 INSERT 語句向 Course 表中插入 3 個元組:

6.用 INSERT 語句向 Choose 表中插入 7 個元組:

7.用 SELECT 語句,查詢計算機學院學生的學號和姓名。

8.用 SELECT 語句的 between?and?表示查詢條件,查詢年齡在 20~23 歲的學 生信息。

9.用 SELECT 語句的 COUNT()聚集函數,統計 Student 表中學生總人數。

10.分別用 SELECT 語句的 max()、min()、sum()、avg()四個聚集函數,計算 Choose 表中 C1 課程的最高分、最低分、總分、平均分。max():

Min():

Sum();

avg():

11.用 SELECT 語句對空值(NULL)的判斷條件,查詢 Course 表中先修課稱編號為 空值的課程編號和課程名稱。

12.用 SELECT 語句的連接查詢,查詢學生的學號、姓名、選修的課程名及成績。

13.用 SELECT 的存在量詞 EXISTS,查詢與“張三”在同一個學院學習的學生信 息。

14.用 SELECT 語句的嵌套查詢,查詢選修 C1 課程的成績低于“張三”的學生的 學號和成績。

15.用 SELECT 語句的組合查詢(UNION),查詢選修了 C1 課程或者選修了 C3 課程 的學生學號。

16.用 SELECT 語句的組合查詢(UNION)與 DISTINCT 短語,查詢選修了 C1 課程或 者選修了 C3 課程的學生學號,并取消重復的數據。

4.實驗心得

本次實驗室相對于前幾次來說比較困難的一次,因為語句剛學過,下去也沒有及時去練習,對于很多還是比較困難,在本次實驗中通過練習,讓我了解 SQL 語言的 SELECT 語句對數據的查詢,學會在 Navicat forMySQL 中用 SELECT 語句對表中的數據進行簡單查詢、連接查詢、嵌套查詢和組合查詢。課下時間也會多多練習SQl語句。

實驗七

MYSQL應用開發環境的建立

1:實驗目的

通過在Windows平臺下,搭建Apache Httpd Web服務器,PHP腳本支持,訪問MySQL數據庫等,學習了解MySQL應用開發環境的建立過程。本次實驗通過安裝Apache HTTD Server 2.2、PHP 5.3.28,配置httpd.conf和PHP.ini文件,完成MySQL的PHP應用開發環境的建立。2:實驗內容

1、按照實驗指導安裝Apache http Server。成功后,截圖如下:

2、配置Apache服務器支持PHP文件解析,截圖如下:

3、實驗測試成功,截圖如下:

3:遇到的問題及解決 配置PHP擴展支持MySQL數據庫。用記事本打開php5.3.28之下的php.ini文件,把;extension=php_mysql.dll去掉。只是去掉了extension=php_mysql.dll,而,而沒有其前面的分號去掉就保存了文件。

4:實驗心得

通過在 Windows平臺下,搭建 Apache Httpd Web 服務器,PHP 腳本支持,訪問 MySQL 數據庫等,我學習了解 了MySQL 應用開發環境的建立過程。學會了安裝 Apache HTTD Server 2.2、PHP 5.3.28,配置 httpd.conf和 PHP.ini 文件,完成 MySQL 的 PHP 應用開發環境的建立。

實驗八 MySQL的存儲過程

1:實驗目的

存儲過程分為兩類:1.系統提供的存儲過程;2.用戶自定義存儲過程。

存儲過程具有的優點:1.存儲過程允許標準組件式編程;2.存儲過程能夠實 現較快的執行速度;3.存儲過程能夠減少網絡流量;4.存儲過程可被作為一種安 全機制來充分利用。存儲過程是可復用的組件!想象一下如果你改變了主機的語 言,這對存儲過程不會產生影響,因為它是數據庫邏輯而不是應用程序。存儲過 程是可以移植的!

本次實驗了解 MySQL 存儲過程的創建、修改和刪除的方法和步驟,掌握在 Navicat for MySQL中對存儲過程的進行創建、修改和刪除,掌握在MySQL Command Line Client 中調用帶參數和不帶參數的存儲過程。

2:實驗內容

1、MySQL Command Line Client中創建存儲過程,按照實驗指導書創建第一、第二個存儲過程及其調用。

2、調用第三、第四個傳出參數的存儲過程:

3、創建存儲過程third_p(),顯示表cqupt中的數據,并對其進行調用測試。

4、創建存儲過程simpleproc2(),對傳入參數進行乘以10的處理,變量定義@x,并對其進行調用測試。5.用Drop Procedure語句刪除存儲過程first_p。

3:實驗結果

4:心得體會

通過此次實驗,學會了在MySQL Command Line Client中創建存儲過程及其調用,并傳遞參數對其進行調用測試.實驗九MySQL的觸發器和SQL語言數據控制語言DCL 1:實驗目的

觸發器是特定事件出現的時候,自動執行的代碼塊,類似于存儲過程。觸發器與存儲過程的區別在于:存儲過程是由用戶或應用程序顯式調用的,而觸發器是不能被直接調用的,由DBMS自動執行。觸發器具有這些功能:

1、允許/限制對表的修改;

2、自動生成派生列,比如自增字段;

3、強制數據一致性;

4、提供審計和日志記錄;

5、防止無效的事務處理;

6、啟用復雜的業務邏輯。

本次實驗了解MySQL觸發器的創建、修改和刪除的方法和步驟,掌握在Navicat for MySQL中對觸發器的進行創建、修改和刪除,掌握觸發器觸發測試的方法。2:實驗內容

1、創建觸發器audit_student,該觸發器對修改student表的時間、用戶名記錄到日志表中。

2.執行

五、教學過程中

(三)實驗內容的第二部分改造簡單觸發器,增加觸發類型判斷功能,驗證觸發器的改造和改造后的觸發器觸發測試。3.自行編寫student表的觸發器aduit_student_update,在對student表進行更新操作前觸發,觸發時,向student_log表寫入觸發用戶、觸發時間和觸發類型。并對該新建進行觸發測試。

4.自行編寫student表的觸發器aduit_student_delete,在對student表進行刪除操作后觸發,觸發時,向student_log表寫入觸發用戶、觸發時間和觸發類型。并對該新建進行觸發測試。

3:實驗結果

①輸入如下語句,建立實驗表student,如圖所示: create table student(SNO varchar(10),SNAME varchar(30),Sage Int);

②輸入如下語句,建立日志表student_log,并查看日志表是否為空,如圖所示:

create table student_log(who varchar(30),whattimeTIMESTAMP);

select * from student_log;

③輸入如下語句,在student表上語句觸發器,如圖所示: use test;

Create trigger audit_student Beforeinsert On student For each row Begin Insert into student_log(Who,whattime)Values(current_user,current_timestamp);End;

建立④輸入如下語句對觸發器進行INSERT觸發測試,如圖所示: 對student表做一個INSERT操作:

Insert into student values('1992150033','吳思遠',40);

輸入如下語句查看表student_log,檢查觸發器工作結果,表student_log中數據如圖所示:

select * from student_log;

①輸入如下語句,修改日志表結構,增加一個屬性存放觸發語句類型。如圖所示: alter table student_log add(action varchar(20));

②修改觸發器,記錄觸發語句類型。選中student表,單擊右鍵,選擇設計表,點擊觸發器選項卡,在定義中對INSERT進行編輯,如圖所示:

select * from student_log

4:實驗心得

本次實驗讓我了解 MySQL 觸發器的創建、修改和刪除的方法和步驟,掌握在

Navicat for MySQL 中對觸發器進行創建、修改和刪除的步驟,掌握了觸發器觸發測試的方法。

實驗十SQL的數據控制通過DCL(數據控制語言)實現

1:實驗目的

DCL 通過對數據庫用戶的授 權和權限回收命令來實現有關數據的存取控制,以保證數據庫的安全性

本次實驗了解 DCL 語言的 GRANT 和 REVOKE 語句對數據庫存取權限的控制,學會在Navicat for MySQL中用GRANT、REVOKE語句對數據庫存取權限進行設定。

2:實驗內容

1.登錄mysql,創建用戶jason,密碼為abc123,并授權該用戶完整訪問數據庫test。即執行如下DCL語句:GRANT ALL ON test.* TO jason@“%”IDENTIFIED BY “abc123”;2.啟動另外一個Navicat for MySQL,在MySQL –新建連接中完成jason連接參數配置

3.對user表進行授予權限操作,并用select insert 進行測試 4.對user表進行收回權限操作,用select insert語句進行測試 3:實驗結果

GRANT ALL ON test.* TO jason@“%” IDENTIFIED BY “abc123”;GRANT SELECT on mysql.host to jason;

2、將數據庫 mysql 中表 host 的查詢權限從用戶 jason 回收

3.創建用戶jason,密碼為abc123,并授權該用戶完整訪問數據庫test。GRANT ALL ON test.* TO jason@“%” IDENTIFIED BY “abc123”;

4.啟動另外一個Navicat for MySQL,在MySQL –新建連接中完成jason連接參數配置。為了能查詢到相應的數據,我們必須進行授權操作。語句如下: Grant select on mysql.user to jason;

授權后,現在切換到Navicat for MySQL,執行之前窗口中的查詢語句:

5、接下來,切換到MySQL的命令行客戶端,創建一個簡單的表,切換到Navicat for MySQL,新建一個查詢:

insert into mysql.dcltest(id,name)values(1,'張三豐');

6、切換到MySQL的命令行客戶端,執行如下授權語句,進行INSERT權限的授予: Grant insert on mysql.user to jason;

輸入如下查詢語句:

Select * from mysql.dcltest;

權限授予后,root(數據庫超級用戶)可以進行權限的回收。

7、切換到Navicat for MySQL,新建一個查詢,執行如下插入語句: insert into mysql.dcltest(id,name)values(2,'掃地僧');執行如下權限回收語句:

Revoke insert on mysql.dcltest from jason;

新建一個查詢,執行如下查詢語句: select * from mysql.dcltest;

Revoke select on mysql.dcltest from jason;

4:實驗心得

通過本次實驗,我了解DCL語言的GRANT和REVOKE語句對數據庫存取權限的控制,學會在Navicat for MySQL中用GRANT、REVOKE語句對數據庫存取權限進行設定。

實驗十一MySQL的事務與鎖

1:實驗目的

事務(Transaction)是MySQL數據庫系統中的一個邏輯工作單元,是完成一組數據庫操作的程序執行單元;鎖(Lock)是MySQL數據庫系統中并發控制的常用方法.本次實驗了解MySQL事務的設置、提交和回退的方法和步驟,掌握MySQL Command Line Client中如何進行相關操作。了解MySQL的表鎖定與鎖定解除,掌握MySQL Command Line Client中如何進行相關操作。2:實驗內容

啟動MySQL的命令行客戶端,輸入密碼mysql(小寫);執行

五、教學過程中

(三)實驗內容的1部分,學習和驗證MySQL的事務;在實驗步驟2的基礎上,在數據bankrecord的表record中,添加一個元組id為3的張六,初始余額2萬;自己寫事務完成如下操作:李四向張六轉賬5千,然后取消該轉賬;王五向李四轉賬1萬5,然后確認轉賬;執行

五、教學過程中

(三)實驗內容的2部分,學習和驗證MySQL的鎖;在步驟4的基礎上,在數據庫bookrecord的表sellrecord中,添加一個元組id為2000的書籍Oracle數據庫實用教程庫,存為2本;在當前MySQL命令行客戶端里面模擬李四購書,另外啟動一個MySQL命令行客戶端,模擬王五購書;要求使用寫鎖先鎖定后,再修改,因為庫存有兩本,所以李四和王五都能買到,庫存為0,并且兩人的名字都出現在buyername 3:實驗結果

create database bankrecord character set utf8 collate utf8_general_ci;use bankrecord;

create table record(id int,name varchar(20),jine decimal(8,2));

set names gbk;

insert into record values(1, '李四',20000);insert into record values(2, '王五',20000);start transaction;

update record set jine=jine-10000 where name='李四';select * from record;rollback;

select * from record;

1、查看數據庫自動提交模式是否打開:

2,按照實驗指導先建立數據庫、表和向表中插入初始賬戶記錄:

3、完成開始事務,從李四賬戶轉出 1 萬元,向王五賬戶中轉入 1 萬元,提交確認轉賬:

4、安實驗指導執行語句先建立數據庫、表和向表中插入初始書籍記錄:

5、在數據庫 bankrecord 的表 record 中,添加一個元組id 為 3 的張六,初始余額 2 萬,李四向張六轉賬 5 千,然后取消該轉賬;王五向李四轉賬 1 萬 5,然后確認轉賬(語句在圖中顯示):

6、在數據庫 bookrecord 的表 sellrecord 中,添加一個元組id 為 2000 的書籍 Oracle 數據庫實用教程庫,存為 2 本(相關語句在圖中顯示):

7、在當前 MySQL 命令行客戶端里面模擬李四購書,另外啟動一個 MySQL 命令行客戶 端,模擬王五購書(語句在圖中顯示)。

4:實驗心得

本次實驗了解 MySQL 事務的設置、提交和回退的方法和步驟,掌握 MySQL Command Line Client 中如何進行相關操作。了解 MySQL 的表鎖定與鎖定解除,掌握 MySQL Command Line Client 中如何進行相關操作。

實驗十二MySQL的常用函數MySQL 1:實驗目的

本次實驗了解 MySQL 常用字符串、日期和時間函數等的使用,掌握 MySQL Command Line Client 中如何進行相關操作。常用函數包括常用字符串、日期和時間函數等各類函數。2:實驗內容

啟動 MySQL 的命令行客戶端,輸入密碼 mysql(小寫);執行

五、教學過程中

(三)實驗內容的 1 部分,學習和驗證 MySQL 的字符串函數;在實驗步驟 2 的基礎上,學習如下兩個函數并完成題目:定位和位置函數 LOCATE(substr,str),返回字符串 str 中子字符串 substr 的第一次出現位置,如果 str 中不包含 substr,返回 0。

請使用LOCATE函數計算needle在haystackneedlehaystack第一次出現的位置;子字符串函數 SUBSTRING(str,pos,len),從字符串 str 返回一個長度同 len 字符相同的子字符串,起始于位置 pos;請使用 SUBSTRING 函數計算 backspace,從第 2 個字符起,長度為 5 的子字符串;字符串函數的解答腳本和結果請保存,老師會檢查;執行

五、教學過程中

(三)實驗內容的 2 部分,學習和驗證 MySQL 的日期和時間函數;在步驟 4 的基礎上,學習如下一個函數并完成題目:周函數 WEEK(date),返回 date 時間包含的星期數;請使用 WEEK 函數計算當前日期包含的星期數。3:實驗結果

4:實驗心得

通過本次實驗掌握了MySQL 常用函數包括常用字符串、日期和時間函數等各類函數,并且學會了MySQL Command Line Client 中如何進行相關操作。

第二篇:數據庫實驗報告

數據庫實驗報告

一、題目要求

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

銀行有多個支行。各個支行位于某個城市,每個支行有唯一的名字。銀行要監控每個支行的資產。銀行的客戶通過其身份證號來標識。銀行存儲每個客戶的姓名及其居住的街道和城市。客戶可以有帳戶,并且可以貸款。客戶可能和某個銀行員工發生聯系,該員工是此客戶的貸款負責人或銀行帳戶負責人。銀行員工也通過身份證號來標識。員工分為部門經理和普通員工,每個部門經理都負責領導其所在部門的員工,并且每個員工只允許在一個部門內工作。每個支行的管理機構存儲每個員工的姓名、電話號碼、家庭地址及其經理的身份證號。銀行還需知道每個員工開始工作的日期,由此日期可以推知員工的雇傭期。銀行提供兩類帳戶——儲蓄帳戶和支票帳戶。帳戶可以由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系統架構 采用向量的存儲結構存儲數......

    數據庫實驗報告

    課 程 實 驗 報 告 課程名稱: 數據庫系統概論專業班級:計科1207班學號: U201215002 姓名: 李文勇 指導教師:江勝報告日期: 2015年6月8日計算機科學與技術學院 目 錄 1 實驗一 基......

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

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

    數據庫實驗報告[精選]

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

    數據庫實驗報告格式

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

    Access數據庫實驗報告

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

    北工大 數據庫實驗報告

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

主站蜘蛛池模板: 无码精品a∨在线观看中文| 开心色怡人综合网站| 国产偷v国产偷v亚洲高清| 少妇粗大进出白浆嘿嘿视频| 强辱丰满人妻hd中文字幕| 国偷自产一区二区三区在线视频| 国产成人亚洲精品无码h在线| 亚洲av乱码久久精品蜜桃| 8x国产精品视频| 国产欧美久久一区二区三区| 粗大的内捧猛烈进出视频| 亚洲精品乱码久久久久蜜桃| 啦啦啦www在线观看免费视频| 亚洲综合图片区自拍区| 精品久久久无码中文字幕天天| av无码电影一区二区三区| 亚洲殴美国产日韩av| 中文字字幕国产精品| 男人激烈吮乳吃奶视频免费| 亚洲精品国产肉丝袜久久| 18处破外女出血在线| 亚洲毛片αv无线播放一区| 国产精品日本一区二区不卡视频| 国产99视频精品免费视频6| 无码无套少妇毛多69xxx| 99在线精品国自产拍中文字幕| 久久久久成人精品无码| 国色天香成人一区二区| 亚洲av综合永久无码精品天堂| 人人添人人妻人人爽夜欢视av| 无码高潮爽到爆的喷水视频app| 国内精品综合久久久40p| 国产成人精品免费视频大| 中文字幕+乱码+中文乱码www| 国产精品久久久久不卡无毒| 无码人妻丰满熟妇区10p| 曰本丰满熟妇xxxx性| 无码天堂亚洲国产av| 少妇被粗大的猛烈进出视频| 国语自产精品视频在线30| 亚洲精品亚洲人成在线观看下载|