文档库 最新最全的文档下载
当前位置:文档库 › 数据库 实验报告5 ESQL

数据库 实验报告5 ESQL

数据库 实验报告5 ESQL
数据库 实验报告5 ESQL

实验内容:

编写嵌入式C 程序,编程实现了对“学生课程数据库”的访问和操作:对Student 表中的年龄进行更新。系统每输出一个学生记录,询问用户是否更新。如果要更新,就输入新的年龄。

一. 实验环境介绍。

实验五是在之前完成的实验一的基础上进行的。

系统配置为:CPU: P3 800 内存:512MB 硬盘:30G

软件系统:WINDOWS 2000 ADV ANCED SERVER 。

在实验一中,我们已经成功安装了KingbaseES V4.1,形成本实验所需要的环境。其中安装路径为C:\Program Files 目录下。

二.编写含嵌入式C 程序test ,扩展名为.pc 。

EXEC SQL BEGIN DECLARE SECTION; /*说明主变量deptname ,HSno ,HSname , char deptname[20]; *HSsex ,HSage ,NEWAGE 。*/ char HSno[9];

char HSname[20];

char HSsex[2];

int HSage;

int NEWAGE;

EXEC SQL END DECLARE SECTION; /*声明部分结束*/

long SQLCODE;

EXEC SQL INCLUDE sqlca; /*定义SQL 通信区*/

int main(void)

{

int count = 0;

char yn; /*变量yn 代表yes 或者no*/

printf("Please choose the department name(CS/MA/IS): "); /*为主变量deptname 赋值*/ scanf("%s", &deptname);

EXEC SQL CONNECT TO 学生课程数据库@localhost:54321 USER

"SYSTEM"/"MANAGER"; /*连接数据库TEST*/

EXEC SQL DECLARE SX CURSOR FOR /*说明游标,为查询和更新做准备*/ SELECT Sno, Sname, Ssex, Sage

FROM Student

WHERE SDept = :deptname;

EXEC SQL OPEN SX; /*打开游标。*/

for ( ; ; ) /*用循环结构逐条处理结果集的记录*/ { 《数据库系统概论》实验报告

题目:实验五 通过嵌入式SQL 访问数据库

姓名 Vivian 日期 2006-1-1

EXEC SQL FETCH SX INTO :HSno, :HSname, :HSsex,:HSage;

/*游标向前推进一行,取结果送主变量*/

0)

!=

(sqlca.sqlcode

if

break; /*其中参数0代表 SUCCESS*/

0) /*如果是第一行的话,先打出行头*/

if(count++

==

printf("\n%-10s %-20s %-10s %-10s\n", "Sno", "Sname", "Ssex", "Sage");

printf("%-10s %-20s %-10s %-10d\n", HSno, HSname, HSsex, HSage);

printf("UPDATE

AGE(y/n)?");

do

{

scanf("%c",&yn);

}while(yn != 'N' && yn != 'n' && yn != 'Y' && yn != 'y');

if(yn == 'y' || yn == 'Y') /*如果选择修改的操作。*/

{

AGE:");

NEW

printf("INPUT

scanf("%d",&NEWAGE); /*用户输入新年龄,存放在主变量

EXEC

UPDATE

Student *NEWAGE中。*/

SQL

SET Sage = :NEWAGE

SX;

/*对Student表中的年龄进行更新。*/

OF

WHERE

CURRENT

}

}

CLOSE

SX; /*关闭游标。*/

SQL

EXEC

WORK; /*提交更新。*/

COMMIT

EXEC

SQL

EXEC SQL DISCONNECT 学生课程数据库; /*断开连接。*/

}

三.对C程序进行处理,生成可执行文件。

本实验是在windows环境下对C程序进行预编译和编译、链接的。没有给出Linux环境下的编译过程,读者如果有兴趣,可以自行实验。

1.预编译。

本实验中,test.pc存放在C:\Program Files\Basesoft\KingbaseES\4.1\bin目录下,与预处理程序esqlc存放在同一目录下,这样做的目的是便于之后的三步处理过程,不需要特别指定存放路径。如果存放在其他目录下,只需要在文件名前指定完整路径即可。

(1)“开始”—〉“运行”,输入cmd命令,进入命令行编辑器。

(2)命令行编辑器默认的路径为C:\Documents and Settings\[用户名]>,我们首先需要转到预处理程序esqlc所在的目录下。键入:

cd C:\Program Files\Basesoft\KingbaseES\4.1\bin。

(3)进行预编译。

esqlc -I "C:\Program Files\Basesoft\KingbaseES\4.1\include" -o test.c test.pc

(4)如果预编译成功,则自动生成一个.c文件。结果提示可能会有一个“WARNING: EXEC SQL SQLCA: SQL language extension”,但对结果不造成影响。

2.编译和链接。

经过预处理之后,生成了标准的C语言程序test.c,就可以使用标准的C语言编译器进

行编译了。本实验直接使用命令行的方式对该C程序进行编译和链接。

(1)编译。

在编译过程中需要使用到cl.exe程序,cl.exe是 Visual C++ 的编译器名称。如果安装Visual C++在C:\Program Files\Microsoft Visual Studio\VC98下,则其编译器cl.exe所在路径应该是C:\Program Files\Microsoft Visual Studio\VC98\Bin。在cl后面可以加上各类参数命令,进行不同的操作。本实验中使用到的“/c”命令是表示只编译,不链接,相当于在Visual C++ 6.0中,选择"Build"菜单下的"Compile"。编译命令如下:

cl /c /DWIN32 /I"C:\Program Files\Basesoft\KingbaseES\4.1\include" /Fotest.obj test.c

(2)链接。

由于在编译时我们选用“/c”命令只对test.c进行了编译并没有进行链接,而该C程序执行需要链接esql.lib函数库,所以在链接时我们需要指定这个库文件的路径。链接命令如下:link /out:test.exe test "C:\Program Files\Basesoft\KingbaseES\4.1\lib\esql.lib"

最后生成可执行文件test.exe,即可实现具体功能。

遇到的问题和解决方案:

1.在进行预编译时,键入命令esqlc -i "C:\Program Files\Basesoft\KingbaseES\4.1\include" -o

test.c test.pc出错。

答:这是由于大小写没有注意区分的原因。-I的语法要求使用大写,而-o是使用小写。如果没有进行区分,则会报错。

2.预编译时,在定义主变量部分报错。如:ERROR: Syntax error at or near “char”。

答:这是因为在定义主变量时,varchar型和char型变量的长度定义必须使用方括号而不是原来用的圆括号,例如deptname[20]不能定义为deptname(20),改为方括号后即可顺利通过。

3.在连接数据库时,EXEC SQL CONNECT TO dbname@hostname:port [USER user-name]; 如果写成EXEC SQL CONNECT TO 学生课程数据库@localhost:54321 “system”/”manager”;出错。

答:在语法说明中连接数据库给出了三种指定用户名和口令的方式。但是在前面一定要加上USER才是正确的,很容易忽略USER这个关键字造成预编译无法通过。

数据库原理实验报告

南京晓庄学院 《数据库原理与应用》 课程实验报告 实验一SQL Server 2005常用服务与实用工具实验 所在院(系):数学与信息技术学院 班级:14软工5班 学号:14551204 14551206 姓名:花元凯罗文波 1.实验目的 (1)了解Microsoft 关系数据库管理系统SQL Server的发展历史及其特性。 (2)了解SQL Server 2005的主要组件、常用服务和系统配置。 (3)掌握Microsoft SQL Server Management Studio 图形环境的基本操作方法。了解使用“SQL Server 2005 联机从书”获取帮助信息的方法;了解“查询编辑器”的使用方法;了解模板的使用方法。 2.实验要求 (1)收集整理Microsoft关系数据库管理系统SQL Server的相关资料,总结其发展历史及SQL Server 2005主要版本类别和主要功能特性。 (2)使用SQL Server配置管理器查看和管理SQL Server 2005服务。 (3)使用Microsoft SQL Server Management Studio连接数据库;使用SQL Server帮助系统获得 所感兴趣的相关产品主题/技术文档。

(4)使用Microsoft SQL Server Management Studio“查询编辑器”编辑并执行Transact-SQL查 询语句。 (5)查看Microsoft SQL Server 2005模板,了解模板的使用方法。 (6)按要求完成实验报告。 3.实验步骤、结果和总结实验步骤/结果 (1) 简要总结SQL Server系统发展历史及SQL Server 2005主要版本类别与主要功能特性。 SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。1996年,Microsoft 推出了SQL Server 6.5版本;1998年,SQL Server 7.0版本和用户见面;SQL Server 2000是Microsoft公司于2000年推出,该版本继承了SQL Server 7.0 版本的优点,同时又比它增加了许多更先进的功能。SQL Server 2005 是一个全面的数据库平台,使用集成的商业智能(BI) 工具提供了企业级的数据管理。SQL Server 2005 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能。SQL Server 2008是一个重大的产品版本,它推出了许多新的特性和关键的改进,使得它成为至今为止的最强大和最全面的SQL Server版本。目前最新版本是SQL SERVER 2014。 1,SQL Server 2005学习版当保护和管理应用系统内外部的信息变得至关重要时,通过提供一套免费、易于使用和健壮的数据库,学习版帮助开发人员建立强健的和可靠的应用系统。

数据库设计性实验报告

数据库系统概论实验报告 一、实验题目 小型CMS博客系统的设计与实现 二、实验要求 利用学习的数据库设计的方法和步骤,为选择的应用设计数据库、必要的索引、视图、编写应用程序。 三、总的设计思想,及环境语言、工具等 1、建立系统的目的,系统总体概况的介绍 进行博客系统开发的主要目的是为了提高自己的实践能力、学会自主开发独立程序,学会将所学知识应用于实践中,并在实践中不断学习。在大学里本人所学的知识大多数是从课本上得到的,而这次是要通过动手来实践,实习对本人来说是一次很好的锻炼。 本人所要实现的是一个小型CMS博客系统,用户在注册后可以实现在后台操作数据库更改网站标题、版本号、管理博客、管理日志分类等,在前台可以查看已公开的博客等。本次课程设计初步目标是实现博客的基本功能,在这个基础上对功能进行扩充。 2、选用的语言 利用WINDOWS XP结合DREAMWEAVER和access搭建ASP的环境平台,语言采用强大的vbscript。采用了IIS5.1。 3、需求分析的方法和结果 通过对现行博客系统的基本功能进行调查,明确了CMS博客系统由查看博客、发表博客、回复博客、管理员通过后台管理登录管理日志分类、修改删除博客、发表新文章、设置主页信息等等。用户对系统的描述如下。 a)用户基本功能 1)匿名用户可以查看用户公开的博客,并且可以通过注册申请成为正式用户。 b)管理员基本功能 1)发表新文章。 2)管理文章、如添加删除等。 3)管理分类,如添加、删除、重命名。 4)设置主页上显示的博客条数或者版本号。 数据流图

数据库逻辑模型 将图书馆管理系统的E-R图转换为关系数据库的数据模型,其关系模式为: 博客用户(用户,密码,邮箱),其中用户为主码; 版本信息(版本ID,URL,主页底部信息,副标题),其中版本ID为主码; 日志分类信息(编号,分类名称,基本表述(在鼠标放到分类上后显示的小标签)) 将CMS系统的数据库名定为“SimpleCMS” 数据库模式的规范化 各表的函数依赖集: F博客用户={用户→密码}; F类别={分类ID→名称,分类ID→基本描述}; F版本信息={编号→网站名,编号→网址,编号→底部信息,编号→副标题信息}; 上述关系模式中不存在对非码依赖的表达式,所有的非主属性对码完全并直接依赖,由此证明,博客数据库中各表均服从BCNF,其规范化程度较高,数据库设计合理。 4、E-R图

数据库综合实验报告(学生成绩管理系统)

数据库综合实验报告 班级: 学号: 姓名: 2013年5月

数据库应用系统的初步开发 一、实验目的 1.掌握数据库设计的基本技术,熟悉数据库设计的每个步骤中的任务和实施方案,并加深对数据库系统系统概念和特点的理解。 2.初步掌握基于C/S的数据库应用系统分析、设计和实现方法。 3.进一步提高学生的知识综合运用能力。 二、实验内容 在SQL Server2000数据库管理系统上,利用 Microsoft Visual C++ 6.0开发工具开发一个学生成绩管理系统的数据库应用系统。 三、实验过程 (一.)系统需求说明 1系统功能要求设计:此系统实现如下系统功能: (1)使得学生的成绩管理工作更加清晰、条理化、自动化。 (2)通过用户名和密码登录系统,查询课程基本资料,学生所选课程成绩,修改用户密码等功能。容易地完成学生信息的查询操作。 (3) 设计人机友好界面,功能安排合理,操作使用方便,并且进一步考虑系统 在安全性,完整性,并发控制,备份和恢复等方面的功能要求。 2系统模块设计 成绩管理系统大体可以分成二大模块如,一是学生的基本信息模块,里面应 该包含学生的各方面的基本信息;再者便是课程管理模块,在该模块中应该包 含有对学生成绩信息的查询和处理,;再其次还有教师、课程等相关信息的模块; 可以得到系统流程图: 登陆失败 学生管课 程 管 退出系统用户 验证 成 绩 查 登 陆 成 功

3 数据字典 数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称、数据类型、长度、取值能否为空。利用SQL Server 2000建立“学生选课”数据库,其基本表清单及表结构描述如下: 数据库中用到的表: 数据库表名关系模式名称备注 Student 学生学生学籍信息表 Course 课程课程基本信息表 Score 成绩选课成绩信息表 Student基本情况数据表,结构如下: 字段名字段类型Not Null 说明 Student _sno Char Primary key 学号 Student _sn char Not Null 学生姓名 Student _sex char ‘男’或‘女’性别 Student _dept char 系别 Student_age char 年龄 Student_address char 地址 course数据表,结构如下: 字段名字段类型约束控制说明 course_cno char 主键(primary key)课程号 char not null 课程名称course_cnam e course_hour int not null 课时 course_score numeric(2,1) not null 学分 score情况数据表,结构如下: 字段名字段类型约束控制说明 score_id int not null 成绩记录号 course_cno char 外部键课程号 student_sno char 外部键学号 score int 成绩 (二)数据库结构设计 1.概念结构设计 由需求分析的结果可知,本系统设计的实体包括: (1)学生基本信息:学号,姓名,性别。 (2)课程基本信息:课程名,课程号,分数。 2.逻辑结构设计 这些实体间的关系模式如下:

数据库原理实验报告(1)

南京晓庄学院 《数据库原理与应用》课程实验报告 实验一 SQL Server 2005常用服务与实用工具实验 所在院(系):数学与信息技术学院 班级: 学号: 姓名:

1.实验目的 (1)了解Microsoft 关系数据库管理系统SQL Server的发展历史及其特性。 (2)了解SQL Server 2005的主要组件、常用服务和系统配置。 (3)掌握Microsoft SQL Server Management Studio 图形环境的基本操作方法。了解使用“SQL Server 2005 联机从书”获取帮助信息的方法;了解“查询编辑器”的使用方法;了解模板的使用方法。 2.实验要求 (1)收集整理Microsoft关系数据库管理系统SQL Server的相关资料,总结其发展历史及SQL Server 2005主要版本类别和主要功能特性。 (2)使用SQL Server配置管理器查看和管理SQL Server 2005服务。 (3)使用Microsoft SQL Server Management Studio连接数据库;使用SQL Server帮助系统获 得所感兴趣的相关产品主题/技术文档。 (4)使用Microsoft SQL Server Management Studio“查询编辑器”编辑并执行Transact-SQL 查询语句。 (5)查看Microsoft SQL Server 2005模板,了解模板的使用方法。 (6)按要求完成实验报告。 3.实验步骤、结果和总结实验步骤/结果 (1) 简要总结SQL Server系统发展历史及SQL Server 2005主要版本类别与主要功能特性。

数据库实验5实验报告

淮海工学院计算机工程学院实验报告书 课程名:《数据库原理及应用》 题目:数据库的完整性 班级:软件132 学号:2013122907 姓名:莹莹

一.目的与要求 1.掌握索引创建和删除的方法; 2.掌握创建视图和使用视图的方法; 3.掌握完整性约束的定义方法,包括primary key、foreign key等。 二.实验容 1.基于前面建立的factory数据库,使用T-SQL语句在worker表的“部门号”列上创建一个非聚集索引,若该索引已经存在,则删除后重建。 2.在salary表的“职工号”和“日期”列创建聚集索引,并且强制唯一性。 3.建立视图view1,查询所有职工的职工号、、部门名和2004年2月工资,并按部门名顺序排列。 4.建立视图view2,查询所有职工的职工号、和平均工资; 5.建立视图view3,查询各部门名和该部门的所有职工平均工资; 6.显示视图view3的定义; 7.实施worker表的“性别”列默认值为“男”的约束; 8.实施salary表的“工资”列值限定在0~9999的约束; 9.实施depart表的“部门号”列值唯一的非聚集索引的约束; 10.为worker表建立外键“部门号”,参考表depart的“部门号”列。 11.建立一个规则sex:性别=’男’ OR 性别=’女’,将其绑定到“性别”上; 12.删除上面第7、8、9和10建立的约束; 13.解除第11题所建立的绑定并删除规则sex。 三.实验步骤 1 USE factory GO --判断是否存在depno索引;若存在,则删除之 IF EXISTS(SELECT name FROM sysindexes WHERE name='depno') DROP INDEX worker.depno GO --创建depno索引 CREATE INDEX depno ON worker(部门号) GO EXEC sp_helpindex worker GO 2 USE factory GO --判断是否存在no_date索引;若存在,则删除之 IF EXISTS(SELECT name FROM sysindexes WHERE name='no_date') DROP INDEX salary.no_date GO --创建no_date索引

数据库实验报告完整

华北电力大学 实验报告 | | 实验名称数据库实验 课程名称数据库 | | 专业班级:学生姓名: 学号:成绩: 指导教师:实验日期: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.完成用户界面的设计,对重要数据进行加密。

sqlserver数据库综合实验报告格式

华北科技学院计算机系综合性实验 实验报告 课程名称数据库原理与应用 实验学期 2009 至 2010 学年第一学期学生所在系部管理系 年级三年级专业班级商务B071班 学生姓名李荣妹学号 4121 任课教师郭红 实验成绩 计算机系制

《数据库原理与应用》课程综合性实验报告

(3)建表如下图: 图书表的结构 读者表的结构罚款表的结构 借阅表的结构密码表的结构 输入数据:图书 读者 S只学生,t指老师,1指没有超期,0表示超期 借阅 罚款

密码: (4)、创建视图。以sa的身份登录数据库,创建视图V1,V2,V3 create VIEW V1 create VIEW V2 create VIEW V3 AS AS AS select * from 图书 select * from 借阅 select * from 罚款 建立视图V5,查看在库的图书:create view V5 as select *from 图书 where 借阅状态=‘在库’ 建立已被借出去的图书视图 create view V6 as

select * from 图书 where 借阅状态='出库' 建立逾期未还的图书的学生视图: create view V7 as select * from 借阅 where datediff(day,convert(smalldatetime,借出日期),getdate())>’30’ and 借书证号 in(select 借书证号 from 读者,借阅 Where 借阅.借书证号=读者.借书证号 and 读者类别=‘s’ 四、物理设计和自定义完整性 建立索引:为了提高在表中搜索元组的速度,在实际实现的时候应该基于键码建立索引是表中建立索引的表项: 图书表(图书编号,条形码号)读者(借书证号)借阅(借书证号,条形码号)罚款表(借书证号,条形码号)密码(借书证号) (2)建立触发器 a.对已有借书证的读者进行查询借书是否超期(这里归定30天): create trigger T1 on 读者 for insert as select 借阅.借书证号,读者.读者姓名,图书.图书编号,图书.书名,借阅.借出日期 from 读者,借阅,图书 where 读者.借书证号=借阅.借书证号 and 图书.条形码号=借阅.条形码号 and 读者类别='s' and Datediff(day,convert(smalldatetime,借出日期),getdate())>=30 b.建立触发器T2(还书时): create trigger T2 on 借阅 for insert as begin update 图书 set 借阅状态='在库' where 条形码号=(select 条形码号 from inserted) update 借阅 set 归还日期=getdate(); update 读者 set 书数=书数-1 where 借书证号=(select 借书证号 from inserted) end c.建立触发器T3(借书书时): create trigger T3 on 借阅 for insert as begin update 图书 set 借阅状态='入库' where 条形码号=(select 条形码号 from inserted) update 借阅 set 借出日期=getdate(); update 读者 set 书数=书数+1 where 借书证号=(select 借书证号 from inserted) end d.建立触发器T4,实现超出借书数目时禁借(针对老师的): create trigger T4 on 读者 for insert

数据库原理实验报告(数据查询)

数据库原理实验报告 实验三数据查询 班级:××× 姓名:××× 学号:××× 数据查询 一、[实验目的] 1.掌握SQL的单表查询操作

2.掌握SQL的连接查询操作 3.掌握SQL的嵌套查询操作 4.掌握SQL的集合查询操作 二、[实验内容] 本实验的主要内容是: 1.简单查询操作。包括投影、选择条件表达,数据排序,使用临时表等。 2.连接查询操作。包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等。 3.在SQL Server查询分析器中,使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。 4.组合查询与统计查询。 (1)分组查询实验。该实验包括分组条件表达、选择组条件的表达方法。 (2)使用函数查询的实验。该实验包括统计函数和分组统计函数的使用方法。 (3)组合查询实验。 (4)计算和分组计算查询的实验。 三、[实验方法] 1.将查询需求用Transact-SQL语言表示。 2.在SQL Server查询分析器的输入区中输入Transact-SQL查询语句。 3.设置查询分析器结果区为Standard Execute(标准执行)或Execute to Grid方式。 4.发布执行命令,查看查询结果;如果结果不正确,进行修改,直到正确为止。 5 查询分析器的主要作用是编辑Transact-SQL,将其发送到服务器,并将执行结果及分析显示出来(或进行存储)。查询分析功能主要是通过测试查询成本,判断该查询是否需要增加索引以提高查询速度,并可以实现自动建立索引的功能。 图5- 错误!未定义书签。SQL Server 2000查询分析器 查询分析器的界面如图5- 错误!未定义书签。所示。在查询生成器中的左边窗口是对象浏览器,其中按树结构列出了数据库对象;右上方是SQL代码区域,用于输入SQL的查

数据库实验报告五

数据库原理及应用实验报告(五) 实验题目:过程 专业:数字媒体技术 班级:1306班 姓名:***************

运城学院实验报告 专业:数字媒体技术系(班):计算机科学与技术系1306班姓名:************* 课程名称:数据库原理及应用 实验项目:过程实验类型:验证型指导老师:***** 实验地点:软件实验室一时间:2015年12月10日 一、实验目的: 掌握用户存储过程的创建,了解一些常用的系统存储过程,以及调用和删除过程,并熟悉使用存储过程来进行数据库应用程序的设计。 二、实验内容: (1)基于学生—课程数据库创建一存储过程,用于检索数据库中某个专业学生的人数,带有一个输入参数,用于指定专业。执行结果如图二所示: create procedure pro_s @stu_sdept varchar(5) //这是带参数的过程,参数不用()括 As select count(*) as 人数from student where sdept = @ stu_sdept 1、存储过程的执行 execute pro_s 实参//实参可以是变量,也可以是常量 (2)基于学生-课程数据库创建一存储过程,该过程带有一个输入参数,一个输出参数。其中输入参数用于指定学生的学号,输出参数用于返回学生的平均成绩。执行结果如图四所示: create procedure pro_stu @stu_sno char(6),@stu_avg float output //这个带output的是输出参数as select @stu_avg = avg(grade) //将平均值给了变量 from student,sc where student. sno = sc. sno and student.sno=@stu_sno 1.存储过程的执行 declare @stuavg float //用于存放输出变量内容的 execute pro_stu ‘1000’,@stuavg output// 输出参数必须是变量 select @stuavg //看结果 (3)在pubs数据库中建立一个存储过程,用于检索数据库中某一价位的图书信息。参数有两个,用

数据库原理实验报告

数据库原理 实验报告 系别电子信息系 专业计算机科学与技术班级学号4080522 姓名龚敏 指导教师李爱英

一.概要设计 1.教学数据库各表的关系模式:(加下线的属性为主键) 学生 (学号,姓名,性别, 出生日期,所在系) 英文缩写对照:student(s_no,s_name,s_sex,s_age,s_birthday,s_department) 课程 (课程号,课程名,学分) 英文缩写对照:course(c_no,c_name,c_score) 教师 (职工号,姓名,性别,职称) 英文缩写对照:teacher(t_no,t_name,t_sex,t_duty) 选课 (学号,课程号,成绩) 英文缩写对照:choice(s_no,c_no,score) 讲授 (职工号,课程号) 英文缩写对照:teaching(t_no,c_no) 2.教学数据库E-R 图: 实体:课程,学生,选课 联系:选课(学生同课程之间多对多的联系m:n),讲授(教师同课程之间多对多的联系m:n)。 二.逻辑设计 代码: use master go create database stu go use stu go n m m n 课程 教师 讲授 选课 学号 姓名 性别 出生日期 成绩 职工号 姓名 性别 职称 学分 课程号 课程名 学生

create table student (s_no char(8) not null primary key, s_name char(8) not null , s_sex varchar(8) not null, s_birthday smalldatetime not null, s_department varchar(13) not null) drop table student use stu go create table teacher (t_no char(8) not null primary key, t_name char(8) not null, t_sex varchar(8) not null, t_duty char(8) not null) create table course (c_no char(8) not null primary key, c_name char(8) not null, c_score varchar not null) create table choice( s_no char(8) not null primary key, c_no char(8) not null primary key, score varchar not null) create table teaching( t_no char(8) not null primary key, c_no char(8) not null primary key) insert student values('101','袁敏','女','1982-2-3','机电') insert student values('102','李志强','男','1983-4-5','计算机') insert student values('103','张亮','男','1984-10-9','建筑') insert student values('104','李平','女','1984-5-6','计算机') insert student values('105','王丽','女','1983-2-1','机电') insert student values('106','刘明耀','男','1982-4-16','计算机') select* from student insert course values('1011','C语言','6') insert course values('1012','数据结构','4') insert course values('1013','微机原理','6') insert course values('1014','数字电路','5') insert course values('1015','高等数学','6') select* from course insert teacher values('0511','张大维','男','副教授') insert teacher values('0512','林楠','女','讲师') insert teacher values('0513','韩晓颖','女','副教授') insert teacher values('0514','李辉','男','讲师') insert teacher values('0515','孙丽','女','助教') select* from teacher insert choice values('101','1011','82.5') insert choice values('101','1012','79') insert choice values('102','1012','92.5') insert choice

数据库实验报告1

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;

《数据库及其应用》实验报告(新)

《数据库及其应用》 (课程编号:B0901000) 实验报告 (2014-2015学年第2学期) 实验成绩: 学号: 姓名: 专业班级: 课堂号: 任课教师: 完成日期:

一、实验目的及要求 能熟练掌握 Access2010的启动、退出,以及操作界面和操作方法。 能够理解关系模型的基本概念。 能够完成简单的数据库概念设计、逻辑设计和物理设计。 能够熟练建立数据库文件、表对象和关系。 能够熟练掌握基本SQL语言,能够在Access中进行一般的SQL 查询。 能够运用SQL对数据库进行更新。 能够熟练掌握不同软件之间的数据交换。 二、实验设备(环境)及要求 PC机,Windows 7,Office 2010(主要是Access 2010) 实验参考教材: 《数据库及其应用(Access及Excel)学习与实验实训教程》(第二版)。 (以下简称《实验教程》) 三、实验内容及记录 实验项目1:熟悉Access的启动和退出,熟悉Access的界面 1.启动Access 练习不同的Access的启动方法。。 2.退出Access 练习不同的Access的启动方法。 3.观察并了解 Access用户界面 不同方式启动进入Access,其界面有所差异。 通过“开始”按钮或桌面Access快捷方式启动进入Backstage视图;通过Access数据库文件关联则直接进入Access数据库窗口。 Access用户界面主要由三个组件组成: 功能区。 Backstage 视图。 导航窗格。 (1)观察Backstage视图:不同方式进入Backstage视图,注意其差别。 (2)观察功能区:了解组成功能区的选项卡。 (3)观察导航窗格。各种对象的显示组合。 4.Access选项及其设置 在Backstage视图中选择“选项”命令单击,进入Access选项对话框窗口。在该窗口可设置默认文件夹等。可设置文档窗口显示方式、定制导航窗格、定制工具栏的项目等。

数据库原理实验报告分析

2013级数据库原理实验报告 专业:_______计算机___ 班级:________________ 学号:______________ 姓名:_______________ 2015年5月

实验一 SQL Server 2005基本操作 一、实验目的 了解SQL Server 2005组件; 了解SQL Server数据库组成; 掌握SQL Server 2005界面基本操作。 二、实验内容 (1)开始->程序->Microsoft SQL Server 2005-> SQL Server Management Studio,打开后进入到SQL Server 2005主体界面 (2)点击?数据库?前面的?+?,可以展开查看数据库,并且可以继续展开下级目录,查看数据库中的表、视图等。 (3)了解SQL Server 2005菜单栏的一些主要工具的使用。 (4)学生动手操作SQL Server 2005,打开数据库,打开表,打开查询界面;查看数据库的属性、表的属性等。 三、实验总结 进行这次实验有遇到什么问题?怎么解决的? 答:此次实验我们一步一步按照实验内容操作的,基本上没有遇到问题。

实验二数据定义 一、实验目的 掌握SQL Server 2005的数据库创建; 掌握SQL Server数据定义语言; 掌握SQL Server 2005数据定义的SQL语言定义与管理器定义两种方式。 二、实验内容 (1)创建、修改、删除数据库。 创建要求:数据库Employee中包含一个数据库文件Empdat1.mdf和一个日志文件Emplog.ldf。其中,数据文件大小为10MB,最大为50MB,以5MB速度增长;日志文件大小为5MB,最大为25MB,以5%速度增长。 修改要求:增加第二个数据库文件Empdat2.ndf,其中,数据文件大小为5MB,最 大为25MB,以2MB速度增长。 (2)利用SQL创建人员表person、月薪表salary及部门表dept。 见上页图 要求:按表2-1、表2-2及表2-3中的字段说明创建。

实验一 数据库模式设计及建立实验报告

长春大学计算机学院科学与技术专业 数据库原理实验报告 实验名称:实验一数据库模式设计及建立 班级:姓名:学号: 实验地点:日期: 一、实验目的: 1.了解SQL SERVER 2005/2008系统或KingBase ES V7.0的使用; 2.基本掌握SQL的数据定义。 二、实验内容、要求和环境: 【实验要求】 注:将完成的实验报告重命名为:班级+学号+姓名+(实验一),(如:041540538张三(实验一)),提交到SPOC学堂。 1.实验课要携带教材、学习辅导、老师下发的实验报告文档等。 2.课前要对实验内容和步骤部分进行预习。 3.将本次实验所建的数据库做好备份,以备以后实验使用。 【实验环境】 1.SQL SERVER 2005/20085; 1.KingBase ES V7.0 ,人大金仓。 【实验内容和步骤】 1.熟悉SQL SERVER 2005/2008系统。 (1)启动“SQL Server Managemet Studio”,新建数据库和关系(表) ①鼠标单击“开始/所有程序/Microsoft SQL server 2008/SQL Server Managemet Studio”启动“SQL Server Managemet Studio”,SQL Server Managemet Studio(SSMS)是一个集成环境,用于访问、配置、控制、管理和开发SQL Server 的所有组件,SSMS将大量图形工具与丰富的脚本编辑器相结合,使各种技术水平的开发人员和管理员都可以访问SQL Server; ②在“SQL Server Managemet Studio”中左窗口“对象资源管理器”中,单击“SQLEXPRESS”的左侧“+”,弹出下拉菜单; ③在上一步的下拉菜单中,鼠标右键单击“数据库”,在弹出的菜单中选择“新建数据库”,在弹出的对话框中,输入数据库名,同时可以进行存储位置的设置; ④在数据库文件夹下,出现新建的数据库文件夹; ⑤点击所建数据库文件名左侧的“+”,弹出下拉菜单; ⑥在上一步弹出的下拉菜单中,鼠标右键单击“表”,弹出下拉菜单,单击“新建表”即可在此数据库文件夹中建立关系(表)了。 (2)在“对象资源管理器”的上方有一个“新建查询”图标,单击“新建查询”,可使用SQL 语言进行对关系的操作 ①单击“新建查询”后,在“对象资源管理器”窗口上部出现一个工具栏,右侧弹出一个窗

北邮大三下数据库实验报告5

北京邮电大学 实验报告 课程名称数据库系统原理 实验内容实验5 数据库完整性与安全性实验 班级2013211***姓名 *** 指导老师成绩_________ 2016年05月20日

实验5 数据库完整性与安全性实验 实验目的: 1.通过对完整性规则的定义实现,熟悉了解SQL SERVER中完整性保证的规则和实现方 法,加深对数据完整性的理解。 2.通过对安全性相关内容的定义,熟悉了解SQL SERVER中安全性的内容和实现方法, 加深对数据库安全性的理解 实验内容 完整性实验与要求: 1.分别定义数据库中各基表的主键、外键,实现实体完整性约束和参照完整性约束; 定义主键: 方法一:使用Enterprise Manager设置主键(以book表为例) ①光标移到book表的位置,右键->设计 ②在你要选的属性列右键->设置主键,完成。

方法二:使用SQL语句。 ①右键数据库,新建查询 设置外键: 方法一:使用Enterprise Manager设置外键(以student表为例) ①单击student表,鼠标移到“键”文件夹,单击右键,选择“新建外键”。 ②选择“表和列规范”进行设置

③我们想在student表设置class_id属性为外键,按照下图选择,点击确定,保存即可。 方法二:SQL语句 新建查询,输入如图语句。

2.向学生表插入具有相同学号的数据,验证其实体完整性约束; Student表的主键是学号,所以不能插入有相同学号的学生。 3.向学生表中插入一条数据,班级号是学生表的外键,验证参照完整性约束; Class表中没有“2013211302”这个班级,所以无法插入。改变班级号为class表中存在的,则能够进行插入,结果如下: 4.删除教师表中的所有数据,验证参照完整性约束;

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

实验内容、步骤以及结果 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 昙否否否二

数据库综合实验报告(学生成绩管理系统)

数据库综合实验报告 班级:计科*** 班 学号: **** 姓名: *** 2011年12月

数据库应用系统的初步开发 一、实验类别:综合型实验 二、实验目的 1.掌握数据库设计的基本技术,熟悉数据库设计的每个步骤中的任务和实施方案,并加深对数据库系统系统概念和特点的理解。 2.初步掌握基于C/S 的数据库应用系统分析、设计和实现方法。 3.进一步提高学生的知识综合运用能力。 三、实验内容 在SQL Server2000数据库管理系统上,利用 Microsoft Visual C++ 6.0开发工具开发一个学生成绩管理系统的数据库应用系统。 四、实验过程 (一.)系统需求说明 1 系统功能要求设计:此系统实现如下系统功能: (1)使得学生的成绩管理工作更加清晰、条理化、自动化。 (2)通过用户名和密码登录系统,查询课程基本资料,学生所选课程成绩,修改用户密码等功能。 容易地完成学生信息的查询操作。 (3) 设计人机友好界面,功能安排合理,操作使用方便,并且进一步考虑系统在安全性,完整性,并发控制,备份和恢复等方面的功能要求。 2 系统模块设计 成绩管理系统大体可以分成二大模块如, 一是学生的基本信息模块,里面应该包含学生的各方面的基本信息;再者便是课程管理模块, 在该模块中应该包含有对学生成绩信息的查询和处理,如平均成绩、最好成绩、最差成绩以及不及格学生的统计等功能模块;再其次还有教师、课程等相关信息的模块;可以得到系统流程图: 登陆失败 退出系统 用户 验证 登陆成功

3 数据字典 数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称、数据类型、长度、取值能否为空。利用SQL Server 2000建立“学生选课”数据库,其基本表清单及表结构描述如下: 数据库中用到的表: 数据库表名关系模式名称备注 Student 学生学生学籍信息表 Course 课程课程基本信息表 Score 成绩选课成绩信息表 Student基本情况数据表,结构如下: 字段名字段类型Not Null 说明 Student _sno Char Primary key 学号 Student _sn char Not Null 学生姓名 Student _sex char ‘男’或‘女’性别 Student _dept char 系别 Student_age char 年龄 Student_address char 地址 course数据表,结构如下: 字段名字段类型约束控制说明 course_cno char 主键(primary key)课程号 char not null 课程名称course_cnam e course_hour int not null 课时 course_score numeric(2,1) not null 学分 score情况数据表,结构如下: 字段名字段类型约束控制说明 score_id int not null 成绩记录号 course_cno char 外部键课程号 student_sno char 外部键学号 score int 成绩 (二)数据库结构设计 1.概念结构设计 由需求分析的结果可知,本系统设计的实体包括: (1)学生基本信息:学号,姓名,性别,地址,年龄,专业。 (2)课程基本信息:课程名,课程号,分数,学时,学分。

相关文档
相关文档 最新文档