当前位置:文档之家› 数据库实验报告三

数据库实验报告三

数据库实验报告三
数据库实验报告三

《数据库原理》实验报告

实验五: 触发器、存储过程和函数

实验六:

ODBC/JDBC 数据库编程

学号 姓名 班级 日期

2013302534

杨添文

10011303

2015.10.31

实验五:触发器、存储过程和函数

一、实验内容

1. 使用系统存储过程(sp_rename)将视图“V_SPJ ”更名为“V_SPJ_三建”。(5分)

(1)在原有数据库SPJ 中,建立如下语句:

exec sp_rename 'V_SPJ','V_SPJ 三建' (2)结果为:

2. 针对SPJ 数据库,创建并执行如下的存储过程:(共计35分)

(1) 创建一个带参数的存储过程—jsearch 。该存储过程的作用是:当任意输入一个工

程代号时,将返回供应该工程零件的供应商的名称(SNAME)和零件的名称(PNAME)以及工程的名称(JNAME)。执行jsearch 存储过程,查询“J1”对应的信息。(10分)

(1)存储过程为:

create procedure jsearch (@searchingfor_jno nchar (20)) as begin

select J .JNAME ,S .SNAME ,P .PNAME from S ,P ,J ,SPJ where SPJ .JNO = @searchingfor_jno and SPJ .JNO =J .JNO and SPJ .SNO =S .SNO and SPJ .PNO =P .PNO End

use[SPJ]

go

(2)执行存储过程如下:

declare @solution int

exec @solution = [dbo].[jsearch]

@searchingfor_jno =N'J1'

select'solution'= @solution

go

(3)结果:

(2)使用S表,为其创建一个加密的存储过程—jmsearch。该存储过程的作用是:当执

行该存储过程时,将返回北京供应商的所有信息。(10分)

create procedure jmsearch

with encryption

as

begin

select*

from S

where CITY ='北京'

end

(3)使用系统存储过程sp_helptext查看jsearch, jmsearch的文本信息。(5分)

(1)当输入为:

exec sp_helptext'jsearch'

结果是:

(2)当输入为:

exec sp_helptext'jmsearch'

结果是:

(4)执行jmsearch存储过程,查看北京供应商的情况。(5分)

(1)执行存储过程:

use[SPJ]

go

declare @solution int

exec @solution = [dbo].[jmsearch]

select'solution'= @solution

go

(2)结果为:

(5)删除jmsearch存储过程。(5分)

drop procedure jmsearch

3.针对Student数据库,创建和执行如下的触发器:(共计40分)

(1)删除SC表上的外键约束,针对SC表创建一个名为insert_s的INSERT触发器。该

触发器的功能:当用户向SC表中插入记录时,如果插入的cno值不是C表中Cno 的已有值,则提示用户“不能插入记录这样的纪录”,否则提示“记录插入成功”。

触发器创建成功之后,向SC表插入记录,验证触发器是否正常工作。(5分)

(1)创建触发器:

use student

go

create trigger insert_s

on sc

after insert

as

if(exists(

select*from inserted

where cno !='1'or cno !='2'or cno !='3'or cno !='6')

)

begin

print'不能插入记录这样的纪录'

rollback transaction

end

else

print'记录插入成功'

(2)验证:

use student

go

insert into

sc(sno,cno,grade)

values('95001','5','88')

结果:

(2)为S表创建一个名为dele_s1的DELETE触发器,该触发器的作用是禁止删除S表

中的记录。触发器创建成功之后,删除S表中的记录,验证触发器是否正常工作。

(5分)

(1)创建触发器:

use student

go

create trigger dele_s1

on s

after delete

as

rollback transaction

print'不能删除表中纪录'

go

(2)验证:

当要删除表中记录时,出现如下图所示情况

(3)为S表创建一个名为dele_s2的DELETE触发器,该触发器的作用是删除S表中的

记录时删除SC表中该学生的选课纪录。触发器创建成功之后,删除S表中的记录,验证触发器是否正常工作(SC表中的数据被正常删除)。(5分)

(1)创建触发器:

use student

go

create trigger dele_s2

on s

for delete

as

delete from sc

where sc.sno in

(

select sno from deleted

)

(2)验证:(前提:删除触发器dele_s1,否则不能删除S表记录)

delete from s

where s.sno='95001'

select*from sc

结果为:

(4)为S表创建一个名为update_s的UPDATE触发器,该触发器的作用是禁止更新S

表中“sdept”字段的内容。触发器创建成功之后,更新S表中“sdept”字段的内容,验证触发器是否正常工作。(5分)

(1)创建触发器:

use student

go

create trigger update_s

on s

after update

as

if update(sdept)

begin

raiserror('sdept不能被更改',10,1)

rollback transaction

end

(2)验证:

当要进行数据更改时,出现如下图所示情况:

(5)禁用update_s触发器。禁用之后,更新S表中的“sdept”字段的内容,验证触发

器是否还继续正常工作。(5分)

(1)禁用触发器:

use student

go

disable trigger update_s

on s

go

(2)验证:

已经将“MA”更改为“IS”,如下图所示:

(6)删除update_s触发器。(5分)

use student

go

drop trigger update_s

go

(7)创建一个新的课程成绩统计表 CAvgGrade(Cno, Snum, examSNum, avgGrade),分

别表示课号,选该课程的学生人数,参加考试人数,该门课程的平均成绩。利用触发器实现如下的功能:当SC表中有记录插入、删除或者更新时,自动更新表

CAvgGrade。注意SC表中的grade为NULL时表明该学生还未参加考试,计算平均成绩时不需要计算该成绩,但是grade为0即考试成绩为0时,需要计算该成绩。

(10分)

(1)创建统计表CAvgGrade:

create table CAvgGrade

(

cno char(10)primary key,

snum int,

examsnum int,

avggrade float

)

(2)创建触发器:

use student

go

create trigger upd_ins_dele_CAvgGrade

on sc

after update,insert,delete

as

begin

declare @cno char(10)

declare @snum int

declare @examsum int

declare @avggrade int

select @cno=cno from inserted

select @cno=cno from deleted

select @snum =COUNT (*)from sc where @cno=cno

select@examsum =COUNT(*)from sc where@cno=cno and grade>=0 select @avggrade =AVG(grade)from sc where @cno=cno and

grade>=0

update CAvgGrade

set

snum=@snum,cno=@cno,examsnum=@examsum,avggrade=@avggrade where cno=@cno

end

(3)测试:

A、(测试插入)

use student

go

insert into sc

values('95005','1',88)

结果为:

(CAvgGrade表)

(sc表)

B、(测试删除)

use student

go

delete from sc

where cno='1' 结果为:(CAvgGrade表)

(sc表)

C、(测试更改)update sc

set grade=99 where cno='1'结果为:(CAvgGrade表)

(sc表)

4.创建一个works数据库,其中包含员工表empoyee(eID, eName, salary),假设该表

中有1000条员工数据,完成下列要求(总计20分,每题10分)。

(1)为了协助本题自动生成1000条员工数据,创建一个自动生成员工ID的用户自定义

函数generateEID。其中员工ID要求是一个8位的数字,前四位表示插入员工数据的当前年份,后四位按照从0001到9999的顺序增长。例如2015年插入的第一条数据是20050001,所有1000条员工ID分别是20150001-20151000。调用该函数实现自动插入1000条数据。(注意插入数据的时候员工姓名可以为任意值,工资是2000-5000之间的数字)

(1)自定义:

use works

go

create procedure generateEID

as

begin

declare @for int

set @for = 0

while(@for < 1000)

begin

insert into

employee

values(20050001+@for,'name'+CAST(@for as

NCHAR(20)),2000+CAST(FLOOR(rand()*3001)as int))

set @for=@for+1

end

end

use works

go

DECLARE@return_value int

EXEC@return_value = [dbo].[generateEID]

SELECT'Return Value'= @return_value

GO

(2)结果:

(2)该公司计划为员工按照一定的规则涨工资,请使用游标创建一个存储过程,执行该

存储过程完成本次工资调整:

工资增长规则如下:

●工资在3000元以下,每月涨300元;

●工资在3000-4000元之间,每月涨200元;

●工资大于或者等于4000元,每月涨50元;

(1)语句如下:

declare mycursor cursor for

select salary from empoyee

open mycursor

declare @salary int

fetch next from mycursor into @salary

while@@FETCH_STATUS=0

begin

if(@salary<3000)

begin

update empoyee set salary=@salary+300 where current of

mycursor

end

else if(@salary<4000)

begin

update empoyee set salary=@salary+200 where current of

mycursor

end

else

begin

update empoyee set salary=@salary+50 where current of mycursor end

fetch next from mycursor into @salary

end

close mycursor

deallocate mycursor

(2)结果如下:

二、实验反思

触发器是对表进行插入、更新、删除的时候会自动执行的特殊存储过程,本章学习的触发器类型是after触发器,即只有当执行update,delete,insert的时候这个触发器才会被使用到,触发器的使用为数据库操作真的提供了很多便利。

实验六: ODBC/JDBC数据库编程

一、实验内容

1.ODBC配置以及程序调试:(50分)

(1)配置一个ODBC数据源,要求数据源名称:student,其中包含s(学生信息)表。

1、设置属性:

2、更改默认数据库:

3、测试数据源:

4、测试成功:

5、结果为:

(2)阅读并运行实验给出的例子程序,理解ODBC编程,要求简单写出自己对这段程序

的理解或者流程图,并且请给出程序运行结果示例图。

一、对程序的流程的理解以下面的步骤展开:

1、定义句柄跟变量。其中句柄有环境句柄、连接句柄、语句句柄;

2、初始化环境

(1)分配环境句柄;

(2)设置管理环境属性;

(3)连接数据库。

3、建立连接

(1)分配连接句柄;

(2)连接若失败则返回错误值。

4、初始化语句句柄。设置了语句选项。

5、执行语句

(1)预编译带有参数语句;

(2)预先声明插入语句;

(3)执行SQL语句。

6、处理结果集合的同时执行预编译后的语句。

7、中止处理

(1)释放语句句柄;

(2)释放环境句柄;

(3)断开连接。

二、运行结果:

点了“执行”之后:

2.参考给出的ODBC编程示例,使用ODBC技术,编写一个简单的程序,包含对数据库

SPJ的连接,查询,插入,修改和删除。(50分)

(1)插入数据:

代码:

insert into S values('95005','刘鹏飞','男','1992-05-16','IS')

结果为:

(2)删除数据:

代码:

delete from S where Sname = '刘鹏飞'

结果为:

3. 用JDBC实现对数据库student的连接,查询,插入,修改和删除。(选做实验)

(1)插入数据:

(2)删除数据:

(3)数据的查询:

数据库和数据结构实验报告

. 西华大学实验报告(计算机类) 开课学院及实验室:实验时间:年月日 一、实验目的 通过练习让学生对数据库、数据库和表的关系、数据词典、参照完整性和视图有较好的理解和掌握。 二、内容与设计思想 实验内容: 1.数据库设计器 2.数据库的创建 3.设定数据词典 4.参照完整性的设置 5.视图的创建和修改 三、使用环境 Windos XP操作系统;Visual ProFox 6.0 四、核心代码及调试过程 例3-27创建项目管理器SBGL,要求添入数据库sbsj,并查看该数据库。 图一 图二、“项目管理器”的数据选项卡 图三、“项目管理器”中的数据库与数据库表 例3-28从sbsj数据库所属的sb和zz两个表中抽取编号、名称和增值3个字段。,组成名称 为“我的视图”的SQL视图。 open database sbsj create sql view 我的视图; as select sb.编号,sb.名称,zz.增值from sb,zz where sb.编号=zz.编号

如有你有帮助,请购买下载,谢谢! 例3-29根据例3-28的查询要求,用视图设计器建立视图1,然后修改其中车床的增值来更新zz表原来的增值 图一、视图设计器-视图1 图二、视图设计器-视图1 图三、增值表 图四 图五、视图设计器更新源表数据 19.根据图3.30所示数据库sbsj的永久关系,若利用参照完整性生成器来删除sb。dbf的第一个记录,对其他3个表会否产生影响,是分级、限制和忽略3中情况来说明。 图一、数据库设计器 图二、sbsj.dbc“永久关系的参照完整性生成器” 级联:相关子表中的记录将自动删除 限制:子表有相关记录,在父表中删除记录就会产生“触发器失败”的提示信息 忽略:父表删除记录,与子表记录无关 五、总结 (自己写一些收获和体会) 通过这次上机练习让我学会了怎样在数据库中添加项目管理器、表的数据完整性的概念以及视图的各种操作,让我更容易的掌握理论知识的难点和一些基本命令的使用方法,以及一些平时在课堂上不注意的问题。在上机练习的过程中需要对每个细节都要留心,认真做好每一步这样才不至于出错,这就加强了平时不注意的问题得到回应,从而加深了细节问题的处理方式。在上机的学习之后更加了解了数据库表及其数据完整性是vfp重要的一个对象,命令熟练操作直接关系到数据库的成败。 第三次的上机操作,我了解了命令的使用方式对于建立数据库表及其数据完整性很重要,要学好各种命令以及数据库表及其数据完整性的使用方法,还需在多做习题加强学习。 六、附录

数据库实验报告

课程设计报告题目:数据库实验上机实验报告 专业班级:计算机科学与技术1210班 学号: U9 姓名:候宝峰 指导教师: 报告日期: 2015-06-04 计算机科学与技术学院

目录 一、基本SQL操作(部分选做)............. 错误!未定义书签。 1)数据定义........................... 错误!未定义书签。 2)数据更新........................... 错误!未定义书签。 3)用SQL语句完成下述查询需求:....... 错误!未定义书签。 二、DBMS综合运用(部分选做)............. 错误!未定义书签。 1)学习sqlserver的两种完全备份方式:数据和日志文件的脱机备份、系统的备份功能(选做)。......... 错误!未定义书签。 2)学习系统的身份、权限配置操作....... 错误!未定义书签。 3)了解SQLSERVER的存储过程、触发器、函数实现过程错误!未定义书签。 三、实验总结............................. 错误!未定义书签。 1)实验问题及解决..................... 错误!未定义书签。 2)实验心得........................... 错误!未定义书签。

一、基本SQL操作(部分选做) 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,‘打折’),同一商场针对不同的商品可能采取不同的促销活动。 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)check (atype in('送券','打折','')), primary key(gname,pname), foreign key(gname)references goods(gname), foreign key(pname)references plaza(pname)); 图1 goods表 图2 plaza表 图3 sale表 2)数据更新 (1)向上述表格中用sql语句完成增、删、个、改的操作;

网络数据库实训报告(一)

网络数据库应用实训报告 日期:2016年3月18日班级:物联1411 一、实训目的和要求 1、掌握采用界面方式创建、修改、删除数据库; 2、掌握采用T-SQL 语句创建、修改、删除数据库; 二、实训所需仪器、设备 硬件:计算机软件:操作系统Windows7、SQLServer2008 三、实训内容 1)在管理平台中管理数据库。 (1)创建数据库“studentsdb”。 (2)查看studentsdb数据库的属性。 (3)修改数据文件大小为2MB,指定“最大文件大小”为5MB。日志文件的大小在每次填满时自动递增5%。 (4)将studentsdb数据库的名称更改为student_db。 2)使用T-SQL 语句管理数据库 (1)使用CREATE DATABASE 创建studb数据库,然后通过系统存储过程sp_helpdb查看系统中的数据库信息。 (2)使用ALTER DATABASE 修改studb数据库的设置,指定数据文件大小为5MB,最大文件大小为20MB,自动递增大小为1MB。(3)

为studb数据库增加一个日志文件,命名为studb_Log2,大小为5MB,最大文件大小为10MB。 (4)将studb数据库的名称更改为my_studb。 (5)使用DROP DATABASE 删除my_studb数据库。 四、实训步骤 (内容说明:1.大致的操作步骤;2.参数设置) 1)在管理平台中管理数据库。 (1)数据库右击→新建数据库→数据库名称“studentsdb”; (2)数据文件→初始大小→2MB (3)数据文件→点击自动增长下的→最大文件大小→限制文件大小→5MB; (4)日志文件→点击自动增长下的→文件增长→按百分比→5% (5) studentsdb右击→属性; (6) studentsdb右击→重命名→student_db; 2)使用T-SQL 语句管理数据库 命令如下: CREATEDATABASE studb on PRIMARY ( NAME='student_db', FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA', size=4MB, MAXSIZE=20MB, FILEGROWTH=1 ) log on ( NAME='stusb_log2', FILENAME='C:\Program Files\Microsoft SQL

数据库系统实验报告 实验三 数据控制(安全性)..

《数据库系统概论》实验报告 题目:实验三数据控制(安全性) 班级姓名学号日期2014年6月6日 一、实验目的 1.通过SQL对数据库进行安全性控制 2.完成教材中例题的上机练习 二、实验平台 微软SQL Server 2000或以上版本。 对于SQL Server 2000,使用查询分析器运行SQL语句,对于SQL Server 2005以上的版本,使用SQL Server Management Studio运行SQL语句。 三、实验内容和要求 使用SQL对数据进行安全性控制,包括授权和权力回收。 操作完成后,查看授权用户是否真正具有所授予的数据操作权利,在权力回收操作之后,用户是否确实丧失了所回收的数据操作权力。 在前几次实验中已经建立了实验数据库,继续在此数据库上进行实验所要求的各项操作。认真填写实验报告,记录所有的实验用例。 四、实验步骤 1.以管理员sa登录数据库,新建DB数据库,然后运行如下SQL语句,创建 我们前几次实验所建立的表。 CREATE TABLE course ( Cno char(4) NOT NULL, Cname char(40) DEFAULT NULL, Cpno char(4) DEFAULT NULL, Ccredit smallint DEFAULT NULL, PRIMARY KEY (Cno) ) ; -- -- 转存表中的数据'course' -- INSERT INTO course (Cno, Cname, Cpno, Ccredit) V ALUES ('1', '数据库', '5', 4); INSERT INTO course (Cno, Cname, Cpno, Ccredit) V ALUES ('2', '数学', NULL, 2);

数据库实验报告

数据库实验报告

武汉理工大学 学 生 实 验 报 告 书 实验课程名称 数据库系统概论 开 课 学 院 计算机科学与技术学院 指导老师姓名 学 生 姓 名 学生专业班级 学生学号 实验课成绩

2013 — 2014 学年第二学期实验课程名称:数据库系统概论 实验项目名称SQL SEVER 2000的系 统工具及用户管理 实验 成绩 实验者专业班 级 组别 同组者实验 日期 2014年4 月24日

第一部分:实验分析与设计(可加页) 一、实验内容描述(问题域描述) 实验目的和要求:了解SQL SEVER 2000的功能及组成,熟练掌握利用SQL SEVER 2000工具创建数据库、表、索引和修改表结构及向数据库输入数据、修改数据和删除数据的操作方法和步骤,掌握定义数据约束条件的操作。 二、实验基本原理与设计(包括实验方案设计,实 验手段的确定,试验步骤等,用硬件逻辑或者算法描述) 实验内容和步骤: (1)熟悉SQL SEVER 2000的界面和操作。 (2)创建数据库和查看数据库属性。 (3)创建表、确定表的主码和约束条件。 (4)查看和修改表的结构。 (5)向数据库输入数据,观察违反列级约束时出现的情况。 (6)修改数据。 (7)删除数据,观察违反表级约束时出现的情况。 三、主要仪器设备及耗材 Windows XP SQL SERVER 2000

第二部分:实验调试与结果分析(可加页) 一、调试过程(包括调试方法描述、实验数据记录, 实验现象记录,实验过程发现的问题等) 没有错误 错误:未能建立与WORKEPLACE\XUMENGXING的链接SQL Server 不存在或访问被拒绝 原因:未启动数据库服务 二、实验结果及分析(包括结果描述、实验现象分 析、影响因素讨论、综合分析和结论等) 实验结果部分截图:

SQL 数据库实验报告3

一、实验内容 (1)掌握在SQL Server管理平台中对表进行插入、修改和删除数据操作的方法。 (2)掌握使用Transact-SQL语句对表进行插入、修改和删除数据操作的方法。 二、实验器材(设备、元器件) Window7操作系统,SQL Server软件 三、实验步骤 (1)启动SQL Server管理平台,在对象资源管理器中展开studentsdb数据库文件夹。 (2)在studentsdb数据库中包含有数据表student_info、curriculum、grade,这些表的数据结构如图所示在studentsdb数据库中包含有数据表student_info、curriculum、grade,这些表的数据结构如图所示 (3)在SQL Server管理平台中创建student_info、curriculum表。 学生基本情况表student_info 课程信息表curriculum

①启动SQL Server管理平台,在对象资源管理器中展开studentsdb数据库文件夹。 ②在SQL Server管理平台中创建student_info表。 ③在SQL Server管理平台中创建curriculum表。 (4)使用Transact-SQL语句CREATE TABLE在studentsdb数据库中创建表 学生成绩表grade

①新建查询,输入Transact-SQL语句,点击执行 ②出现如下界面,学生成绩表grade建立成功 (5)在SQL Server管理平台中,将student_info表的学号列设置为主键,非空。

(6)student_info、curriculum、grade表中的数据如图所示。 student_info的数据 curriculum的数据 grade的数据 (7)在SQL Server管理平台中为student_info表添加数据

数据库实验报告

. . 《数据库原理与技术》实验报告 实验一、数据定义及更新语句练习 一、实验容 建立如下mySPJ数据库,包括S,P,J,和SPJ四个基本表(《数据库系统概论》第二章习题5中的四个表),要现关系的三类完整性。 S(SNO,SNAME,STATUS,CITY); P(PNO,PNAME,COLOR,WEIGHT); J(JNO,JNAME,CITY); SPJ(SNO,PNO,JNO,QTY); 二、完成情况

附上按照实验容编写的程序代码。(小四号字,宋体) 三、实验结果 1、插入一条记录 2、①将p表中的所有红色零件的重量增加5。 ②将spj表中所有供应商的QTY属性值减少10。用子查询。

3.利用Delete语句删除p表中的所有红色零件的记录。 附上各个步骤所用的实验用例与结果显示(小四号字,宋体) 四、问题与解决 (小四号字,宋体) 1 .实验中遇到的问题及解决过程 2 .实验中产生的错误及原因分析 首先写出执行语句不成功的时候系统报告的错误信息。然后分析错误原因,并给出解决办法。

实验二简单查询和连接查询 一、实验容 (一)完成下面的简单查询: ①查询所有“”的供应商明细; ②查询所有“红色”的14公斤以上的零件。 ③查询工程名称中含有“厂”字的工程明细。 (二)完成下面的连接查询: ①等值连接:求s表和j表的相同城市的等值连接。 ②自然连接:查询所有的供应明细,要求显示供应商、零件和工程的名称,并按照供应、工程、零件排序。 ③笛卡尔积:求s和p表的笛卡尔积。 ④左连接:求j表和spj表的左连接。 ⑤右连接:求spj表和j表的右连接。 二、完成情况 (一)完成下面的简单查询: ①查询所有“”的供应商明细; ②查询所有“红色”的14公斤以上的零件。

数据库实验第三次

南昌航空大学实验报告 2016 年月日 课程名称:数据库原理及应用实验名称:SQL-更新操作 学号:姓名:同组人: 指导教师评定:签名: 实验目的: 利用INSERT、UPDA TE和DELETE命令(或语句)实现对表(或试图)数据的添加、修改与删除等更新操作,这里主要介绍对表的操作。 实验内如与要求: 建表和数据库的代码: Create database jxgl USE jxgl GO Create Table Student (Sno CHAR(5) not null primary key(Sno), Sname varchar(20), Sage smallint check(Sage>=15 AND Sage<=45), Ssex char(2) default'男'check(Ssex='男' OR Ssex='女' ), Sdept char(2)); Create Table Course (Cno char(2)NOT NULL primary key(Cno), Cname VARCHAR(20), Cpno char(2), Ccredit SMALLINT); Create Table SC (Sno char(5) NOT NULL CONSTRAINT S_F FOREIGN KEY REFERENCES Student(Sno), Cno CHAR(2) NOT NULL, Grade smallint check ((Grade IS NULL)OR(Grade between 0 and 100)), Primary key(Sno,Cno), foreign key(Cno) references Course(Cno)); insert into Student values('98001','钱横',18,'男','CS'); insert into Student values('98002','王林',19,'女','CS'); insert into Student values('98003','李民',20,'男','IS'); insert into Student values('98004','赵三',16,'女','MA'); insert into Course values('1','数据库系统','5',4); insert into Course values('2','数学分析',null,2); insert into Course values('3','信息系统导论','1',3); insert into Course values('4','操作系统_原理','6',3); insert into Course values('5','数据结构','7',4); insert into Course values('6','数据处理基础',null,4); insert into Course values('7','C语言','6',3); insert into SC values('98001','1',87);

数据库实验报告(一)

滨江学院 题目数据库实验报告(一) 学生姓名 学号 系部电子工程系 专业通信工程 指导教师林美华 二O一三年十二月十八日

实验一数据库的定义实验 本实验需要2学时。 一、实验目的 要求学生熟练掌握和使用SQL、SQL Server企业管理器创建数据库、表、索引和修改表结构,并学会使用SQL Server 查询分析器接收语句和进行结果分析。 二、实验内容 1 创建数据库和查看数据库属性。 2 创建表、确定表的主码和约束条件。为主码建索引。 3 查看和修改表结构。 4 熟悉SQL Server企业管理器和查询分析器工具的使用方法。 三、实验步骤 1 基本操作实验 (1) 使用企业管理器按教材中的内容建立图书读者数据库。 (2)在企业管理器中查看图书读者数据库的属性,并进行修改,使之符合要求。 (3)通过企业管理器,在建好的图书借阅数据库中建立图书、读者和借阅3个表,其结构为; 图书(书号,类别,,作者,书名,定价,作者). 读者(编号,,单位,性别,). 借阅(书号,读者编号,借阅日期) 要求为属性选择合适的数据类型,定义每个表的主码.是否允许空值和默认值等列级数据约束。 (4)在企业管理器中建立图书、读者和借阅3个表的表级约束.每个表的主码约束.借阅表与图书表间、借阅表与读者表之间的外码约束,要求按语义先确定外码约束表达式.再通过操作予以实现.实现借阅表的书号和读者编号的惟一性约束:实现读者性别只能是“男”或“女”的Check(检查)约束。 2 提高操作实验 (一) 将教材中用SQL描述的建立学生--课程操作.在SQL Server企业管理器中实现。库中表结构为: 学生(学号,,年龄,性别,所在系). 课程(课程号,课程名,先行课). 选课(学号,课程号,成绩) 要求: 1)建库、建表和建立表间联系。, 2)选择合适的数据类型。 3)定义必要的索引、列级约束和表级约束. 四、实验方法 l创建数据库 (1)使用企业管理器创建数据库的步骤 1)从“开始”菜单中选择;“程序”“Microsoft SQL2000”“企业管理器”.

西北工业大学数据库实验报告

1.利用图形用户界面创建,备份,删除和还原数据库和数据表(50分,每小题5分) ●数据库和表的要求(第五版教材第二章习题 6 要求的数据库) 数据库名:SPJ,其中包含四张表:S表, P表, J表, SPJ表 ●完成以下具体操作: (1)创建SPJ数据库,初始大小为 10MB,最大为50MB,数据库自动增长,增长方 式是按5%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。 数据库的逻辑文件名和物理文件名均采用默认值。 (2)在SPJ数据库中创建如图2.1-图2.4的四张表(只输入一部分数据示意即可)。 S表: P表: J表: SPJ表:

(3)备份数据库SPJ(第一种方法):备份成一个扩展名为bak的文件。(提示: 最好先删除系统默认的备份文件名,然后添加自己指定的备份文件名) (4)备份数据库SPJ(第二种方法):将SPJ数据库定义时使用的文件(扩展名为 mdf,ldf的数据文件、日志文件等)复制到其他文件夹进行备份。 原位置: 新的位置: (5)删除已经创建的工程项目表(J表)。 (6)删除SPJ数据库。(可以在系统默认的数据存储文件夹下查看此时SPJ数据 库对应的mdf,ldf文件是否存在) 删除过后文件不存在 (7)利用备份过的bak备份文件还原刚才删除的SPJ数据库。(还原数据库)

(8)利用备份过的mdf,ldf的备份文件还原刚才删除的SPJ数据库。(附加) (9)将SPJ数据库的文件大小修改为100MB。 (10)修改S表,增加一个联系电话的字段sPhoneNo,数据类型为字符串类 型。 2.利用SQL语言创建和删除数据库和数据表(50分,每小题5分) ●数据库和表的要求 数据库名:Student,其中包含三个表:S:学生基本信息表;C:课程基本信息表;SC:学生选课信息表。 ●完成以下具体操作: (1)用SQL语句创建如图2.5-图2.7要求的数据库Student,初始大小为20MB, 最大为100MB,数据库自动增长,增长方式是按10M兆字节增长;日志文件初

数据库上机实验报告

数据库实验 (第三次) 题目1 实验内容: 1. 检索上海产的零件的工程名称; 2. 检索供应工程J1零件P1的供应商号SNO; 3. 检索供应工程J1零件为红色的供应商号SNO; 4. 检索没有使用天津生产的红色零件的工程号JNO; 5. 检索至少用了供应商S1所供应的全部零件的工程号JNO; 6. 检索购买了零件P1的工程项目号JNO及数量QTY,并要求对查询的结果按数 量QTY降序排列。

1 select jname from j where jno in (select jno from spj where sno in (select sno from s where city ='上海' ) ); 2 select sno from spj where jno ='j1'and pno ='p1' 3

selectdistinct sno from spj where pno in (select pno from p where color='红'and pno in (select pno from spj where jno ='j1' ) ); 4 selectdistinct jno from spj where pno notin (select pno from p where color ='红'and pno in (select pno from spj where sno in (select sno from s where city ='天津' ) ) )

5 select jno from spj where sno ='s1' 6 select jno,qty from spj where pno ='p1' orderby qty desc 四﹑思考题 1.如何提高数据查询和连接速度。 建立视图 2. 试比较连接查询和嵌套查询 有些嵌套查询是可以用连接来代替的,而且使用连接的方式,性能要比 嵌套查询高出很多 当查询涉及多个关系时,用嵌套查询逐步求解结构层次清楚,易于构造,具有结构化程序设计的优点。但是相比于连接运算,目前商用关系数据库管理系统对嵌套查询的优化做的还不够完善,所以在实际应用中,能够用连接运算表达的查询尽可能采用连接运算。

数据库实验报告5

1.使用系统存储过程(sp_rename)将视图“V_SPJ”更名为“V_SPJ_三建”。(5分) exec sp_rename v_spj, v_spj_三建; 2.针对SPJ数据库,创建并执行如下的存储过程:(共计35分) (1)创建一个带参数的存储过程—jsearch。该存储过程的作用是:当任意输入一个工 程代号时,将返回供应该工程零件的供应商的名称(SNAME)和零件的名称(PNAME) 以及工程的名称(JNAME)。执行jsearch存储过程,查询“J1”对应的信息。(10 分) create proc jsearch @jno char(2) as select sname, pname, jname from s,p,j,spj where s.sno=spj.sno and p.pno=spj.pno and j.jno=spj.jno and spj.jno=@jno; 执行: exec jsearch 'J1'

(2)使用S表,为其创建一个加密的存储过程—jmsearch。该存储过程的作用是:当执 行该存储过程时,将返回北京供应商的所有信息。(10分) 创建加密存储过程: create proc jmsearch with encryption as select * from s where s.city='北京'; sp_helptext jmsearch; (3)使用系统存储过程sp_helptext查看jsearch, jmsearch的文本信息。(5分) 用系统存储过程sp_helptext查看jsearch: exec sp_help jsearch; exec sp_helptext jsearch;

数据库原理实验报告(3)实验三数据表的创建与管理实验

数据库原理实验报告(3)实验三数据表的创建与 管理实验 南京晓庄学院 《数据库原理与应用》 课程实验报告 实验三数据表的创建与管理实验 所在院(系): 数学与信息技术学院班级: 学号: 姓名: 1.实验目的 (1) 理解SQL Server 20xx常用数据类型和表结构的设计方法。理解主键、外键含义,掌握 建立各表相关属性间参照关系的方法。 (2) 熟练掌握使用SQL Server Management Studio图形工具创建表,删除表,修改表结构,插入及更新数据的方法。 (3) 熟练掌握使用Transact-SQL语句创建表,删除表,修改表结构,插入及更新数据的方 法。 2.实验要求 基本实验:

(1) 在实验二所创建的“TM”数据库中合理设计以下各表逻辑结构: 学生信息(学号,姓名,性别,籍贯,出生日期,民族,学院/系别号,班级号) 课程信息(课程号,课程名称,课程所属模块,课程类别,学分,学时) 学习信息(学号,课程号,考试成绩,平时成绩) 院系信息(院系号,院系名称) 要求确定各个字段的名称、类型、是否有默认值,是否主键等信息。 (2) 依据你所设计的表结构,使用SQL Server Management Studio图形工具在“TM”数据 库中创建学生信息表和课程信息表,并试验在图形界面中修改表结构,删除数据表,输入并更新数据的方法。 (3) 依据你所设计表结构,使用Transact-SQL语句创建学习信息表和院系信息表,并试验 使用T-SQL语句修改表结构,删除数据表,插入和更新数据的方法。 (4) 找出已创建各表之间相关属性的参照关系,并在相关表中增加引用完整性约束。 (5) 按要求完成实验报告。 扩展实验: (1) 在“TM”数据库中补充设计以下各表结构:

数据库实验报告1

《数据库系统原理》实验报告 专业:___信息安全____ 班号:_______ 学号:______ 姓名:________ 实验日期:_________ 上机地点:_________ 实验环境: 报告日期:2012年 4月26日

一、实验内容、过程及完成情况(必须有所用的SQL 语句、语句执行效果) 1、第三章习题3(P127):用SQL语句建立第二章习题5 (P74)中四个表,创建的基本表应考虑数据完整性 (1)打开cmd,进入mysql.exe文件所在的文件夹。 然后以用户名root密码123456登录。 如下图所示 图1 (2)执行创建数据库语句:create database mytest1; 然后执行语句:show databases查看库,发现mytest1库建立成功。 如下图所示 图2

(3)选择数据库mytest1,然后执行创建表S的语句:CREATE TABLE S ( SNO CHAR(2), SNAME VARCHAR(8), STATUS SMALLINT, CITY VARCHAR(8), PRIMARY KEY (SNO) ); 如下图所示 图3 (4)执行语句describe S; 显示表S的结构。如下图所示 图4 (5)在mytest1中,执行创建表P的语句: CREATE TABLE P( PNO CHAR(2), PNAME VARCHAR(8), COLOR CHAR(2), WEIGHT SMALLINT, PRIMARY KEY (PNO) ); 如下图所示

图5 (6)显示表P的结构,如下图所示 图6 (7)在mytest1中,执行创建表J的语句:CREATE TABLE J( JNO CHAR(2), JNAME VARCHAR(8), CITY VARCHAR(8), PRIMARY KEY (JNO) ); 如下图所示 图7 (8)显示表J的结构,如下图所示

数据库实验报告完整

华北电力大学 实验报告 | | 实验名称数据库实验 课程名称数据库 | | 专业班级:学生姓名: 学号:成绩: 指导教师:实验日期:2015/7/9

《数据库原理课程设计》课程设计 任务书 一、目的与要求 1.本实验是为计算机各专业的学生在学习数据库原理后,为培养更好的解决问题和实际动手能力 而设置的实践环节。通过这个环节,使学生具备应用数据库原理对数据库系统进行设计的能力。 为后继课程和毕业设计打下良好基础。 2.通过该实验,培养学生在建立数据库系统过程中使用关系数据理论的能力。 3.通过对一个数据库系统的设计,培养学生对数据库需求分析、数据库方案设计、系统编码、界 面设计和软件调试等各方面的能力。是一门考查学生数据库原理、面向对象设计方法、软件工程和信息系统分析与设计等课程的综合实验。 二、主要内容 针对一个具有实际应用场景的中小型系统(见题目附录)进行数据库设计,重点分析系统涉及的实体、实体之间的联系,实现增加、删除、更新、查询数据记录等基本操作。大致分为如下步骤: 1. 理解系统的数据库需求,分析实体及实体间联系,画出E-R图: 1)分析确定实体的属性和码,完成对该实体的实体完整性、用户自定义完整性的定义。 2)设计实体之间的联系,包括联系类型和联系的属性。最后画出完整的E-R图。 2.根据设计好的E-R图及关系数据库理论知识设计数据库模式: 1)把E-R图转换为逻辑模式; 2)规范化设计。使用关系范式理论证明所设计的关系至少属于3NF并写出证明过程;如果不属于3NF则进行模式分解,直到该关系满足3NF为止,要求写出分解过程。 3)设计关系模式间的参照完整性,要求实现级联删除和级联更新。 4)用SQL语言完成数据库内模式的设计。 3.数据库权限的设计: 1)根据系统分析,完成授权操作; 2)了解学习收回权限的操作。 4.完成用户界面的设计,对重要数据进行加密。

数据库实验报告

北京邮电大学国际学院 _11-12_学年第_二_学期实验报告 课程名称:数据库技术与应用 项目名称:基本SOL语句的用法 项目完成人: 姓名:武学超学号: 指导教师:____ ____韩祥斌_____________ 日期: 2012 年 3 月 16 日

目录 一、实验目的............................................. 错误!未定义书签。 1. 结合数据库技术与应用教学的基本知识,理解并掌握基本SQL语句的用法。错误! 未定义书签。 二、实验内容............................................. 错误!未定义书签。 1. 回顾基本SQL语句的语法............................... 错误!未定义书签。 2. 回顾MySQL的基本用法................................. 错误!未定义书签。 3. 初始化数据库,将文件中的内容复制并粘贴到MySQL-Front 的SQL编辑器中,然 后点击“运行”........................................... 错误!未定义书签。 4. 了解实验用例的背景,并进行如下SQL语句的训练:....... 错误!未定义书签。 三、实验环境............................................. 错误!未定义书签。 1. 32位Xp系统下 Mysql 程序(命令行).................. 错误!未定义书签。 四、实验结果............................................. 错误!未定义书签。 1. 问题讨论............................................. 错误!未定义书签。 2. 试验心得............................................. 错误!未定义书签。

数据库道理实验报告3

实验三数据表的创建与管理实验 所在院(系):数学与信息技术学院 班级: 学号: 姓名:

1.实验目的 (1)理解SQL Server 2005常用数据类型和表结构的设计方法。理解主键、外键含义,掌握 建立各表相关属性间参照关系的方法。 (2)熟练掌握使用SQL Server Management Studio图形工具创建表,删除表,修改表结构, 插入及更新数据的方法。 (3)熟练掌握使用Transact-SQL语句创建表,删除表,修改表结构,插入及更新数据的方 法。 2.实验要求 基本实验: (1)在实验二所创建的“TM”数据库中合理设计以下各表逻辑结构: 学生信息(学号,姓名,性别,籍贯,出生日期,民族,学院/系别号,班级号) 课程信息(课程号,课程名称,课程所属模块,课程类别,学分,学时) 学习信息(学号,课程号,考试成绩,平时成绩) 院系信息(院系号,院系名称) 要求确定各个字段的名称、类型、是否有默认值,是否主键等信息。 (2)依据你所设计的表结构,使用SQL Server Management Studio图形工具在“TM”数据 库中创建学生信息表和课程信息表,并试验在图形界面中修改表结构,删除数据表,输入并更新数据的方法。 (3)依据你所设计表结构,使用Transact-SQL语句创建学习信息表和院系信息表,并试验 使用T-SQL语句修改表结构,删除数据表,插入和更新数据的方法。 (4)找出已创建各表之间相关属性的参照关系,并在相关表中增加引用完整性约束。 (5)按要求完成实验报告。 扩展实验: (1)在“TM”数据库中补充设计以下各表结构: 教师信息(教师号,姓名,性别,出生日期,学历,学位,入职时间,职称,院系号) 授课信息(教师号,课程号,学期) 班级信息(班级号,班级名称,专业号) 专业信息(专业号,专业名称,学制,学位) 图书信息(图书号,书名,作者,出版社,出版日期,册数,价格,分类) 借书偏息(学号,图书号,借出时间,归还时间) 奖励信息(学号,奖励类型,奖励金额) (2)设计并实现各表之间相关属性的参照关系。 (3)使用SQL Management Studio图形界面或Transact-SQL在“TM”数据库中创建前述各 表,并插入部分数据,要求所插入数据合理有效。 3.实验步骤、结果和总结实验步骤/结果

数据库实验报告

数据库实验报告 集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)

课程名称:数据库原理与应用 实验内容:数据库安全性管理 作者所在系部:网络工程系 作者所在专业:网络工程 作者所在班级: B13521 作者姓名:李文阳 作者学号: 指导教师姓名:王振夺 北华航天工业学院教务处制 实验四数据库安全性管理 一、实验目的 1、理解数据库的安全性机制; 2、掌握SQL Server 2005的验证模式、登录管理、用户管理、角色 管理以及权限管理; 二、实验内容 (一)附加上次实验所创建的数据库“db_Library”,并回顾该库的数据表信息。 (二)设置SQL Server的安全验证模式,并以两种方式尝试登录。

(三)登录账户管理 1、以管理员身份登录SQL Server,修改sa的密码。 2、使用SQL语句创建一个SQL Server登录账户,账户名为你的名字拼音,密码自定义。创建完成后,以该账户来进行登录。 3、使用SQL语句来修改上述登录账户的密码。 4、禁用上述登录账户连接SQL Server,并进行验证。 (四)数据库用户管理 1、使用SQL语句添加db_Library数据库用户User2,其登录账户为上题所创建的SQL Server登录账户,使用默认dbo架构,并赋予该用户能够运行Select语句的权限。 (五)权限管理 1、使用SSMS将创建数据表和创建视图的权限授予User2。 2、使用SQL语句将对db_Library数据库中图书信息表的查询、插入、以及对书名和作者列的修改权限授予用户User2。 3、使用SSMS收回User2创建数据表和创建视图的权限。 4、使用SQL语句收回User2修改书名和作者列的权限。 (六)删除上述所建立的数据库用户以及登录账户。 三、实验步骤 主要实现的SQL语句。 使用T-SQL语句创建一个SQL Server登录账户,账户名为你的名字拼音,密码自定义。创建完成后,以该账户来进行登录。

数据库实验报告

实验一 SQL Server基本使用与数据定义一.实验目的 1.掌握“服务管理器”、“企业管理器”及“查询分析器”基本使用方法;2.熟悉数据库建模及E/R图的画法; 3.掌握SQL Server 中数据库、及数据表的建立与管理方法; 4.掌握数据的导入/导出及数据库备份/还原方法。 二.实验内容 一、SQL Server 基本使用 1.启动SQL SERVER。 2.注册服务器 3.企业管理器属性 4.查询分析器介绍 5.查看数据库及浏览表中记录 二、数据库的建立与管理 1.数据库建模 2.启动、并打开SQL Server 3.使用图形界面创建数据库和表 4.使用查询分析器创建表 5.数据库的备份与还原

实验二 SQL查询 一.实验目的: 1.掌握SQL语言中SELECT语句的多种查询方式。 2.掌握对表建立与删除索引的方法。 3.掌握聚焦函数的使用方法。 4.掌握集合查询方法。 二.实验内容: 1.建立与删除[索引]的方法。 在各表中,分别按代理商编号、客户编号、产品编号及订单编号建立索引。 CREATE INDEX 代理商No ON 代理商(代理商编号) CREATE INDEX 客户No ON 客户(客户编号) CREATEINDEX产品No ON产品(产品编号) CREATEINDEX订单No ON订单(订单编号) 2.单表查询, ①从产品表中查询现有产品的库存量。 SELECT COUNT(*) FROM产品 ②从客户表中查询“王五”的地址及代理商编号。 SELECT地址,代理商编号 FROM客户 WHERE姓名='王五' ③从代理商表中查询代理商“惠普”的提成金额。 SELECT提成金额 FROM代理商 WHERE姓名='惠普' ④从订货项目表中查询编号为“444”的订单所订购的商品编号及数量。 SELECT产品编号,订购数量 FROM订货项目 WHERE订单编号='444' ⑤分别求代理商和客户的总数。 SELECT COUNT(*)代理商数 FROM代理商 SELECT COUNT(*)客户数 FROM客户 ⑥从订货项目表中,查询编号为0033的产品定货总数量。 SELECT COUNT(*)订货总数量 FROM订货项目 WHERE订单编号='0033' 3.多表查询 ①查询编号为300的客户通过的代理商的姓名和地址。 SELECT代理商.姓名,代理商.地址

数据库原理实验报告_实验三_数据完整性与安全性控制

实验内容、步骤以及结果 1.利用图形用户界面对实验一中所创建的Student库的S表中,增加以下的约束和索引。 (18分,每小题3分) (1) 非空约束:为出生日期添加非空约束。 非空约束:取消表S中sbirth的勾。可能需要重建表。 (2) 主键约束:将学号(sno)设置为主键,主键名为pk_sno。 设主键:单击数据库Student-->单击表-->单击S-->右击sno-->选择修改命令-->对话框中右击sno-->选择设置主键'>修改主键名为pk_sno '-->保存

(3)唯一约束:为姓名(sname)添加唯一约束(唯一键),约束名为uk_sname 。 唯一约束:单击数据库Student-->单击表--> 单击S-->右击sname-->选择修改’ 命令T右击 sname-->选择索引和键命令--> 打开索引和键框图--> 添加--> 是否唯一改为是--> 名称改为us sname '-->关闭。

(4)缺省约束:为性别(ssex)添加默认值,其值为男 设默认约束:单击数据库Student宀单击表宀单击右击sno^选择修改命令宀单击cno-->在默认值栏输入男’保存

D62.s1udent - Diagram_0* D62.sludent - dbo.S* SQLQuery5.sql - D... (D62\A^m i n (52J)* 列容 埶据类型 允祥值 Q 5TI0 Ctiar(lO) n sname nvarchar (20) a 卜:S5SX nchai ■⑵ 團 sbirtti date □ adept nv ar char (20) sPhoneNo ctiar(LQ) @] 数捐类型 允傑Mdl 值 曰表设计器 RowGuid E 标识魁 不用于复制 大小 (5) CHECK 约束:为SC 表的成绩(grade)添加CHECK 约束,约束名为ck grade ,其 检查条件为:成绩应该在0-100之间。 ffin har 妊 2 Nnrh 昙否否否二

相关主题
文本预览
相关文档 最新文档