数据库系统应用与开发--实验三
数据库系统原理与应用实验报告

《数据库系统原理及应用》实验报告实验一定义表和数据库完整性一、目的和要求1.了解SQL Server 数据库的逻辑结构和物理结构。
2.了解表的结构特点。
3.了解SQL Server 的基本数据类型。
4.学会在企业管理器中创建数据库和表。
5.学会使用T-SQL 语句创建数据库和表。
二、实验准备1.要明确能够创建数据库的用户必须是系统管理员,或是被授权使用CREATE DATABASE语句的用户。
2.创建数据库必须要确定数据库名、所有者(即创建数据库的用户)、数据库大小(最初的大小、最大的大小、是否允许增长及增长的方式)和存储数据的文件。
3.确定数据库包含哪些表以及包含的各表的结构,还要了解SQL Server 的常用数据类型,以创建数据库的表。
4.了解常用的创建数据库和表的方法。
三、实验内容1、使用SQL 语句创建表CREATE TABLE Customers(CustomerID int IDENTITY(1,1) PRIMARY KEY,Cname varchar(8) NOT NULL,Address varchar(50),City varchar(10),Tel varchar(20) UNIQUE,Company varchar(50),Birthday datetime,Type tinyint DEFAULT 1);CREATE TABLE Goods(GoodsID int CONSTRAINT C1 PRIMARY KEY,GoodsName varchar(20) NOT NULL,Price money,Description varchar(200),Storage int,Provider varchar(50),Status tinyint DEFAULT(0));CREATE TABLE Orders(OrderID INT IDENTITY(1,1) CONSTRAINT C2 PRIMARY KEY,GoodsID INT NOT NULL REFERENCES Goods(GoodsID) ON DELETE CASCADE,CustomerID int NOT NULL FOREIGN KEY(CustomerID)REFERENCES Customers(CustomerID) ON DELETE NO ACTION, Quantity int NOT NULL CONSTRAINT C3 CHECK(Quantity>0),OrderSum money NOT NULL,OrderDate datetime DEFAULT(getdate()));建表结果如下图所示:实验二表数据的插入、修改和删除一、目的和要求1.学会在企业管理器中对表进行插入、修改和删除数据操作。
《数据库原理与应用》实验报告三及答案

结果:
警告:聚合或其他SET操作消除了Null值。
学生号选课门数平均分所选学分
--------- ----------- ---------------------- -----------
081220101 669 22
(1行受影响)
4、思考题
1)存储过程和触发器的异同点?
二、实验环境及相关情况(包含使用软件、实验设备、主要仪器及材料等)
1、计算机操作系统要求在windows XP以上。
2、并要求SQL Server软件2000以后版本。
三、实验内容及要求
利用实验指导书中的关系数据库完成下面题目:
1、说明下面代码段的功能
LE (SELECT____avg________(NormalMark) FROMstudent_course)<80
BEGIN
if (SELECT MAX(NormalMark) FROMstudent_course)>____95_____
BREAK
ELSE
___UPDATE student_course
case trank
when‘教授’then‘高级职称’
when‘讲师’then‘中级职称’
else
‘初级职称’
end
from teacher
答:在教师表中选取姓名和性别两列,并给每个教师分等级;
2、完成下面代码的书写
计算student_course表的平时分数列的平均值。如果小于80,则分数增加其值的5%;如果分数的最高值超过95,则终止该操作。在以下代码划线处填入适当的内容以完成上述功能。
SET NormalMark = NormalMark *1.05
数据库实验三

计算机与信息学院实验报告系:专业:年级:姓名:学号:22 实验室号计算机号22 实验时间:2013年10月29日指导教师签字:成绩:报告退发(订正、重做)实验名称:(三)数据库的定义实验一、实验目的和要求(1)掌握SQL Server查询分析器的使用方法,加深对SQL和Transact-SQL语言的查询语句的理解。
(2)熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。
(3)熟练掌握数据查询中的分组、统计、计算和组合的操作方法。
二、实验内容和原理1. 基本操作实验用Transact-SQL语句表示下列操作.在学生-课程库中实现其数据查询操作:(1)求数学系学生的学号和姓名。
(2)求选修了高等数学的学生学号、姓名和成绩。
(3)求选修C1课程的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。
(4)获选修课程C1且成绩在80~90分之间的学生学号、姓名及成绩,并将成绩乘以系数0.8输出。
(5)求数学系或计算机系姓张的学生的信息。
(6)求缺少了成绩的学生的学号和课程号。
(7)求C1课程的成绩高于张三的学生学号和成绩。
(8)求其他系中比计算机系学生年龄都小的学生。
(9)查询选修了全部课程的学生的姓名。
(10)求至少选修了学生“张三”所选修的全部课程的学生学号和姓名。
(11)查询每一门课的间接先行课(即先行课的先行课)。
在图书-图书库中实现其查询操作。
(1)查找这样的图书类别:要求类别中最高的图书定价不低于全部按类别分组的图书平均定价的2倍。
(2)求机械工业出版社出版的各类图书的平均定价,用GROUP BY表示。
(3)列出计算机类图书的书号、名称及价格,最后求出册数和总价格。
(4)列出计算机类图书的书号、名称及价格,并求出各出版社这类书的总价格,最后求出全部册数和总价格。
(5)查询计算机类和机械工业出版社出版的图书。
(6)在图书-借阅库中实现其查询操作:将计算机类的书存入永久的计算机图书表中,将借书日期在1999年以前的借阅记录存入临时的超期借阅表。
数据库实验三

数据库实验三《数据查询与操作》实验一、实验目的与要求1、掌握多表查询:嵌套查询的使用。
2、掌握INSERT、UPDATE和DELETE语句的一般格式与使用方法。
3、掌握视图的创建和删除、视图的NSERT、UPDATE和DELETE 的应用二、实验平台1、操作系统:Windows XP或Windows 20032、数据库管理系统:SQL Server 2005三、实验内容实验前,先附加“教务管理系统”,在“教务管理系统”的数据库中进行一下查询:嵌套查询1、在“教务管理系统”数据库中,根据相关表的内容,查询平均成绩大于70的课程信息select课程名称from课程信息where课程编号in(select课程编号from选课表group by课程编号having avg(成绩)>70)2、从“教务管理系统”数据库中,查询人数超过45人所在班级中的学生的学号、姓名和班级名称。
select学号,姓名,b.班级编号,班级名称from学生信息x,班级信息bwhere x.班级编号= b.班级编号and x.班级编号in(select班级编号from班级信息where人数>45)3、在“教务管理系统”数据库中,查询学生姓名为“朱文娟”所在班级的学生信息,要求返回学生的学号、姓名、性别、班级编号、班级名称和年级信息select学号,姓名,性别,x.年级,b.班级编号,班级名称from学生信息x,班级信息bwhere x.班级编号= b.班级编号and x.班级编号=(select班级编号from学生信息where姓名='朱文娟')4、在“教务管理系统”数据库中,查询出所有非计算机系的学生信息,并显示出这些学生的考试成绩,再按成绩进行降序排列显示,要求返回学生的学号、姓名、班级编号、课程编号和成绩信息。
select学生信息.学号,姓名,班级编号,课程编号,成绩from学生信息left join选课表on学生信息.学号=选课表.学号where学生信息.班级编号<>(select班级编号from班级信息where班级名称 LIKE '计算机%')数据更新(一)添加教务信息1、在2003年级中创建一个新班级,编号为20031340000200、班级名称为“环境与科学”、班级人数为60、班主任为“张浩”。
数据库原理 实验三 数据定义

《数据库原理及应用》上机实验实验三数据定义一、学时2学时二、实验类型设计三、实验目的1.巩固数据库的基础知识;2.熟悉SQL Server2012中常用的数据类型;3.熟悉和掌握利用查询分析器进行数据表的建立、修改和删除的方法;4.利用查询分析器用SQL语言定义索引并进行相关操作。
四、实验准备1.熟悉SQL Server 2012的工作环境;2.复习有关表的建立、修改和删除的SQL语言命令和方法;3.复习有关索引的建立、修改和删除的SQL语言命令和方法。
五、实验方法及步骤1.登陆企业管理器/查询分析器;2.创建数据库或连接已建立的数据库;3.在当前数据库上建立新表,并注意定义表的主码,外码;4.修改表的结构;5.在表上建立索引;6.删除表的定义。
六、实验内容使用企业管理器完成以下操作:1.创建学生课程数据库SCDB,并在SCDB中完成以下操作。
CREATE DATABASE SCDB2.创建附录中的学生关系表student:(学号为主码,姓名要求唯一值,各属性数据类型根据实际情况设置);CREATE TABLE student(sno CHAR(11)PRIMARY KEY,sname VARCHAR(12)UNIQUE,ssex VARCHAR(6),sage INT,sdept VARCHAR(50))3.创建附录中的课程关系表course:(课程号为主码,各属性数据类型根据实际情况设置);CREATE TABLE course(cno CHAR(3)PRIMARY KEY,cname VARCHAR(12),cpo VARCHAR(12),credit INT)4.创建附录中的选课关系表sc:(sno和cno共同作为主码,sno和cno分别为外码,各属性数据类型根据实际情况设置);CREATE TABLE sc(sno CHAR(11)FOREIGN KEY REFERENCES student(sno),cno CHAR(3)FOREIGN KEY REFERENCES course(cno),grade int,PRIMARY KEY (sno,cno))5.在表student上增加“出生日期”属性列sbirth,数据类型为日期型。
数据库原理及应用实验指导书答案

数据库原理及应用实验指导书 - 答案实验一:数据库管理系统的安装与配置问题一数据库管理系统(DBMS)是一种软件,用于管理和组织数据库。
它允许用户创建,读取,更新和删除数据库中的数据。
常见的数据库管理系统有MySQL,Oracle,SQL Server等。
问题二在实验室环境中,我们将使用MySQL作为我们的数据库管理系统。
以下是MySQL的一些常见特点: - 开源免费 - 跨平台支持 - 可扩展性强 - 有大型的用户社区和丰富的资源支持问题三MySQL的安装步骤如下: 1. 下载MySQL安装文件,可以从MySQL官方网站或者其他可信的下载源获取。
2. 运行安装程序,按照向导的指示进行安装。
3. 选择是否要安装MySQL 服务器和MySQL工具。
4. 设置密码以保护数据库的安全。
5. 完成安装程序并启动MySQL服务。
数据库是一个组织和存储数据的容器。
在关系型数据库中,数据以表的形式存储,每个表包含多个行和列。
每行代表一个记录,每列代表一个字段。
问题五关系型数据库管理系统(RDBMS)是一种DBMS,它使用结构化查询语言(SQL)来操作和处理数据。
常见的关系型数据库管理系统有MySQL,Oracle,SQL Server等。
问题六开放数据库连接(ODBC)是一种标准的数据库访问方法,它允许不同的应用程序通过统一的接口访问不同的数据库管理系统。
ODBC驱动程序充当应用程序和数据库之间的翻译器。
问题七在Windows系统中,ODBC数据源可以通过控制面板的“管理工具”来配置。
在数据源配置对话框中,可以添加,编辑和删除ODBC数据源。
在Windows系统中,可以使用ODBC接口库和ODBC驱动程序来连接和操作数据库。
具体步骤如下: 1. 加载ODBC接口库。
2. 初始化ODBC环境。
3. 建立数据库连接。
4. 执行SQL语句。
5. 关闭数据库连接。
6. 释放ODBC环境。
问题九ODBC接口库是一组API函数,用于连接和操作数据库。
数据库实验报告3

数据库实验报告课程:数据库原理及应用正文:一、实验目的1.理解索引和视图的概念。
2.掌握索引的使用方法。
3.掌握视图的定义和使用方法。
4.理解存储过程的概念,掌握存储过程的使用方法。
5.学习触发器的使用,体会触发器执行的时机,加深对触发器功能和作用的理解。
6.理解SQL Server2000验证用户身份的过程,掌握设置身份验证模式的方法。
7.理解登陆账号的概念,掌握混合认证模式下登陆账号的建立与取消方法。
8.掌握混合认证模式下数据库用户的建立与取消。
9.掌握数据库用户权限的设置方法。
10.理解角色的概念,掌握管理角色技术。
11.学会配制ODBC数据源。
了解使用ODBC来进行数据库应用程序设计,通过ODBC接口访问数据库并对数据库进行操作。
学习在Visual Basic中使用ADO控件访问后台的SQL Server数据库。
二、实验内容1.建立索引。
对JWGL数据库的学生选课表SC建立索引,要求按照Cno升序、Grade降序建立一个名为SC_ind的索引。
USE JWGLIF EXISTS(SELECT name FROM sysindexes WHERE name = 'SC_ind')DROP INDEX SC.SC_ind;GOUSE JWGLCREATE INDEX SC_ind ON SC (Cno,Grade DESC);2.视图的定义和操作,(1)在JWGL数据库里,完成第三章例3.54~例3.61例题中视图的定义和视图上的查询、更新操作。
(2)在Market数据库中,完成第三章习题11中(1)中建立视图的操作,然后在视图上完成第三章习题11(2)的查询操作。
3.在数据库JWGL中,完成第四章例1,例3~7中例题的创建存储过程的操作,并使用EXEC语句调用这些存储过程执行,观察他们的执行结果。
4.在Market数据库中,完成第四章习题5中(1)~(4)创建存储过程的操作。
数据库系统实验报告实验三数据控制

可得到最后界面如下:3.以sa用户(DBA)登录,运行教材上中的例1~例7对7个新用户授权。
每运行一个例子后,以相应的用户名重新登录,验证新用户是否具有授予的权限。
注:SQL Server中的权限授予与回收命令与教材例题上的细节有所不同,这里只写出中的权限授予与回收命令语句。
在SQL 2000【例1】把查询student表的权限授给用户u1。
GRANT SELECTON studentTO u1;执行完授权语句后,用u1登录,验证其是否已有查询权利。
重新连接数据库,登录界面如下:用u1登录后,执行一条SELECT命令,显示了查询结果如下所示,说明u1已具有了对student表的查询权限。
【例2】把对student表和course表的全部操作权限授予用户u2和u3。
GRANT ALL PRIVILEGESON studentTO u2,u3;GRANT ALL PRIVILEGESON courseTO u2,u3;执行完授权语句后,用u2登录,验证其是否已有所有权利。
用u2登录后,执行两条SELECT命令,显示了查询结果如下所示,说明u2已具有了对student表的查询权限,再执行INSERT命令,DELETE命令,UPDATE 命令,同样可得到结果。
说明u2已具有了对student表和SC表的所有权限。
同u2一样,u3也已具有了对student表和SC表的所有权限。
【例3】把对表SC的查询权限授予所有的用户。
GRANT SELECTON SCTO PUBLIC;【例4】把查询student表和修改学生学号的权限授予用户u4。
GRANT UPDATE(Sno),SELECTON studentTO u4;执行完授权语句后,用u4登录,验证其是否已有相应权利。
用u4登录后,执行一条SELECT命令和一条UPDATE命令,显示了查询结果如下所示,说明u4已具有了对student表的查询权限,和对学生学号的修改权限。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三JDBC基础(2)
一、相关知识点
1、JDBC基本概念
2、JDBC简单查询、preparedstatement、连接查询、集函数查询等
Odbc:
Jdbc:
二、实验目的:
理解Java连接数据库的基本概念。
理解Statement对象、PreparedStatement对象和ResultSet对象。
三、实验内容:
1、游标滚动模式试验。
第一步:将RsTest类放入对应的工程包中.zucc.booklib.rstest;
第二步:在BeanSystemUser表中增加一些测试数据;
第三步:运行程序,并查看执行结果。
第四步:将游标滚动模式改成TYPE_SCROLL_SENSITIVE,运行程序,并查看结果
【实验结果与分析】
A、第三步、第四步运行结果截图?并说明区别。
第三步:
第四步:修改前
第四步:修改后
B、
2、利用ResultSet对象进行数据修改
第一步:将RsTest2类放入对应的工程包中.zucc.booklib.rstest;
第二步:运行程序,并查看执行结果。
第三步:删除rs.updateRow(); 允许程序,并查看执行结果
【实验结果与分析】
A、请给出第二步、第三步的执行截图。
说明区别,并分析原因。
第二步:
第三步:
3、利用PreparedStatement对象修改实验二的两个对出版社的查询。
第一步:在实验二的基础上,把传入的查询条件(出版社名称)改成带单引号的字符串,并运行程序。
查看执行结果。
第二步:将原来的查询函数,改成用PreparedStatement。
运行程序,查看执行结果。
通用把传入的查询条件(出版社名称)改成带单引号的字符串,并运行程序。
查看执行结果。
【实验结果与分析】
A、第一步执行结果截图。
B、第二步执行结果截图。
比较两种方式的区别。
4、连接查询,模仿ReaderManager类中的方法:public List<BeanReader>
searchReader(String keyword,int readerTypeId)throws BaseException。
编写新方法
public List<BeanReader> searchReader(String keyword,String readerTypeName)throws BaseException。
即把条件中的读者类别ID改成读者类别名称。
【实验结果与分析】
A、修改后的sql语句部分是。
public List<BeanReader> searchReader(String keyword,String readerTypeName)throws BaseException{
List<BeanReader> result=new ArrayList<BeanReader>();
Connection conn=null;
try {
conn=DBUtil.getConnection();
String sql="select
readerid,readerName,r.readerTypeId,r.lendBookLimitted,createDate,crea torUserId,stopDate,stopUserId,rt.readerTypeName" +
" from BeanReader r,BeanReaderType rt where r.readerTypeId=rt.readerTypeId" +
" and removeDate is null ";
//if(readerTypeId>0) sql+=" and
r.readerTypeId="+readerTypeId;
if(keyword!=null && !"".equals(keyword))
sql+=" and (readerid like ? or readerName like ?)";
if(readerTypeName!=null
&& !"".equals(readerTypeName))
sql+=" and r.readerTypeId="+readerTypeName;
sql+=" order by readerid";
java.sql.PreparedStatement
pst=conn.prepareStatement(sql);
if(keyword!=null && !"".equals(keyword)){
pst.setString(1, "%"+keyword+"%");
pst.setString(2, "%"+keyword+"%");
pst.setString(3, "%"+readerTypeName+"%");
}
java.sql.ResultSet rs=pst.executeQuery();
while(rs.next()){
BeanReader r=new BeanReader();
r.setReaderid(rs.getString(1));
r.setReaderName(rs.getString(2));
r.setReaderTypeId(rs.getInt(3));
r.setLendBookLimitted(rs.getInt(4));
r.setCreateDate(rs.getDate(5));
r.setCreatorUserId(rs.getString(6));
r.setStopDate(rs.getDate(7));
r.setStopUserId(rs.getString(8));
r.setReaderTypeName(rs.getString(9));
result.add(r);
}
} catch (SQLException e) {
e.printStackTrace();
throw new DbException(e);
}
finally{
if(conn!=null)
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return result;
}。