第一篇:數據庫實驗6
HUNAN UNIVERSITY
實驗報告
題 目:
數據庫實驗六
學生姓名:
學生學號: 專業班級:
上課老師:
? 實驗目的
熟悉使用存儲過程來進行數據庫應用程序的設計。
? 實驗平臺和實驗工具
Windows10、mysql ? 實驗內容及要求
對學生課程數據庫,編寫存儲過程,完成下面功能:
1)統計離散數學的成績分布情況,即按照各分數段統計人數; 2)統計任意一門課的平均成績。
3)將學生選課成績從百分制改為等級制(即A、B、C、D、E);
步驟:
在實驗之前已經建立了student、course、score三張表
1)統計離散數學的成績分布情況,即按照各分數段統計人數 i.創建sc_rank表存放結果
ii.創建存儲過程
iii.執行存儲過程
iv.執行結果
根據score可以看出操作成功。
刪除存儲過程 v.2)統計任意一門課的平均成績 i.創建存儲結果的表score_avg:cname存儲課程名,avg存儲平均成績
ii.創建存儲過程
iii.執行存儲過程
iv.執行結果
由結果可以得出存儲過程得以正確執行。
刪除過程
3)將學生選課成績從百分制改為等級制(即A、B、C、D、E)i.創建存儲過程 v.ii.執行結果
從grade和newgrade的對比可以知道結果是正確的。
iii.刪除存儲過程
? 問題
在做第三小問的時候,出現了如下情況:
原因是:
我把不是游標范圍內做的事情放到游標的范圍里面去了,結果將列刪除了,插入不成功,出現錯誤。
? 實驗心得
在做這個實驗的時候上網查了好多資料,用的是mysql,有些語法與課本上有差異,很多都要自己琢磨,在一些語法上其他的數據庫可能簡單一些(如kingbase上支持record類型),有一些可能又會難一點,不過總體來說都差不多,主要還是懂,即使只是一點點的不同,不知道也是做不出來的。所以,這些東西還是需要花一些時間去查閱資料和花點時間來消化的。
以下為mysql存儲過程的一些知識點:
MySQL存儲過程的參數用在存儲過程的定義,共有三種參數類型,IN,OUT,INOUT,形式如:CREATE PROCEDURE([[IN |OUT |INOUT ] 參數名 數據類形...])IN 輸入參數:表示該參數的值必須在調用存儲過程時指定,在存儲過程中修改該參數的值不能被返回,為默認值
OUT 輸出參數:該值可在存儲過程內部被改變,并可返回 INOUT 輸入輸出參數:調用時指定,并且可被改變和返回
第二篇:數據庫實驗
實驗1.1 使用SQL Server工具(Microsoft SQL Server Management Studio Express)管理數據庫 實驗內容:
(1)使用SSMS(SQL Server Management Studio)加入實驗數據庫。(2)使用SSMS可視化建立、修改和刪除數據庫、表。(3)使用SSMS對數據庫進行備份和恢復。
(4)使用SSMS對表進行查詢、插入、修改、刪除。實驗步驟:
(1)加入School數據庫。(2)建立Test數據庫。
(3)在數據庫中建立人員表PERSON(P#,Pname,Page)。更改表設置P#為主鍵,增加屬性Ptype(類型是CHAR,長度是10)。
(4)用SSMS的查詢功能(新建查詢)對PERSON表進行查詢、插入、修改、刪除等操作:首先插入兩條記錄;修改第二條記錄;刪除第二條記錄。(5)備份Test數據庫。(6)刪除表PERSON。(7)恢復Test數據庫。(8)刪除Test數據庫。
第三篇:數據庫實驗
3.實驗步驟
在學生選課數據庫中實現其查詢操作,寫出T-SQL語句(注:學生選課數據庫為前三次實驗課所建立的數
據庫)
一、簡單查詢實驗
(1)查詢選修了課程的學生學號。
(2)查詢選修課程號為0101的學生學號和成績,并要求對查詢結果按成績降序排列,如果成績相同則按
學號升序排列。
(3)查詢選修課程號為0101的成績在80~90分之間的學生學號和成績,并將成績乘以系數0.8輸出。
二、連接查詢實驗
(1)查詢每個學生的情況以及他(她)所選修的課程。
(2)查詢選修離散散學課程且成績為90分以上的學生學號、姓名及成績。
(3)查詢每一門課的間接先行課(即先行課的先行課)
三、嵌套查詢操作
(1)查詢0101課程的成績高于張林的學生學號和成績。
(2)查詢其他系中年齡小于計算機系年齡最大者的學生。
(3)查詢同王洪敏“數據庫原理”課程分數相同的學生的學號。
(4)查詢選修了全部課程的學生的姓名。
(5)查詢與學號為09001103的學生所選修的全部課程相同的學生學號和姓名。
(6)查詢至少選修了學號為09001103的學生所選修的全部課程的學生學號和姓名。
四、組合查詢和分組查詢
(1)查找選修“計算機基礎”課程的學生成績比此課程的平均成績大的學生學號、成績。
(2)查詢年齡大于女同學平均年齡的男同學姓名和年齡。
(3)列出各系學生的總人數,并按人數進行降序排列。
(5)查詢選修計算機基礎和離散數學的學生學號和平均成績。
4、要求
請按題號依次作答,完成在word文檔中,寫明班級學號姓名,于周日之于周日之前發至xcf7@163.com,獨立完成,嚴禁抄
第四篇:數據庫第三次實驗
南昌航空大學實驗報告
2018年5月30日
課程名稱:
數據庫原理
實驗名稱: 數據庫安全性 學號: 16206127 指導教師評定:
姓名: 周良 簽名:
一,實驗目的
1熟悉不同數據庫中的保護措施——安全性控制,重點實踐○
SQL SEVER的安全性機制,掌握SQL Sever中有關用戶、角色及操作權限等的管理方法。
二,實驗內容
1,SQL Server的安全模式
(1)利用T-SQL添加SQL Sever賬號。
(2)利用T-SQL修改SQL Sever登陸賬號屬性。
(3)利用T-SQL刪除SQL Sever登陸賬號。
2,管理數據庫用戶
(1)利用T-SQL添加SQL Sever用戶。
(2)利用T-SQL刪除SQL Sever用戶。
3,管理數據庫角色
(1)利用T-SQL刪除用戶自定義角色,可以使用系統存儲過程sp_droprole刪除用戶自定義角色。
4,權限管理
(1)利用T-SQL管理權限
1語句授權。○2對象授權。○3收回授權。○三,實驗步驟
exec sp_addlogin 'qh','qh','jxgl','english'
四,exec sp_password 'qh','qhqxzsly','qh' 五,六,alter login qh with password='123456' 七,八,exec sp_droplogin qh 九,十,drop login qh 十一,十二,use jxgl 十三,exec sp_grantdbaccess 'DESKTOP-7M8SQ9T','qh' 十四,exec sp_revokedbaccess qh 十五,十六,use jxgl;
十七,exec sp_addrole 'newrole'
十八,exec sp_addrolemember 'newrole','qh' 十九,二十,exec sp_droprole 'newrole' 二十一,二十二,use master
二十三,grant create database to qh 二十四,二十五,二十六,grant create table,create view to qh 二十七,二十八,grant select on s to qh,qxz,sly 二十九,三十,grant insert,delete on s to shen 三十一,三十二,grant update on s(age,dept)to shen 三十三,三十四,grant execute on sp_ins_s to shen 三十五,三十六,revoke create table,create view form sly 三十七,三十八,revoke select on s from qxz ,sly 四,實驗心得
通過此次實驗我了解了SQL Sever中有關用戶、角色及操作權限等的管理方法,同時也更加注重數據庫安全性方面的問題,我們創建的每一個數據庫都應該考慮安全性問題,應該為數據庫創建一些必要的角色,同時也要管理數據庫的權限方面,防止數據向外流失,或者被黑客盜用。
第五篇:數據庫實驗一
山東建筑大學 計算機學院 實驗報告
班級 姓名: 學號: 實驗成績:
課程: 數據庫系統概論 同組者: 實驗日期:2018年3月3日
實驗一 創建數據庫
一.實驗目的
1.學會數據表的創建; 2.加深對表間關系的理解;
3.理解數據庫中數據的簡單查詢方法和應用。二.實驗內容
1.實驗數據庫中涉及到四個表供應商表S、零件表P、工程表J、供應關系表SPJ。每個表的結構如下:
create table S(SNO char(10)PRIMARY KEY, SNMAE VARCHAR(10)UNIQUE,STATUS CHAR(10), CITY CHAR(10));
create table P(PNO CHAR(10)PRIMARY KEY, PNAME VARCHAR(10), COLOR CHAR(10),WEIGHT INT);
CREATE TABLE J(JNO CHAR(10)PRIMARY KEY, JNAME VARCHAR(10), CITY CHAR(10));
CREATE TABLE SPJ(SNO CHAR(10), PNO CHAR(10), JNO CHAR(10), QIT INT,PRIMARY KEY(SNO,PNO,JNO),FOREIGN KEY(SNO)REFERENCES S(SNO),FOREIGN KEY(PNO)REFERENCES P(PNO),FOREIGN KEY(JNO)REFERENCES J(JNO),);山東建筑大學 計算機學院 實驗報告
班級 姓名: 學號: 實驗成績:
課程: 數據庫系統概論 同組者: 實驗日期:2018年3月3日
SELECT * FROM SPJ;
INSERT
INTO S(SNO,SNMAE,STATUS,CITY)values('S1','精益','20','天津');INSERT
INTO S(SNO,SNMAE,STATUS,CITY)values('S2','盛錫','10','北京');INSERT
INTO S(SNO,SNMAE,STATUS,CITY)values('S3','東方紅','30','北京');INSERT
INTO S(SNO,SNMAE,STATUS,CITY)values('S4','豐泰盛','20','天津');INSERT
INTO S(SNO,SNMAE,STATUS,CITY)values('S5','為民','30','上海');
SELECT * FROM S;
INSERT
INTO P(PNO,PNAME,COLOR,WEIGHT)VALUES('P1','螺母','紅',12);INSERT
INTO P(PNO,PNAME,COLOR,WEIGHT)VALUES('P2','螺栓','綠',17);INSERT
INTO P(PNO,PNAME,COLOR,WEIGHT)VALUES('P3','螺絲刀','藍',14);INSERT
INTO P(PNO,PNAME,COLOR,WEIGHT)VALUES('P4','螺絲刀','紅',14);INSERT
INTO P(PNO,PNAME,COLOR,WEIGHT)VALUES('P5','凸輪','藍',40);INSERT
INTO P(PNO,PNAME,COLOR,WEIGHT)VALUES('P6','齒輪','紅',30);
SELECT * FROM P;SELECT * FROM S;山東建筑大學 計算機學院 實驗報告
班級 姓名: 學號: 實驗成績:
課程: 數據庫系統概論 同組者: 實驗日期:2018年3月3日
INSERT
INTO J(JNO,JNAME,CITY)VALUES('J1','三建','北京');INSERT
INTO J(JNO,JNAME,CITY)VALUES('J2','一汽','長春');INSERT
INTO J(JNO,JNAME,CITY)VALUES('J3','彈簧廠','天津');INSERT
INTO J(JNO,JNAME,CITY)VALUES('J4','造船廠','天津');INSERT
INTO J(JNO,JNAME,CITY)VALUES('J5','機車廠','唐山');INSERT
INTO J(JNO,JNAME,CITY)
VALUES('J6','無線電廠','常州');INSERT
INTO J(JNO,JNAME,CITY)
VALUES('J7','半導體廠','南京');
SELECT * FROM J;
INSERT
INTO SPJ(SNO,PNO,JNO,QIT)VALUES('S1','P1','J1',200);INSERT
INTO SPJ(SNO,PNO,JNO,QIT)VALUES('S1','P1','J3',100);INSERT
INTO SPJ(SNO,PNO,JNO,QIT)VALUES('S1','P1','J4',700);INSERT
INTO SPJ(SNO,PNO,JNO,QIT)VALUES('S1','P2','J2',100);INSERT
INTO SPJ(SNO,PNO,JNO,QIT)VALUES('S2','P3','J1',400);INSERT
INTO SPJ(SNO,PNO,JNO,QIT)山東建筑大學 計算機學院 實驗報告
班級 姓名: 學號: 實驗成績:
課程: 數據庫系統概論 同組者: 實驗日期:2018年3月3日
VALUES('S2','P3','J2',200);INSERT
INTO SPJ(SNO,PNO,JNO,QIT)VALUES('S2','P3','J4',500);INSERT
INTO SPJ(SNO,PNO,JNO,QIT)VALUES('S2','P3','J5',400);INSERT
INTO SPJ(SNO,PNO,JNO,QIT)VALUES('S2','P5','J1',400);INSERT
INTO SPJ(SNO,PNO,JNO,QIT)VALUES('S2','P5','J2',100);INSERT
INTO SPJ(SNO,PNO,JNO,QIT)VALUES('S3','P1','J1',200);INSERT
INTO SPJ(SNO,PNO,JNO,QIT)VALUES('S3','P3','J1',200);INSERT
INTO SPJ(SNO,PNO,JNO,QIT)VALUES('S4','P5','J1',100);INSERT
INTO SPJ(SNO,PNO,JNO,QIT)VALUES('S4','P6','J3',300);INSERT
INTO SPJ(SNO,PNO,JNO,QIT)VALUES('S4','P6','J4',200);INSERT
INTO SPJ(SNO,PNO,JNO,QIT)VALUES('S5','P2','J4',100);INSERT
INTO SPJ(SNO,PNO,JNO,QIT)VALUES('S5','P3','J1',200);INSERT
INTO SPJ(SNO,PNO,JNO,QIT)VALUES('S5','P6','J2',200);INSERT
INTO SPJ(SNO,PNO,JNO,QIT)VALUES('S5','P6','J4',500);山東建筑大學 計算機學院 實驗報告
班級 姓名: 學號: 實驗成績:
課程: 數據庫系統概論 同組者: 實驗日期:2018年3月3日
SELECT * FROM SPJ;
CREATE UNIQUE INDEX Ssno ON S(SNO);CREATE UNIQUE INDEX Ppno ON P(PNO);CREATE UNIQUE INDEX Jjno ON J(JNO);
CREATE UNIQUE INDEX SPJspj ON SPJ(SNO,PNO,JNO);
執行結果為: S表
P表
J表
山東建筑大學 計算機學院 實驗報告
班級 姓名: 學號: 實驗成績:
課程: 數據庫系統概論 同組者: 實驗日期:2018年3月3日
SPJ表
表的結構如下:
CREATE TABLE Student(SNO CHAR(10)PRIMARY KEY, SNAME CHAR(10)UNIQUE, SSEX CHAR(2), SAGE SMALLINT, SDEPT CHAR(20));
CREATE TABLE Course(CNO CHAR(4)PRIMARY KEY, CNAME CHAR(40)NOT NULL, CPNO CHAR(4), CCREDIT SMALLINT,);
2.實驗數據庫中涉及到三表學生關系Student, 課程關系Course, 選修關系SC。每個山東建筑大學 計算機學院 實驗報告
班級 姓名: 學號: 實驗成績:
課程: 數據庫系統概論 同組者: 實驗日期:2018年3月3日
CREATE TABLE SC(SNO CHAR(10), CNO CHAR(4), GRADE SMALLINT,PRIMARY KEY(SNO,CNO),FOREIGN KEY(SNO)REFERENCES Student(SNO),FOREIGN KEY(CNO)REFERENCES Course(CNO));
INSERT
INTO Student(SNO,SNAME,SSEX,SAGE,SDEPT)VALUES('201215121','李勇','男',20,'CS');INSERT
INTO Student(SNO,SNAME,SSEX,SAGE,SDEPT)VALUES('201215122','劉晨','女',19,'CS');INSERT
INTO Student(SNO,SNAME,SSEX,SAGE,SDEPT)VALUES('201215123','王敏','女',18,'MA');INSERT
INTO Student(SNO,SNAME,SSEX,SAGE,SDEPT)VALUES('201215125','張立','男',19,'IS');
INSERT
INTO Course(CNO,CNAME,CPNO,CCREDIT)VALUES('1','數據庫','5',4);INSERT
INTO Course(CNO,CNAME,CPNO,CCREDIT)VALUES('2','數學','',2);INSERT
INTO Course(CNO,CNAME,CPNO,CCREDIT)VALUES('3','信息系統','1',4);INSERT
INTO Course(CNO,CNAME,CPNO,CCREDIT)VALUES('4','操作系統','6',3);INSERT
INTO Course(CNO,CNAME,CPNO,CCREDIT)VALUES('5','數據結構','7',4);INSERT
INTO Course(CNO,CNAME,CPNO,CCREDIT)VALUES('6','數據處理','',2);山東建筑大學 計算機學院 實驗報告
班級 姓名: 學號: 實驗成績:
課程: 數據庫系統概論 同組者: 實驗日期:2018年3月3日
INSERT
INTO Course(CNO,CNAME,CPNO,CCREDIT)VALUES('7','PASCAL語言','6',4);
select * from Course;
INSERT
INTO SC(SNO,CNO,GRADE)VALUES('201215121','1',92);INSERT
INTO SC(SNO,CNO,GRADE)VALUES('201215121','2',85);INSERT
INTO SC(SNO,CNO,GRADE)VALUES('201215121','3',88);INSERT
INTO SC(SNO,CNO,GRADE)VALUES('201215122','2',90);INSERT
INTO SC(SNO,CNO,GRADE)VALUES('201215122','3',80);
select * from SC;
執行結果: Student表
山東建筑大學 計算機學院 實驗報告
班級 姓名: 學號: 實驗成績:
課程: 數據庫系統概論 同組者: 實驗日期:2018年3月3日
Course表
SC表
三.實驗總結