第一篇:数据库实验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表
三.实验总结