当前位置:文档之家› 实验七:通过ODBC方式访问数据库

实验七:通过ODBC方式访问数据库

实验七:通过ODBC方式访问数据库
实验七:通过ODBC方式访问数据库

题目:实验七通过ODBC 访问数据库

姓名V ivian

日期2006-1-1

实验内容:

一. 配置数据源

配置数据源共有两种方法:

方法一:运用数据源管理工具来进行配置。

方法二:使用Driver Manager 提供的ConfigDsn 函数来增加、修改或删除数据源。这

种方法特别适用于在应用程序中创建的临时使用的数据源。

在本实验中,我们采用第一种方法创建数据源。实验中需要同时用到KingbaseES 和SQL Server,因此需要分别建立两个数据源,我们将其取名为KingbaseES ODBC 和SQLServer。下面是建立这两个数据源的具体步骤。

选择『开始』│『设置』│『控制面板』菜单,在弹出窗口中双击“管理工具”图标进

入管理工具界面,双击“数据源(ODBC)”图标。

1.建立KingbaseES 数据源。

(1)选择“系统DSN”选项,单击【添加(D)…】按钮,系统弹出“创建新数据源”

对话框,如图 1 所示:

图 1 数据源管理器

(2)如图 2 所示,在ODBC 驱动器程序列表中,选择“Kingbase ODBC Driver”,单

击【完成】按钮,系统弹出“Kingbase ODBC 数据源配置”对话框,如图 3 所示。

图 2 创建新数据源

(3)输入数据源名称、数据库名称以及数据库IP地址。图中数据源的名称为KingbaseES ODBC,连接的数据库为“学生课程数据库”,服务器为localhost,用

户名和口令分别为SYSTEM 和MANAGER。注意:KingbaseES 区别大小写。

图 3 Kingbase ODBC 数据源配置

(4)单击【保存】按钮,这样就创建了一个名为“KingbaseES ODBC”的KingbaseES ODBC 数据源。

(5)如果要测试和数据源的连接是否成功,可以单击“测试连接”,系统会根据测试的结果反馈相应的消息框,如图 4 和图5 所示。

图 4 连接成功

图 5 连接失败

以上五步就建立了一个名为KingbaseES ODBC 的数据源。

2.建立SQLServer 数据源。

(1)选择“系统DSN”选项,单击【添加(D)…】按钮,系统弹出“创建新数据源”对话框,如图 6 所示:

图 6 数据源管理器

(2)如图7 所示,在ODBC 驱动器程序列表中,选择“SQL Server”,单击【完成】按钮,系统弹出“Create New Data Source to SQL Server”对话框,如图8 所示。

图7 创建数据源配置

(3)如图8,输入数据源名称和服务器,单击【下一步】按钮。图中数据源的名称为SQLServer,服务器为(local)。如图9,选择身份认证方式,输入用户名和密码,用户名和口令分别为sa 和sa(请根据实际情况进行修改,并对源代码进行相应的修改)。

图8 SQLServer 数据源配置(1)

图9 SQLServer 数据源配置(2)

(4)连续单击【下一步】按钮,这样就创建了一个名为“SQLServer”的SQL Server ODBC 数据源。如图10 所示,将弹出一个提示框,提示即将创建一个新的ODBC

数据源。

图10 提示框

(5)如果要测试和数据源的连接是否成功,可以单击“Test Data Source”,如果连接成功,系统将会显示一个连接成功的消息框,如图11 所示。

图11 连接成功

以上五步就建立了一个名为SQLServer 的数据源。

注:在创建数据源,测试连接是否成功时,如果KingbaseES 和SQL Server 未启动服务,则将显示连接失败。启动服务后,再进行测试,连接成功。

二. 通过ODBC 访问异构数据库,并且对异构数据库进行操作。

1.实验环境介绍。

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

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

软件系统:WINDOWS 2000 SERVER FAMILY

在实验一中,我们已经成功安装了KingbaseES V4.1,自动建立的“学生课程数据库”

中含有基本表Student,其中安装路径为C:\Program Files 目录下。我们还需要在SQL Server

中预先建立基本表STUDENT。

在本实验中,我们将编写程序连接两个不同RDBMS 的数据源,将KingbaseES 数据库

中的STUDENT 表中的数据备份到SQL Server 数据库的STUDENT 中。

2.在VC++6.0 环境中编程实现访问数据库。

(1)实验预备。

本实验源程序名为ODBCTest。下面我们将在VC++6.0 环境下对该程序进行编译。

(2)实验源代码。以下为本实验实际程序的源码,并给出了一些注释,供参考。

#include

#include

#include

#include

#include

#include

#define SNO_LEN 30

#define NAME_LEN 50

#define DEPART_LEN 100

#define SSEX_LEN 5

int main()

{

/* Step 1 定义句柄和变量*/

//以king 开头的表示的是连接KINGBASEES 的变量

//以server 开头的表示的是连接SQLSERVER 的变量

SQLHENV

kinghenv, serverhenv;

//环境句柄

SQLHDBC

kinghdbc,serverhdbc;

//连接句柄

SQLHSTMT

kinghstmt,serverhstmt;

//语句句柄

SQLRETURN

ret;

//结果返回集

SQLCHAR

sName[NAME_LEN], sDepart[DEPART_LEN],sSex[SSEX_LEN],

sSno[SNO_LEN];

SQLINTEGER

sAge;

SQLINTEGER

cbAge = 0, cbSno = SQL_NTS, cbSex = SQL_NTS,

cbName = SQL_NTS,cbDepart = SQL_NTS;

/* Step 2 初始化环境*/

//分配环境句柄

ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &kinghenv);

ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &serverhenv);

//设置管理环境的属性

ret = SQLSetEnvAttr(kinghenv, SQL_A TTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0); ret = SQLSetEnvAttr(serverhenv, SQL_A TTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0); /* Step 3 :建立连接*/

//分配连接句柄

ret = SQLAllocHandle(SQL_HANDLE_DBC, kinghenv, &kinghdbc);

ret = SQLAllocHandle(SQL_HANDLE_DBC, serverhenv, &serverhdbc);

ret = SQLConnect(kinghdbc,

//连接KingbaseES

"KingbaseES ODBC",SQL_NTS,

"SYSTEM",SQL_NTS,

"MANAGER",SQL_NTS);

if (!SQL_SUCCEEDED(ret))

//连接失败时返回错误值

return -1;

ret = SQLConnect(serverhdbc,

//连接SQLServer

"SQLServer",SQL_NTS,

"sa",SQL_NTS,

"sa",SQL_NTS);

if (!SQL_SUCCEEDED(ret))

//连接失败时返回错误值

return -1;

/* Step 4 :初始化语句句柄*/

ret = SQLAllocHandle(SQL_HANDLE_STMT, kinghdbc, &kinghstmt);

ret=SQLSetStmtAttr(kinghstmt,SQL_A TTR_ROW_BIND_TYPE,(SQLPOINTER)SQL_BI ND_BY_COLUMN,SQL_IS_INTEGER );

//设置语句选项

ret = SQLAllocHandle(SQL_HANDLE_STMT, serverhdbc, &serverhstmt);

/* Step 5 :两种方式执行语句*/

/* 预编译带有参数的语句*/

//需要多次执行插入,因此预先声明插入语句

ret = SQLPrepare(serverhstmt, "INSERT INTO STUDENT

(SNO,SNAME,SSEX,SAGE,SDEPT) V ALUES (?, ?, ?, ?, ?)",

SQL_NTS);

if (ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO)

{

//绑定参数

ret

=

SQLBindParameter(serverhstmt,

1,

SQL_PARAM_INPUT,

SQL_C_CHAR,SQL_CHAR, SNO_LEN, 0, sSno, 0, &cbSno);

ret

=

SQLBindParameter(serverhstmt,

2,

SQL_PARAM_INPUT,

SQL_C_CHAR,SQL_CHAR, NAME_LEN, 0, sName, 0, &cbName);

ret

=

SQLBindParameter(serverhstmt,

3,

SQL_PARAM_INPUT,

SQL_C_CHAR,SQL_CHAR, 2, 0, sSex, 0, &cbSex);

ret

=

SQLBindParameter(serverhstmt,

4,

SQL_PARAM_INPUT,

SQL_C_LONG,SQL_INTEGER, 0, 0, &sAge, 0, &cbAge);

ret

=

SQLBindParameter(serverhstmt,

5,

SQL_PARAM_INPUT,

SQL_C_CHAR,SQL_CHAR, DEPART_LEN, 0, sDepart, 0, &cbDepart);

}

/*执行SQL 语句*/

ret = SQLExecDirect(kinghstmt,"SELECT * FROM STUDENT",SQL_NTS);

if (ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO)

{

//将结果集中的属性列一一绑定至变量

ret = SQLBindCol(kinghstmt, 1, SQL_C_CHAR,sSno,SNO_LEN, &cbSno);

ret = SQLBindCol(kinghstmt, 2, SQL_C_CHAR, sName, NAME_LEN, &cbName); ret = SQLBindCol(kinghstmt, 3, SQL_C_CHAR, sSex, SSEX_LEN, &cbSex);

ret = SQLBindCol(kinghstmt, 4, SQL_C_LONG, &sAge, 0, &cbAge);

ret = SQLBindCol(kinghstmt, 5, SQL_C_CHAR, sDepart, DEPART_LEN, &cbDepart); }

/* Step 6 :处理结果集并执行预编译后的语句*/

while ((ret=SQLFetch(kinghstmt)) !=SQL_NO_DA TA_FOUND)

{

if(ret== SQL_ERROR)

//错误处理

printf("Fetch error\n");

else ret=SQLExecute(serverhstmt);

//执行语句

}

/* Step 7 中止处理*/

SQLFreeHandle(SQL_HANDLE_STMT,kinghstmt);

//释放Kingbase 语句句柄

SQLDisconnect(kinghdbc);

//断开与KingbaseES 的连接

SQLFreeHandle(SQL_HANDLE_DBC, kinghdbc);

//释放Kingbase 连接句柄

SQLFreeHandle(SQL_HANDLE_ENV,kinghenv);

//释放Kingbase 环境句柄

SQLFreeHandle(SQL_HANDLE_STMT, serverhstmt);

//释放SQLServer 语句句柄

SQLDisconnect(serverhdbc);

//断开与SQLServer 的连接

SQLFreeHandle(SQL_HANDLE_DBC, serverhdbc);

//释放SQLServer 连接句柄

SQLFreeHandle(SQL_HANDLE_ENV, serverhenv);

//释放SQLServer 环境句柄

return 0;

}

在编写程序的时候,请注意ODBC 1.0 和ODBC 2.x、ODBC 3.x 函数使用上的差异,很多函数在 3.x 上已经被替换或丢弃了,因此,必须注意实验使用的版本带来的不同之处。(3)实验步骤。

首先,在VC++6.0 中新建一个Win32 Console Application 的项目,并将项目命名为ODBCTest。

然后,将已经写好的ODBCTest.c 文件加入到该项目的Source Files 中,编译并且执行。执行完成后,进入SQL Server 查询分析器,对原来为空的Student 表进行查询(SELECT * FROM Student),可以看见SQL Server 中Student 表的数据即为KingbaseES 中Student 表

的数据备份。

数据库原理上机实验指导

数据库原理上机实验指导 一、实验目的和要求 1.实验目的 力图通过本实践课程的学习,使学生掌握数据库管理系统的基本概念、操作方法和管理方法,能够根据用户应用需求设计出合理的数据库应用系统逻辑模型方案,并且实现之。 2.实验要求 本实践课程主要介绍Microsoft SQL Server 2000系统的基本概念、基本知识;讲述数据库管理系统的安装、操作、设计、管理等基本概念及其操作方法;学习如何创建和管理数据库系统的步骤,为承担DBA角色作好准备。重点要求掌握Transact-SQL语言,学会数据库应用系统逻辑模型的设计和实现。 要求学生实验前认真准备,实验后提供实验报告,给出详细实验结果以及设计依据。 实验报告的格式应采用统一封面,统一的实验报告纸。封面应包括:课程名称、实验序号、名称、专业、班级、姓名、同组实验者、实验时间。实验报告内容应包括:实验名称、目的、内容、实验步骤、实验记录、数据处理(或原理论证、或实验现象描述、或结构说明等)。 二、实验环境介绍 1.硬件设备要求 微型计算机,最好具有局域网环境 2.软件设备要求 Windows 2000或Windows XP操作系统; MS SQL Server 2000数据库管理系统。 三、实验内容和学时分配 1.实验内容 实验1:服务器管理 实验2:创建和管理数据库 实验3:Transact-SQL语言——数据查询 实验4:Transact-SQL语言——数据定义与数据更新 实验5:数据库安全与保护——用户管理和权限管理 实验6:数据库安全与保护——数据完整性 实验7:数据库安全与保护——数据库的一致性和并发性 实验8:数据库安全与保护——数据库的备份与恢复 实验9:存储过程和触发器 实验10:嵌入式SQL的使用

数据库实验报告七

学院计算机学院/软件学院 实验报告 专业软件工程班级软件2班焕荣学号 2 课程名称数据库原理与设计 学年2016—2017 学期 1□/ 2课程类别专业必修限选□任选□实践□评分:批阅老师: 2017年月日 实验七查询优化 ●实验目的 1. 了解DBMS对查询优化的处理过程。 2. 增强查询优化的实践能力。 3. 进一步提高编写复杂查询的SQL脚本的能力。 4. 巩固和加深理解查询相关理论。 ●实验容 针对数据库ShiYan,完成以下查询优化操作。 (1)查询P表中各零件编号、名称及重量按86%计算后的信息,其中重量按86%计算后的查询列名改为“零件净重”。 要求: 1) 考虑表扫描的情况。 2) 考虑建立适当索引的情况。 3) 考虑重写SQL脚本的情况。 4) 用不同的方法实现本题中的查询操作,分析系统为各种查询实现方法生成的执行计划和客户统计信息。 5) 记录各种查询的平均执行时间,决定哪种查询实现方法是相对最优的。 (2)查询没有使用供应商生产的零件并且当前工程所使用零件的颜色全部为红色的工程号JNO。 要求: 1) 考虑表扫描的情况。 2) 考虑建立适当索引的情况。 3) 考虑重写SQL脚本的情况。 4) 用不同的方法实现本题中的查询操作,分析系统为各种查询实现方法生成的执行计划和

客户统计信息。 5) 记录各种查询的平均执行时间,决定哪种查询实现方法是相对最优的。 实验结果 (1) A.方法一:“表扫描” Sql语句如下: select PNO,PNAME,WEIGHT*0.86 零件净重 from P 实验结果截图:

B.方法二:“在P(PNO)上建立唯一索引” create unique index PNO_index on P(PNO) select PNO,PNAME,WEIGHT*0.86 零件净重 from P 实验结果截图: 由上可知,方法二相对最优。

数据库原理实验报告

南京晓庄学院 《数据库原理与应用》 课程实验报告 实验一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学习版当保护和管理应用系统内外部的信息变得至关重要时,通过提供一套免费、易于使用和健壮的数据库,学习版帮助开发人员建立强健的和可靠的应用系统。

数据库上机实验7实验报告

上机实验七——视图的建立及操作 一、实习目的: 掌握创建、删除、和查询视图的方法,验证可更新视图和不可更新视图。 二、实习准备: 1.复习第三章3.6节视图 2. 完成习题三第16题中的各项操作的SQL语句。 3.了解可更新视图和不课更新视图 三、实习内容:验证习题三第16题中的各项操作的SQL语句。 ①建立01311班选修了1号课程的学生视图Stu_01311_1 CREATE VIEW Stu_01311_1 AS SELECT * FROM Grade WHERE Cno='1'AND Sno in( SELECT Sno FROM Student WHERE Clno='01311') WITH CHECK OPTION ②建立01311班选修了1号课程并且成绩不及格的学生视图Stu_01311_2 CREATE VIEW Stu_01311_2 AS SELECT * FROM Grade

WHERE Cno='1'AND Gmark<60 AND Sno in( SELECT Sno FROM Student WHERE Clno='01311') WITH CHECK OPTION ③建立视图Stu_year,由学生学号、姓名、出生年份组成 CREATE VIEW Stu_year AS SELECT Sno,Sname,year=2001-Sage FROM Student ④查询1990年以后出生的学生姓名 SELECT Sname FROM Student WHERE 2001-Sage<1990; ⑤查询01311班选修了1号课程并且成绩不及格的学生的学号、姓名、出生年份SELECT Sno,Sname,2014-Sage FROM Student WHERE Clno=01311 AND EXISTS(

《数据库原理》实验7

实验七:数据库的安全性 一、实验目的 1.掌握Windows NT认证模式下数据库用户帐号的建立与取消方法; 2.掌握混合模式下数据库用户帐号的建立与取消方法; 3.掌握数据库用户权限的设置方法; 4.熟悉数据库数据库用户帐号的权限分配、回收等方法; 5.了解数据库角色的分类、作用及使用方法。 二、实验环境 已安装SQL Server 2005 企业版的计算机; 具有局域网环境,有固定IP; 三、实验学时 2学时 四、实验要求 1.了解SQL Server 2005系统安全; 2.熟悉数据库用户、服务器角色及数据库角色的用法; 3.完成实验报告; 五、实验内容及步骤 以系统管理员身份登录到SQL Server服务器,在SQL Server2005界面中实现以下操作,并独立写出部分题目的程序代码; 1.在当前计算机中增加一个用户zhang和cheng,密码为secret。使此用户通 过winows nt模式下登录SQL Server服务器,登录名分别为zhang和cheng; 2.新建以混合模式登录SQL Server服务器的用户登录名为stu1、stu2和stu3, 登录密码为secret,默认登录数据库为stu; 3.将帐号zhang添加为数据库stu的用户,用户名为zhang; 4.在数据库stu中创建用户stu1、stu2和stu3,登录帐号分别为stu1、stu2 和stu3; 5.给数据库用户zhang赋予创建数据库的权限; 6.给数据库用户stu1赋予对sc表进行插入、修改、删除操作权限; 7.给数据库用户stu2和stu3赋予对student表、course表所有操作权限及查 询sc的操作权限,并允许再授权给其他用户; 8.收回数据库用户stu2对student表和course表的删除操作的权限; 9.若一个小组共5个成员,他们对数据库stu具有相同的操作权限,具体权限 如下: 1)对于student、course表只能进行数据查询;

数据库实验3报告

实验三数据更新、视图、权限管理 实验3.1 数据更新 1 实验内容 (1) 使用INSERT INTO语句插入数据,包括插入一个元组或将子查询的结果插入到数据库中两种方式。 (2) 使用SELECT INTO语句,产生一个新表并插入数据。 (3) 使用UPDATE语句可以修改制定表中满足WHERE子句条件的元组,有三种修改的方式:修改某个元组的值;修改多个元组的值;带子查询的修改语句。 (4) 使用DELETE语句删除数据:删除某一个元组的值;删除多个元组的值;带子查询的删除语句。 2 实验步骤 在数据库School上按下列要求进行数据更新 可在SQL代码前加下面两句SQL语句,用于确保当前使用的是School数据库 Use School go (1)使用SQL语句向STUDENTS表中插入元组(编号:12345678 名字:LiMing EMAIL: LM@https://www.doczj.com/doc/1e1273394.html,年级:2002)。 Insert into STUDENTS values('12345678','LiMing','LM@https://www.doczj.com/doc/1e1273394.html,','2002') (2)对每个课程,求学生的选课人数和学生的最高成绩,并把结果存入数据库。使用SELECT INTO和INSERT INTO两种方法实现。 Insert into: create table Courses_maxScore(cid char(20),Count_courses int,maxScore int) insert into Courses_maxScore (cid,Count_courses,maxScore) select cid,count(*)as Count_courses,max(score)as maxScore from CHOICES group by cid select*from Courses_maxScore

《数据库原理》实验讲义

《数据库原理》实验讲义 SQL Server版 龚安 中国石油大学(华东)计算机科学系 2011年12月

目录 实验一文件管理 (1) 实验二DBMS软件的安装、卸载及认识 (3) 实验三SQL练习1 (35) 实验四SQL练习2 (41) 实验五SQL练习3 (44) 实验六其它数据库对象的管理 (47) 实验七安全机制 (50) 实验八数据库应用编程 (61)

实验一文件管理 一、实验目的 1.了解数据管理技术之文件系统管理数据的特点; 2.掌握应用程序存取数据文件的方法; 3.通过实际体会与比较,为后面感受数据库系统管理数据的优点做准备。 二、实验学时 2学时 三、实验内容 设有一个学生-课程数据库,包括学生表student,课程表course 和选修表sc,如下表所示:

用C或C++语言编写应用程序,建立3个数据文件分别保存学生信息、课程信息和选修信息,并且完成以下任务: 1.编写数据插入功能模块,将以上各个数据表的数据分别插入到对应的数据文件中,并显示输出各个数据表的数据信息; 2.编写数据修改功能模块,将所有学生的年龄增加1岁,并显示输出所有学生的信息; 3.编写数据删除功能模块,删除学号为95004的学生记录,并显示输出所有学生的信息。 4.编写数据查询功能模块,查询选修了课程名为“信息系统”的学生学号和姓名。 四、实验报告 提交源程序(加必要的注释)和数据文件,并将程序的每个任务的输出结果附上。

实验二DBMS软件的安装、卸载及认识一、实验目的 1.了解SQL Server 2005的安装环境配置; 2.掌握SQL Server 2005的安装方法与过程; 3.掌握SQL Server 2005的卸载方法与过程; 4.了解SQL Server 2005的系统数据库、系统表及系统存储过程; 5.掌握SQL Server 2005的SQL Server管理控制台、SQL Server 配置管理器的使用。 二、实验学时 2学时 三、实验准备 1.SQL Server 2005安装环境的配置 在安装SQL Server2005前,需做好两项准备工作: ?保证计算机的硬软件环境能满足SQL Server 2005的需要。 ?依据所需的用途和计算机的软硬件环境选择合适的版本和部件。 (1) SQL Server 2005的版本 ①企业版(Enterprise Edition) 企业版分为支持32位和支持64位两个版本。企业版达到支持超大型企业进行联机事务处理(OLTP)、高度复杂的数据分析、数据仓库系统和网站所需的性能水平。其全面商业智能和分析能力,以及高可用性功能,使它可以处理大多数关键业务的企业工作负荷。企业版是最全面的SQL Server 版本,适用于超大型企业,能够满足最复杂的要求。 ②标准版(Standard Edition) 标准版分为支持32位和支持64位两个版本。这是适用于中小型企业的数据管理和分析平台。其包括电子商务、数据仓库和业务流解决方案所

数据库实验报告记录7

数据库实验报告记录7

————————————————————————————————作者:————————————————————————————————日期:

《数据库原理》实验报告 题目:实验七事务与并发控制学号姓名班级日期Xxxx Xx Xxx 2016.11.10 一. 实验内容、步骤以及结果 假设学校允许学生将银行卡和校园卡进行绑定,在 student 数据库中有如下的基本表,其中校园卡编号 cardid 即为学生的学号: icbc_card(studcardid,icbcid,balance) //校园卡 ID,工行卡 ID,银行卡余额 campus_card(studcardid,balance) //校园卡 ID,校园卡余额数据创建的代码:

1.编写一个事务处理(begin tran)实现如下的操作:某学号为20150032的学生要从银 行卡中转账200元到校园卡中,若中间出现故障则进行rollback。(15分) 修改后的结果: 2.针对本题的数据库和表,分别用具体的例子展现四种数据不一致问题:丢失修改、 读脏数据、不可重复读和幻读(删除和插入)。(40分,每种数据不一致10分) 丢失修改: --事务一: begin tran declare @balance decimal(10,2) select @balance=balance from campus_card where studcardid='20150033' waitfor delay'00:00:05' set @balance=@balance-10 update campus_card set balance=@balance where studcardid='20150033' commit tran go select balance from campus_card where studcardid='20150033'

《数据库原理与应用》实验报告书修改版(1)答案

《数据库原理与应用》 实验报告书 (2011—2012学年第二学期) 班级: 学号: 姓名: 教师:郑先容 医药信息工程学院·数据决策 2012年2月

目录 实验一利用ACCESS创建数据库及熟悉SQL Server开发环境 (2) 实验三数据库、表的创建 (6) 实验五连接查询和嵌套查询 (12) 实验七数据的插入、修改、删除 (18) 实验九SQL Server数据库的安全性控制 (21) 实验十一熟悉Power Designer数据库设计软件 (24) 实验十三Transact-SQL编程 (27) 实验十五存储过程的使用 (30) 第十章数据库的恢复技术作业 (33)

实验一利用ACCESS创建数据库及熟悉SQL Server开发环境 一、实验目的 1、熟知机房用机安全规则和实验报告的书写。 2、掌握SQL Server 2005的安装,卸载以及相关服务的启动、退出。 3、熟悉SQL Server Management Studio环境。 4、掌握创建服务器组合注册服务器。 5、初步了解数据库的概念; 6、初步了解SQL Server联机丛书的使用。 7、用ACCESS创建数据库,体会数据库的功能。 注意:每次实验的指导视频,上课所需要的软件、数据库还有ppt。都可以在ftp://10.81.40.222的“数 据决策”->“数据库”->“2011-2012(2)”文件夹下找到,以后每次实验相关的文件和数据库,老师上课的课 件,sql2005安装环境,都可以在这个ftp上寻找。 二、实验内容 1、上网搜索能够正常安装的SQL Server2005的软件。或者在ftp上下载,有条件的同学,课后可在个人电脑上安装SQL Server2005,建议XP操作系统安装个人版,Server操作系统安装企业版。SQL Server2005的安装说明见《SQL Server 2005精简版的安装》或上网搜索相应电子教程。安装过程请参看实验指导或者相关视频。 2、观看视频“数据库概念.swf”,了解数据库的相关概念。 3、参看实验指导或者视频“使用SQL Server Management Studio.swf”,通过实践初步了解使用SQL Server Management的使用。 4、观看视频“SQL Server联机丛书.swf”,了解如何通过系统本身来学习使用SQL Server。 请根据联机丛书查询如何“创建数据库”,查询内容包括创建数据库前的准备工作,创建数据库的命令,以及数据库文件的组成。请把你的结果写在下面。

数据库实验报告(7个实验完整附截图)

福建农林大学计算机与信息学院 实验报告 课程名称:数据库原理及应用 姓名: 系:计算机科学与技术 专业:计算机科学与技术 年级:2012 级 学号: 指导教师:陈长江 2014 年5月18 日

实验项目列表 序号实验项目名称成绩指导教师 1 实验一数据库的定义实验(验证性) 2 实验二数据库的建立和维护实验(验 证性) 3 实验三数据库的查询实验(验证性) 4 实验四数据库的视图操作实验(验证 性) 5 实验五触发器、存储过程操作实验 (综合性) 实验一:数据库的定义实验 一、实验目的: 1、理解MySQL Server 6.0 服务器的安装过程和方法; 2、要求学生熟练掌握和使用SQL、T-SQL、SQL Server Enterpriser Manager Server 创建数据库、表、索引和修改表结构,并学会使用SQL Server Query Analyzer,接收T-SQL 语句和进行结果分析。 二、实验环境: 硬件:PC机 软件:Windows操作系统、MySQL Server 6.0 和Navicat for MySQL 9.0

三、实验内容和原理: 1、安装MySQL以及相应的GUI工具 2、用SQL命令,建立学生-课程数据库基本表: 学生Student(学号Sno,姓名Sname,年龄Sage,性别Ssex,所在系Sdept); 课程Course(课程号Cno,课程名Cname,先行课Cpno,学分Ccredit); 选课SC(学号Sno,课程号Cno,成绩Grade); 要求: 1) 用SQL命令建库、建表和建立表间联系。 2) 选择合适的数据类型。 3) 定义必要的索引、列级约束和表级约束. 四、实验步骤: 1、运行Navicat for MySQL,然后进行数据库连接,进入到GUI界面; 2、利用图形界面建立基础表: student 表的信息: 字段名类型长度约束条件 Sno varchar9非空、主键 Sname varchar20 Ssex varchar2 Sage smallint 6 Sdept varchar20 course表的信息: 字段名类型长度约束条件 Cno varchar4非空、主键 Cname varchar40 Cpno varchar4与 course 表中 Cno 关联 Ccredit smallint 6

数据库实验七实验报告

一.实验目的 熟练掌握SQL Server中变量、数据类型和表达式的定义和使用,掌握Transact—SQL中常用系统函数的使用,掌握流程控制语句和结构化程序设计方法,掌握分行处理表中记录机制以及利用游标对数据进行查询、修改和删除的方法。 二.实验准备 1.物理准备:安装了SQL sever的计算机一台,连接服务器;2.实验指导书:《数据库技术与应用》蓝皮书; 3.理论准备:掌握以下基础知识: (1)T ransact—SQL中变量、数据类型和表达式的使用。 (2)T ransact—SQL中常用系统函数的使用。 (3)利用程序控制语句实现结构化程序设计。 (4)利用游标分行处理机制实现数据的定位、查询、修改和删除三.实验题目 (1)定义局部变量@max,@min接收学生表studinfo中的最大出生日期和最小出生日期的查询结果。 实验过程:编写Transact—SQL语句 declare @max char(30),@min char(30) select @max=max(出生日期) , @min=min(出生日期) from student_xuesheng select @max as 最大,@min as 最小 运行结果:

(2)在学生表studinfo中增加一个字段,利用系统函数与出生日期信息计算每个同学的年龄。 实验过程:编写Transact—SQL语句 分析:先增加年龄字段,再将函数运算之后的年龄添加进去 --alter table student_xuesheng --add 年龄 int --GO if exists(select 出生日期 from student_xuesheng where 出生日期 is not null) begin update student_xuesheng set 年龄=year(getdate())-year(出生日期) end 运行结果:

数据库实验报告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;

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

假设学校允许学生将银行卡和校园卡进行绑定,在student数据库中有如下的基本表,其中校园卡编号cardid即为学生的学号: icbc_card(studcardid,icbcid,balance) //校园卡ID,工行卡ID,银行卡余额 campus_card(studcardid,balance) //校园卡ID,校园卡余额创建数据库代码如下: use student create table campus_card ( studcardid Char(8), balance Decimal(10,2) ) create table icbc_card ( studcardid Char(8), icbcid Char(10), lance Decimal(10,2), ) 示例数据如下: insert into campus_card values('20150031', 30) insert into campus_card values('20150032', 50) insert into campus_card values('20150033', 70) insert into icbc_card values('20150031','2015003101', 1000) insert into icbc_card values('20150032','2015003201', 1000) insert into icbc_card values('20150033','2015003301', 1000) 针对以上数据库按照要求完成下列实验: 1.编写一个事务处理(begin tran)实现如下的操作:某学号为20150032的学生要从银 行卡中转账200元到校园卡中,若中间出现故障则进行rollback。(15分) 代码: use student begin transaction zhuanzhang go declare @x decimal(10, 2) select @x=balance from icbc_card where studcardid='20150032' set @x=@x-200 if(@x>=0) begin update icbc_card set balance=@x where studcardid='20150032'

数据库原理与应用实验6(二版)

实验六 T-SQL数据库单表查询 一、实验目的及要求 本实验主要目的是让学生通过本实验掌握基于一个表的SELECT语句的使用语法及使用规则,并能运用各种常用的查询方式及其形式。 ●掌握SELECT语句的基本语法结构。 ●掌握SQL语句中基于一个表的SELECT语句的使用规则和方式。 ●能正确设置各种常用查询条件。 ●掌握分组汇总查询的使用。 ●要求学生不但写出语句,而且要执行语句,得到结果。 二、实验原理及背景知识 1、了解SQL中SELECT语句的基本使用方式。详情参考第一篇第三章。 2、理解关系代数中投影运算和选择运算的概念及原理。 简单来讲,SELECT实现的是投影,where实现选择运算。 3、实验前需要了解所使用的数据库中表的结构。 4、实验前需要在stuManag数据库中输入模拟数据。 三、实验内容及步骤 Ⅰ:基本实验内容 (一)输入下面的查询语句,执行后验证实验结果 1、查询100165专业的学生的学号、姓名、性别和出生年月信息 SELECT sno,sname,ssex,sbirth FROM student WHERE mno=‘100165’ 2、查询职称不是教授的所有教师的全部信息 SELECT * FROM teacher WHERE trank< >‘教授’ 3、查询不姓陈的学生学号和姓名信息 SELECT sno,sname FROM student WHERE sname NOT LIKE ‘陈%’ 4、查询100165专业中1991年之前出生的学生的学号、姓名、性别及出生年月信息 SELECT sno,sname,ssex,sbirth FROM student WHERE (mno=‘100165’) AND (sbirth <‘1991/01/01’)

(完整版)数据库实验报告

数据库实验报告姓名学号

目录 一.实验标题:2 二.实验目的:2 三.实验内容:2 四.上机软件:3 五.实验步骤:3 (一)SQL Server 2016简介3(二)创建数据库 4 (三)创建数据库表 7(四)添加数据17 六.分析与讨论: 19

一.实验标题: 创建数据库和数据表 二.实验目的: 1.理解数据库、数据表、约束等相关概念; 2.掌握创建数据库的T-SQL命令; 3.掌握创建和修改数据表的T-SQL命令; 4.掌握创建数据表中约束的T-SQL命令和方法; 5.掌握向数据表中添加数据的T-SQL命令和方法三.实验内容: 1.打开“我的电脑”或“资源管理器”,在磁盘空间以自己的姓名或学号建立文件夹; 2.在SQL Server Management Studio中,使用create database命令建立“学生-选课”数据库,数据库文件存储在步骤1建立的文件夹下,数据库文件名称自由定义; 3.在建立的“学生-选课”数据库中建立学生、课程和选课三张表,其结构及约束条件如表所示,要求为属性选择合适的数据长度; 4.添加具体数据;

四.上机软件: SQL Server 2016 五.实验步骤: (一)SQL Server 2016简介 1.SQL Server 2016的界面 2.启动和退出SQL Server 2016 1)双击图标,即出现SQL Server2016的初始界 2)选择“文件”菜单中的“退出”命令,或单击控制按钮中的“×”即可 注意事项: 1.在退出SQL Server 2016之前,应先将已经打开的数据库进行保存, 2.如果没有执行保存命令,系统会自动出现保存提示框,根据需要选择相应的操作

数据库实验三报告

江西师范大学计算机信息工程学院学生实验报告专业___计算机科学与技术__ 姓名___燕悦__ 学号__1408091077_ 日期__ __

四.程序及运行结果(或实验数据记录及分析) 针对S_T数据库: 1)创建三个表:student course sc。程序: use S_T go /*创建Student表*/ create table student( Sno char(5) primary key not null check(Sno like '[0-9][0-9][0-9][0-9][0-9]'), Sname char(20) not null, Ssex char(2) not null check(Ssex in ('男','女')), Sage smallint not null check(Sage between 14 and 38), Sdept char(20) not null ); /*创建Course表*/ create table course( Cno char(4) not null primary key check(Cno like '[0-9][0-9][0-9][0-9]'), Cname char(40) not null, Cpno char(4), Ccredit smallint not null ); /*创建SC表*/ create table sc( Sno char(5) not null , Cno char(4) not null, Grade smallint check(Grade between 0 and 100), primary key(Sno,Cno)); 执行结果: 2)对course表进行修改。程序: /*修改course表,为Cpno列添加一个外键约束*/ alter table course add foreign key (Cpno) references course(Cno); 执行结果:

数据库实验4实验报告

淮海工学院计算机工程学院实验报告书 课程名:《数据库原理及应用》 题目:T-SQL高级应用 班级:软件132 学号:2013122907 姓名:孙莹莹 评语: 成绩:指导教师: 批阅时间:年月日

一.目的与要求 1.掌握复杂查询的使用方法; 2.掌握多表连接的方法; 3.掌握SELECT语句在多表查询中的应用。 4.掌握数据汇总、外连接查询的使用方法; 5.掌握事务定义的一般方法 二.实验内容 1.给出教材14-16的程序运行结果。 2.编写程序,查询“1033”班的最高分的学生的学号、姓名、班号、课程号和分数。 3.编写程序,创建一个新表,包含所有学生的姓名、课程名和分数,并以姓名排序。 4.编写程序,输出每个班最高分的课程名和分数。 5.在上次实验建立的factory数据库的基础上,完成如下各题: ●删除factory数据库上各个表之间建立的关系; ●显示各职工的工资记录和相应的工资小计。 ●按性别和部门名的所有组合方式列出相应的平均工资。 ●在worker表中使用以下语句插入一个职工记录:insert into worker values(20,’ 陈立’,‘女’,’55/03/08’,1,’75/10/10’,4),在depart表中使用以下语句 插入一个部门记录:insert into depart values(5,’设备处’)。再对worker和 depart表进行全外连接显示职工的职工号,姓名和部门名。然后删除这两个插入的记 录。 ●显示最高工资的职工的职工号、姓名、部门名、工资发放日期和工资。 ●显示最高工资的职工所在的部门名。 ●显示所有平均工资低于全部职工平均工资的职工的职工号和姓名。 ●先显示worker表中的职工人数,开始一个事务,插入一个职工记录,再显示worker 表中的职工人数,回滚该事务,最后显示worker表中的职工人数。 三.实验步骤 删除factory数据库上各个表之间建立的关系的操作步骤如下: ①启动SQL Server管理控制器。 ②在“对象资源管理器”中展开LCB-PC服务器节点。 ③展开“数据库”节点。 ④选中,将其展开。 ⑤展开“数据库关系图”节点。 ⑥选中dbo.Diagram_1,右击,在出现的快捷菜单中选择“修改”命令,如图5.1所示。 ⑦在数据库关系图中,选择表示要从关系图中删除的关系的连接线(对于两条连线均进行⑦~⑨的操作)。 ⑧右击关系线,从快捷菜单中选择“从数据库中删除关系”命令。 ⑨出现一个消息框,提示确认删除。单击“是”按钮。 ⑩在出现的对话框中单击“是”按钮保存所做的修改。 这样就将worker表和depart表以及worker表和salary表之间的关系删除了。

数据库原理实验

实验一通过SQL Server Management Studio创建及管理数据库 一、实验目的 (1)熟悉SQL Server Management Studio (2)掌握通过SQL Server Management Studio管理数据库的方法。 (3)掌握数据库及其物理文件的结构关系。 (4)掌握通过SQL Server Management Studio管理数据表的方法 二、实验内容 1、通过SQL Server Management Studio创建数据库 创建一个名称为学生管理信息Student_info数据库,创建数据库Student_info的具体参数如表1。 表B.1 数据库参数 2、查看、验证创建的数据库 方法1:执行sp_helpdb系统存储过程查看Student_info数据库的信息。 方法2:在企业管理器中查看 3、修改数据库的属性 通过SQL Server Management Studio查看数据库,将数据库Student_info数据文件的初始大小改为30MB,最大值改为500MB,数据增长改为5%,日志文件的初始大小改为20MB,最大值改为60MB,数据增长改为6%。 4、数据库的分离及附加 1)将Student_info数据库从数据库服务器分离

2)将Student_info数据库再次附加到服务器中 5、通过SQL Server Management Studio在Student_info数据库中创建表 Student_info数据库包含3张表:Student表、Course表及SC表,分别代表学生信息、课程信息及学生选课信息。3张表的结构及其约束见表2、表3、表4. 表 2 Student表结构和约束 表 3 Course表结构和约束 表 4 SC表结构和约束 6、通过SQL Server Management Studio管理表结构 (1)添加和删除列 a. 给Student表增加身高(以米单位)Stature列,类型为numeric(4,2),允许为空值,且身高值需小于3.0米。 b. 给Student表增加所在系Sdept列,字符型,长度2,不允许为空值。 c. 给Student表增加邮政篇码Postcode列,字符型,长度为6,可以为空,若不为空时,则要求其值只能出现数字,不能是其它字符。 d.删除Student表中身高Stature列。 (2)添加和删除约束 a.在Student表添加约束:入学时间必须在出生年月之后。 b.给SC表的成绩Grade列增加默认值约束,默认值为0.

数据库实验(实验七 数据查询)实验报告 答案

实验7 数据查询 【实验内容】 7.1 单表查询 1、指定列或全部列查询 1)查询S表中全体学生的详细记录。 use jxsk select*from S 2)查询所有学生的姓名及其出生年份。 use jxsk select SN,2012-AGE from S 2、按条件查询及模糊查询 1)查询考试成绩有不及格的学生的学号。 use jxsk selectdistinct SNO from SC where SCORE<60 2)查询年龄在20 — 23岁之间的学生的姓名、系名和年龄。

use jxsk select SN,DEPT,AGE from S where AGE>=20 and AGE<=30 3)查询姓李的学生的姓名、学号和性别。 use jxsk select SN,SNO,SEX from S where SN like'李%' 4)查询名字中第二个字为“明”字的男学生的姓名和系名。 use jxsk select SN,DEPT from S where SN like'_%明'and SEX='男' 3、对查询结果排序 1)查询信息系、计算机系学生的姓名、系名,结果按系名升序,按姓名降序排序。use jxsk select SN,DEPT from S where DEPT='信息'OR DEPT='计算机' orderby DEPT,SN DESC

2)查询所有有课程号C2成绩的学生的学号、课程号和成绩,并按成绩降序排序。use jxsk select SNO,CNO,SCORE from SC where CNO='C2'and SCORE isnotnull orderby SCORE DESC 4、使用聚集函数的查询 1)查询计算机系学生总人数。 use jxsk select COUNT(*) from S where DEPT='计算机 2)查询选修了微机原理课程的学生人数、平均成绩和最高成绩。

《数据库原理》实验备课教案

《数据库原理》实验备课笔记 赵震

目录 实验一Access数据库的基本操作 (3) 实验二SQL数据定义语言 (7) 实验三SQL数据查询 (9) 实验四SQL数据操纵 (11) 实验五视图的定义、查询与更新 (12) 实验六数据库的完整性与安全性 (14) 实验七数据库的并发控制 (16) 实验八简单应用系统开发 (19) 2

实验一Access数据库的基本操作 一、实验目的 通过该实验初步了解关系数据库的基本概念,学会QBE查询语言的使用。掌握Access数据库的建立以及各种查询的建立方法。了解Access数据库的其他功能。 二、实验仪器 PII以上个人计算机 三、实验原理 关系数据库系统是支持关系模型的数据库系统。关系模型由关系数据结构、关系操作集合和关系完整性元素三部分组成。 关系模型中数据的逻辑结构是一张二维表。关系模型中常用的关系操作包括:选择、投影、连接、并、交、差等查询操作,还包括插入、删除和修改等更新操作。 QBE是一种域关系演算语言,在Access数据库中可以通过建立查询实现QBE的操作。 四、实验内容与步骤 (一)实验内容 1.用Access建立一个学生选课数据库,数据库名为Student,其中包括下面3个表,Student表记录学生信息、Course表记录课程信息、SC表记录学生选课信息。要求每个表都建立主键,并输入表中的数据。 表1.1Student表数据 Sno Sname Ssex Sage Sdept 95001李勇男20CS 95002刘晨女19IS 95003王敏女18MA 95004张立男19IS 表1.2Course表数据 Cno Cname Cpno Ccredit 1数据库54 2数学2 3信息系统14 3

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