聪明文档网

聪明文档网

最新最全的文档下载
当前位置: 首页> 数据库实验指导书数据库系统概论(第四版)

数据库实验指导书数据库系统概论(第四版)

时间:2019-04-11 01:28:55    下载该word文档

实验一 熟悉Power Designer………………. 2



实验一 熟悉Power Designer

一、实验目的

1掌握安装并破解PD的方法。

2通过阅读和分析应用实例学生选课系统CDM”,了解和熟悉Power Designer CDM及其相关知识。

3.掌握运用Power Designer工具建立CDM的方法

4.初步掌握从Power Designer CDM生成相应的PDM的方法。

二、实验内容及实验步骤

1PD环境的介绍

Power Designer4种模型文件:

(1) 概念数据模型 (CDM)

CDM 表现数据库的全部逻辑的结构,与任何的软件或数据储藏结构无关。 一个概念模型经常包括在物理数据库中仍然不实现的数据对象。 它给运行计划或业务活动的数据一个正式表现方式。

2物理数据模型 (PDM) PDM 叙述数据库的物理实现。

藉由 PDM ,你考虑真实的物理实现的细节。你能修正 PDM 适合你的表现或物理约束。

3面向对象模型 (OOM)

一个OOM包含一系列包,类,接口 , 和他们的关系。 这些对象一起形成所有的 ( 或部份) 一个软件系统的逻辑的设计视图的类结构。 一个OOM本质上是软件系统的一个静态的概念模型。

4业务程序模型 (BPM)

BPM 描述业务的各种不同内在任务和内在流程,而且客户如何以这些任务和流程互相影响。BPM 是从业务合伙人的观点来看业务逻辑和规则的概念模型,使用一个图表描述 程序,流程,信息和合作协议之间的交互作用

2、创建CDM(以学生选课系统为例)

1)新建一个CDM,命名为CssCdm(css,Course SelectionSystem )

2)创建学生课程实体和选课联系,并命名

3)为各实体和联系创建属性

学生(学号,姓名,性别,年龄)

课程(课程号,课程名,学分)

选课(学号,课程号,成绩)

3)为各实体和联系创建属性

学生(学号,姓名,性别,年龄)

课程(课程号,课程名,学分)

选课(学号,课程号,成绩)

每一条属性的M\P\D 分别代表:

Mandatory(是否允许为空)

Primary Identifier(标识符,类似于数据库中的主键)

Displayed(是否显示在实体图表符号中)

Domain 相当于自定义数据类型

4)创建实体间的联系

学生教师之间为多对多(m:n)关系,

可将他们转化为两个一对多(1:m)关系

5)生成CDM

3、将CDM转化为PDM

实验二 安装SQL Server 2000

一、实验目的

SQL Server 2000Mircosoft公司推出的关系型网络数据库管理系统,是一个逐步成长起来的大型数据库管理系统。

本次实验了解SQL Server 2000的安装过程,熟悉SQL Server 2000软件环境。学会安装SQL Server 2000的安装。

二、实验内容

1.安装Microsoft的数据库服务软件SQL Server 2000

运行服务器目录SQL2000下的可执行文件autorun.exe,进行SQL Server 2000的安装。安装主界面如图1-1所示。

1-1

选择安装SQL Server 2000组件,出现组件安装界面,如图1-2所示。

1-2

选择安装数据库服务器,进入SQL Server 2000的安装向导,如图1-3所示。

1-3

点击“下一步”,到计算机名称对话框,如图1-4所示。

1-4

本地计算机是默认选项,本地计算机的名称就显示在上面,点击“下一步”,出现安装选择对话框,如图1-5所示。

1-5

选择“创建新的SQL Server实例,或安装客户端工具”,点击“下一步”,出现用户信息对话框,如图1-6所示。

1-6

输入姓名和公司名称后,点击“下一步”,出现软件许可协议,如图1-7所示。

1-7

点“是”按钮,出现安装定义对话框,如图1-8所示。

1-8

选择“服务器和客户端工具”,点击下一步,出现实例名对话框,如图1-9所示。

1-9

系统提供了“默认”复选框,点击下一步,出现安装类型选择框,如图1-10所示。

1-10

选择典型,点击“下一步”,出现服务帐户对话框,如图1-11所示。

1-11

接受系统的缺省值,点击“下一步”,出现身份验证模式窗口,如图1-12所示。

1-12

接受系统的缺省值,点击“下一步”,出现开始拷贝文件窗口,如图1-13所示。

1-13

点击“下一步”,开始将文件拷贝到选择的目录中,如图1-14所示。

1-14

文件拷贝完成后,出现安装结束界面,如图1-15所示。

1-15

点击“完成”按钮,完成SQL Server 2000的安装。

三、实验任务

1.在计算机上安装数据库软件SQL Server 2000

2.熟悉软件的使用,SQL Server 2000主菜单如图1-16所示:

1-16



实验三 启动SQL Server2000和建库、表

一、实验目的

SQL Server 2000的启动和管理工作由服务管理器和企业管理器来实现。

本次实验了解SQL Server 2000的启动,熟悉如何在SQL Server 2000图形环境下建立数据库和表。学会安装SQL Server 2000的启动和建库、表的操作。

二、实验内容

1.启动数据库服务软件SQL Server 2000

在程序菜单中选择Microsoft SQL Server,如图2-1所示:

2-1

再选中服务管理器,如图2-2所示:

2-2

点击服务管理器后,出现SQL Server服务管理器,如图2-3所示:

2-3

点击“开始/继续”按钮,启动SQL Server 2000数据库服务。

启动成功后,在时钟旁边出现一个符号,如图2-4所示。

2-4

2.在SQL Server 2000中建立数据库:

在程序菜单中选择Microsoft SQL Server,如图2-5所示:

2-5

再选中企业管理器,如图2-6所示:

2-6

点击企业管理器后,出现企业管理器的主界面,如图2-7所示:

2-7

点击左边树状控制栏的+/-号可以打开和关闭SQL Server组中的本地服务项目,在选中数据库服务项目后,单击鼠标右键,出现数据库的菜单,如图2-8所示:

2-8

点击新建数据库,出现新建数据库窗口,如图2-9所示:

2-9

输入数据库名称:Test,点击数据文件选项卡,如图2-10所示:

2-10

在数据文件中,你可以设定数据文件的名称,所在目录以及文件的大小等信息。

完成后点击事务日志选项卡,如图2-11所示:

2-11

事务日志中,你可以设定日志文件的名称,所在目录以及文件的大小等信息。

接受系统的缺省值,点击确定按钮,完成数据库的新建,如图2-12所示。

2-12

3.Test数据库上建立表:

点击数据库Test前面的+号,打开数据库的各种属性,如图2-13所示:

2-13

选中表的属性,单击鼠标右键,出现表的菜单,如图2-14所示:

2-14

点击新建表按钮,出现新建表窗口,如图2-15所示:

2-15

输入列名,数据类型,长度等信息,点击图标,出现选择表名窗口,如图2-16所示:

2-16

输入表名,点击确定按钮,将新建的表存盘。

三、实验任务

1.用数据库SQL Server 2000的服务管理器启动数据库服务;

2用数据库SQL Server 2000的企业管理器建立一个数据文件名为demodata、大小50M,日志文件名为demolog、大小25M的新数据库,该数据库名为Demo

3.在数据库Demo上,建立如下所示的表customer

字段名

类型

长度

含义

customid

varchar

17

顾客编号

name

varchar

10

姓名

sex

varchar

2

性别

age

int

4

年龄

xfg

dec

10,2

消费金额

address

varchar

50

地址

memo

varchar

100

备注



实验四 SQL Server2000查询分析器

一、实验目的

SQL Server 2000的查询分析器是一种特别用于交互式执行SQL语句和脚本的极好的工具。

本次实验了解SQL Server 2000查询分析器的启动,熟悉如何在SQL Server 2000查询分析器中建表、插入记录、查询记录。学会SQL Server 2000查询分析器中建表、插入记录、查询记录。

二、实验内容

1.启动数据库服务软件SQL Server 2000的查询分析器:

在程序菜单中选择Microsoft SQL Server,如图3-1所示:

3-1

再选中查询分析器,如图3-2所示:

3-2

点击查询分析器后,出现连接到SQL Server窗口,如图3-3所示:

3-3

点击按钮,出现选择服务器窗口,如图3-4所示。

3-4

选择本地服务(Local),点击确定按钮。

再点击连接到SQL Server窗口的确定按钮。出现SQL查询分析器主界面,如图3-5所示。

3-5

选择查询菜单,点击更改数据库,如图3-6所示。

3-6

出现选择数据库窗口,如图3-7所示。

3-7

选择在上次实验中建立的数据库Test,点确定按钮。

2.在查询分析器中建立表:

在查询分析器的查询窗口中输入SQL语句,如图3-8所示。

3-8

点击按钮,执行该SQL语句,在查询窗口下部出现一个输出窗口,如图3-9所示。

3-9

提示命令成功完成,或者报告出错信息。

3.查询分析器中向表添加数据:

在查询分析器的查询窗口中输入SQL语句,如图3-10所示。

3-10

点击按钮,执行该SQL语句,在查询窗口下部出现一个输出窗口,如图3-11所示。

3-11

1. 从表中查询数据:

在查询分析器的查询窗口中输入SQL语句,如图3-12所示。

3-12

点击按钮,执行该SQL语句,在查询窗口下部出现一个输出窗口,如图3-13所示。

3-13

三、实验任务

1.打开数据库SQL Server 2000的查询分析器,用SQL语言建表student,表结构如下图所示:

字段名

类型

长度

含义

id

varchar

17

学生编号

name

varchar

10

姓名

sex

varchar

2

性别

age

integer

年龄

score

numeric

6,2

总成绩

2.用SQL语言向表student插入如下6条记录:

A0001

赵一

20

580.00

B0002

钱二

19

540.00

C0003

孙三

21

555.50

D0004

李四

22

48000

E0005

周五

20

495.50

F0006

吴六

19

435.00

3. 练习查询语句,查找年龄大于等于20岁,成绩低于500分的记录。



实验五 SQL语言的DDL

一、实验目的

SQL(Structured Query Language)语言是关系数据库的标准语言。是一种介于关系代数与关系演算之间的结构化查询语言,其功能并不仅仅是查询,SQL语言是一个通用的、功能极强的关系数据库语言。

从本次实验开始,我们将详细的学习SQLDDL(数据定义语言)DML(数据操纵语言)DCL(数据控制语言)

本次实验了解DDL语言的CREATEDROPALTER对表、索引、视图的操作,学会SQL Server 2000查询分析器中用DDL语言进行对表、索引、视图的增加、删除和改动

二、实验内容

1. 启动数据库服务软件SQL Server 2000的查询分析器,用如下语句对表进行操作,详细的语法格式参看课本相应章节:

Create Table 建表

Drop Table 删除表

Alter Table 更改表

2. 用如下语句对视图进行操作,详细的语法格式参看课本相应章节:

Create View 建视图

Drop View 删除视图

3. 如下语句对索引进行操作,详细的语法格式参看课本相应章节:

Create Index 建立索引

Drop Index 删除索引

三、实验任务

1. 打开数据库SQL Server 2000的查询分析器,用Create Table建表aa,表结构如下所示:

字段名

类型

长度

含义

Aa1

Varchar

20

字段1

Aa2

Int

字段2

Aa3

Dec

102

字段3

2Create Table建表bb,表结构如下所示:

字段名

类型

长度

含义

Bb1

Varchar

30

字段1

Bb2

Int

字段2

Bb3

Dec

62

字段3

3.用Drop Table删除表aa

4.用Alter Table修改表bb,添加一个字段Bb4,类型Varchar,长度20

5.用Create View对表BbBb1Bb4建立一个视图Viewbb,字段名为Viewbb1Viewbb2

6Drop View删除视图Viewbb

7.用Create Index对表BbBb3字段建立一个升序索引,索引名Indexbb

8.用Drop Index删除索引Indexbb

9.将以上的SQL语言存盘,以备老师检查。



实验六 SQL语言的DML初步

一、实验目的

SQL的数据操纵功能通过DML(数据库操作语言)实现。DML包括数据查询和数据更新两种数据操作语句。其中,数据查询指对数据库中的数据查询、统计、分组、排序等操作;数据更新指数据的插入、删除和修改等数据维护操作。

本次实验了解DML语言的INSERTUPDATEDELETE对数据的操作,学会SQL Server 2000查询分析器中用DML语言对表中的数据进行插入、删除和修改

二、实验内容

1. 启动数据库服务软件SQL Server 2000的查询分析器,用INSERT语句对表进行插入操作,语法格式如下:

Insert Into <表名> [(<属性列1>[,<属性列2>])]

Values (<常量1>[,<常量2>])

2. UPDATE语句对表中已有的记录进行修改,语法格式如下:

Update <表名> Set <列名><表达式>[,<列名>

<表达式>][,n] [Where <条件>]

3. DELETE语句对表中已有的记录进行删除,语法格式如下:

Delete From <表名> [Where <条件>]

三、实验任务

1. 打开数据库SQL Server 2000的查询分析器,用Create Table建表cc,表结构如下所示:

字段名

类型

长度

含义

Cc1

Varchar

20

字段1

Cc2

Int

字段2

Cc3

Dec

102

字段3

Cc4

Varchar

60

字段4

2. INSERT语句对表cc插入6条记录

Cc1

Cc2

Cc3

Cc4

赵一

20

580.00

重邮宿舍12-3-5

钱二

19

540.00

南福苑5-2-9

孙三

21

555.50

学生新区21-5-15

李四

22

48000

重邮宿舍8-2-22

周五

20

495.50

学生新区23-4-8

吴六

19

435.00

南福苑2-5-12

3. UPDATE语句,将表cccc2小于等于20的记录,把cc3字段加5

4. DELETE语句将表cccc2大于等于20cc3大于等于500的记录删除。

5. 将以上的SQL语言存盘,以备老师检查。



实验七 DML数据查询

一、实验目的

DML的数据查询指对数据库中的数据查询、统计、分组、排序等操作。查询语句可以分为简单查询、连接查询、嵌套查询和组合查询。

本次实验了解DML语言的SELECT语句对数据的查询,学会SQL Server 2000查询分析器中用DML语言对表中的数据进行简单查询、连接查询、嵌套查询和组合查询

二、实验内容

1.启动数据库服务软件SQL Server 2000的查询分析器,用SELECT语句对表进行简单查询操作,整个查询过程只涉及到一个表,是最基本的查询语句。

语法格式如下:

Select <目标列组> From <数据源> [Where <元组选择条件>]

[Group by <分组列> [Having <组选择条件>]]

[Order by <排序列1> <排序要求> [, n]]

2.用SELECT语句对表进行连接查询操作,连接查询涉及被连接和连接两个表,所以数据源一般为多个表。用来连接两个表的条件称为连接条件,一般格式为:

[<表名1>.]<列名1> <比较运算符> [<表名2>.]<列名2>

其中比较运算符主要有:=><>=<=!=

3.用SELECT语句对表进行嵌套查询操作,一个SelectFromWhere语句称为一个查询块,将一个查询块嵌套在另一个查询块的Where子句或Having短语的条件中的查询,就是嵌套查询。主要有使用In操作符、使用比较运算符的嵌套查询方式。

4.用SELECT语句对表进行组合查询操作,将SELECT语句的查询结果集再进行集合运算就构成了SQL的组合查询。组合查询操作符有Union(并操作)Intersect(交操作)Minus(差操作)

三、实验任务

1.打开数据库SQL Server 2000的查询分析器,用Create Table建表Student,表结构如下所示:

字段名

类型

长度

含义

ID

Varchar

20

学号

Name

Varchar

10

姓名

Age

Int

年龄

Department

Varchar

30

所在系

2Create Table建表Course,表结构如下所示:

字段名

类型

长度

含义

CourseID

Varchar

15

课程号

CourseName

Varchar

30

课程名

CourseBefore

Varchar

15

先行课

3Create Table建表Choose,表结构如下所示:

字段名

类型

长度

含义

ID

Varchar

20

学号

CourseID

Varchar

30

课程号

Score

Dec

5,2

成绩

4.用INSERT语句向表Student中插入3条记录:

ID

Name

Age

Department

00001

张三

20

计算机系

00002

李四

19

计算机系

00003

王五

21

计算机系

5INSERT语句向表Course中插入3条记录:

CourseID

CourseName

CourseBefore

C1

计算机引论

C2

PASCAL语言

C1

C3

数据结构

C2

6.用INSERT语句向表Choose中插入7条记录:

ID

CourseID

Score

00001

C1

95

00001

C2

80

00001

C3

84

00002

C1

80

00002

C2

85

00003

C1

78

00003

C3

70

7.用SELECT语句求计算机系学生的学号和姓名。

8.用SELECT语句求学生的学号、姓名、选的课程名及成绩。

9.用SELECT语句求C1课程的成绩低于张三的学生的学号和成绩。

10.用SELECT语句求选了C2课程并且也选了C3课程的学生的学号。

11.用select 语句求计算机系年龄在20岁以下的学生的详细信息.

12. 查询所有学生的详细信息,结果按学号降序排列。

13.查询每个系学生的人数。

14.查询每个系学生的平均年龄。

15.查询计算机系学生的最大年龄和最小年龄。

16,查询每个学生的平均分。

17.查询每个学生的选课门数。

18.查询每门课程的选课人数。

19,查询选修课程c1并且成绩在80分以上的学生的学号。

20.查询所有选修了才c2课程的学生的学号。

21.查询所有选了课的学生的学号。

22.查询选修人数大于2的课程号。

23.查询选修人数大于2并且平均成绩大于80分的课程



实验八 SQL语言综合练习

一、实验目的

SQL语言是数据库语言领域中的主流语言,对SQL语言的掌握程度直接关系到数据库学习的好坏。

本次实验通过一个SQL语言的综合练习,对前面的学习的内容进行复习,并加以巩固,希望大家对SQL语言有一个较好的掌握。

二、实验内容

1. 启动数据库服务软件SQL Server 2000的查询分析器,用Create Table建表;

2. Insert Into向表中插入记录;

3. Create Index在表上建立索引;

4. Create View建立视图;

5. SELECT语句进行各种查询操作。

三、实验任务

1.打开数据库SQL Server 2000的查询分析器,用Create Table建表Exam,表结构如下图所示:

字段名

类型

长度

含义

Id

varchar

17

学生编号

Name

varchar

10

姓名

Sex

varchar

2

性别

Age

integer

年龄

score

numeric

6,2

总成绩

address

varchar

50

地址

Memo

varchar

100

备注

2Insert Into语句向Exam表中添加6条记录,记录内容如下图所示:

A0001

赵一

20

580.00

重邮宿舍12-3-5

学习委员

B0002

钱二

19

540.00

南福苑5-2-9

班长

C0003

孙三

21

555.50

学生新区21-5-15

优秀共青团员

D0004

李四

22

48000

重邮宿舍8-2-22

暂无相关信息

E0005

周五

20

495.50

学生新区23-4-8

暂无相关信息

F0006

吴六

19

435.00

南福苑2-5-12

暂无相关信息

1. 对表ExamScore字段建立一个名为IndexScore的升序索引。

4.建立视图ViewExam,字段ViewExam1ViewExam2分别对应表ExamNameAddress字段。

5.某电信局计费部门涉及如下表

三个表的字段含义如下:

Jm:

Jmbm

局名编码

Jmhz

局名汉字说明

Jmbz

局名标志

Zjm表:

Zjmbm

子局名编码

Zjmhz

子局名汉字说明

Jmbm

局名编码

Zjmbz

子局名标志

Dhshow表:(其它字段与本次测验无关,未给出相关含义)

Dhh

电话号码

Sl1

长话费

Sl3

市话费

Sl39

地区编码

Sl40

子局名编码

表间关联:Jm表中的jmbmzjm表中的jmbm是相等的;

Zjm表中的zjmbmdhshow表中的sl40是相等的。

表说明:dhshow表中的sl1sl3字段的计费单位是币人民分。

请插入适当数据,然后完成下列查询

6. SELECT语句,求某一地区长话消费平均是多少人民币。

7. SELECT语句,求某一地区市话消费总额大于10人民币并且长话消费不为零的电话号码。

8. SELECT语句,查询每一电话局各包含哪些子局?

9. SELECT语句,查询每一子局的长话费总额?

10. SELECT语句,查询每一电话局的长话费总额?

实验九 数据库设计

一、学时

4学时

二、实验类型

综合、设计

三、实验目的

学习使用数据库设计工具进行数据库的设计,并熟悉数据库的设计的基本方法和步骤,搞清数据库设计各阶段的任务

四、实验准备

1.熟悉数据库设计工具的设计环境;

2.复习SQL语言命令;

3.复习E-R图的绘制;

4.复习数据库设计的方法、步骤

六、实验方法及步骤

1. 对一小型数据库应用系统进行需求分析;

2. 绘制E-R图;

3. E-R模型向数据模型转换;

4. 创建数据库,定义基本表

七、实验内容

系统数据库的设计;

实验十 嵌入式SQL的使用

实验目的

1. 熟悉嵌入式SQL编程

2. 巩固SQL的知识

实验平台

1. OS

WindowsXP

2. DBMS

SQLServer2000

3. Compiler

Visual C++ 6.0

预备知识

1)嵌入式SQL编程:

嵌入式SQLSQL语句和C/C++代码组成。其中SQL语句由预处理器翻译成CC++的源代码。对预处理后的源代码进行编译、连接生成可执行程序后方可运行。

SQL预处理器

SQLServer的预处理程序是nsqlprep.exe。其常用的语法格式如下:

nsqlprep 程序文档名

nsqlprep详细的语法格式以及参数意义,请看联机帮助。

经查阅联机帮助,nsqlprep的语法格式如下:

nsqlprep program_file_name [/SQLACCESS | /NOSQLACCESS]

[/FLAGGER {ENTRY | NONE}] [/DB [server_name.]database_name

/PASS {login[.password] | $INTEGRATED}] [/BIND file_name]

[/MSG file_name] [/NOLOGO] [/PLAN name] [/NOLINES]

[/user_defined_option]

要求程序文档名的后缀为.sqc,可以省略。

预编译后得到的文档,与程序文档同名,后缀为.c;放在与程序文档名同一个路径下

nsqlprep.exeSQLServer的安装目录的 MSSQL\Binn下。

在本机中SQLServer的安装目录是C:\Program Files\Microsoft SQL Server nsqlprep.exeC:\Program Files\Microsoft SQL Server\MSSQL\Binn

连接方式

经预处理后的c文件就可以用c的编译器进行编译连接了。

使用Visual C++ 6.0进行编译连接,连接方式是动态连接,用到动态链接库SQLakw32.dllsqlaiw32.dll;此两文件已经随同binn.rar的其他内容,被拷贝到C:\Program Files\Microsoft SQL Server\MSSQL\Binn下;但仍然需要把该路径加到系统的路径变量中,以使得程序运行时能找到这两个文件。

方法1:把该两文件拷贝到操作系统目录下的子目录system32

方法2:把C:\Program Files\Microsoft SQL Server\MSSQL\Binn加到系统环境变量path中。“我的电脑”->“属性”->“高级”->“环境变量”->path,编辑”,如下图所示:

在变量值中加入该路径值;注意,路径间用分号;分开。

2)通过ODBC访问数据库:

配置ODBC,为SQL Server添加数据源。如下图所示:

初始化环境:

1. SQL Server2000为其嵌入式SQL提供了一些特殊的接口;默认的安装方式(典型安装)并没有安装这些接口;因此,需要把devtools.rar解压到SQLServer的系统目录下(注意,不是安装目录);本机是把操作系统安装在C盘,则SQLServer的系统目录则是C:\Program Files\Microsoft SQL Server

2. 初始化SQL Server的预编译环境。

初始化Visual C++ 6.0 编译器环境,运行文件:\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT

这个过程要在DOS下运行才有效,即找vcvars32.bat的路径,在DOS下运行。

具体步骤如下:

初始化SQLServer的预编译环境,运行文件:\devtools\samples\esqlc\setenv.bat

运行方式与vcvars32.bat相同,结果如下:

3. 初始化Visual C++ 6.0环境。

Tools->options->directories->Include

Files: C:\Program Files\Microsoft SQL Server\devtools\include

Tools->options->directories->Lib

Files:C:\Program Files\Microsoft SQL Server\devtools\x86lib

注意:这些路径需要设为第一项。如下图所示:

Project->Settings->Link->Object/Library Modules,添加库文件:

SQLakw32.libCaw32.lib

注意,两个文件之间用空格分开。

实验活动

1. 阅读和分析程序esql.sqc,解释程序的主要内容和主要数据结构。

数据结构:

主要为在数据库中存储的表,及针对表进行的查找。

2. 对程序esql.sqc作适当的修改,使之可以在本地系统上可以运行。进行预处理、编译、连接(lib连接),查看运行结果。

1)修改:

只需要对连接的服务器及数据库进行修改即可:

EXEC SQL CONNECT TO SKY.pubs USER abc.abc;

2)进行预处理:

esql.sqc文件放在C:\Program Files\Microsoft SQL Server\MSSQL\Binn目录下,运行cmd,进入C:\Program Files\Microsoft SQL Server\MSSQL\Binn目录,用nsqlprep esql.sqc的方式运行该文件,可以在C:\Program Files\Microsoft SQL Server\MSSQL\Binn中找到预编译后生成的.c文件。

编写程序,使用嵌入式SQL实现如下的功能:

1. 编写程序,创建下列关系表,并插入数据。

create table provider (

SNO char(5) primary key,

SNAME char(10) not null,

STATUS int,

CITY char(10)

);

insert into provider values('S1','精益','20','天津');

insert into provider values('S2','胜锡','10','北京');

insert into provider values('S3','东方红','30','天津');

insert into provider values('S4','丰泰盛','20','天津');

insert into provider values('S5','为民','30','上海');

insert into provider values('S6','通天','25',null)

说明:以上两个步骤在两种方法中都是在同一个程序中实现,关键部分用黄色标出,exp为在企业管理器中新建的数据库。

源程序如下:

A)用嵌入式SQL实现

#include

#include

EXEC SQL INCLUDE sqlca;

int main()

{

EXEC SQL BEGIN DECLARE SECTION;

//主变量

char sno[5];

char sname[10];

int status;

char city[10];

short cityInd;//指示变量

EXEC SQL END DECLARE SECTION;

printf("This is my Embedded SQL for C application\n");

EXEC SQL CONNECT TO SKY.exp USER sa.sa;//连接到数据库

if (SQLCODE == 0)

{

printf("Connection to SQL Server established\n");

}

else

{

// 连接DBMS错误

printf("ERROR: Connection to SQL Server failed\n");

return (1);

}

//下面为程序的主体部分

EXEC SQL create table provider (

sno char(5) primary key,

sname char(10) not null,

status int,

city char(10)

);

EXEC SQL insert into provider values('S1','精益','20','天津');

EXEC SQL insert into provider values('S2','胜锡','10','北京');

EXEC SQL insert into provider values('S3','东方红','30','天津');

EXEC SQL insert into provider values('S4','丰泰盛','20','天津');

EXEC SQL insert into provider values('S5','为民','30','上海');

EXEC SQL insert into provider values('S6','通天','25',null);

EXEC SQL WHENEVER SQLERROR GOTO error;//错误处理

EXEC SQL WHENEVER NOT FOUND GOTO done;

EXEC SQL DECLARE providerCursor CURSOR FOR

SELECT sname, city

FROM provider;

EXEC SQL OPEN providerCursor ;

for ( ; ; ) {

/* Fetch next row of the result table */

EXEC SQL FETCH providerCursor INTO :sname,:city:cityInd;

/* display data */

printf ("Sname:%s ",sname);

if ( cityInd< 0)//通过设置指示变量,并判断指示变量的值<0来确认和输出null

printf ("City:NULL\n");

else

printf ("City:%s\n",city);

}

error:

printf ("SQL error %d\n",sqlca->sqlcode);//若照书上写sqlca.sqlcode编译报语法错

done:

/* Close the cursor before completing*/

EXEC SQL WHENEVER SQLERROR continue;

EXEC SQL CLOSE providerCursor;

EXEC SQL COMMIT WORK RELEASE;

//断开连接

EXEC SQL DISCONNECT ALL;

return 0;

}

  • 29.8

    ¥45 每天只需1.0元
    1个月 推荐
  • 9.9

    ¥15
    1天
  • 59.8

    ¥90
    3个月

选择支付方式

  • 微信付款
郑重提醒:支付后,系统自动为您完成注册

请使用微信扫码支付(元)

订单号:
支付后,系统自动为您完成注册
遇到问题请联系 在线客服

常用手机号:
用于找回密码
图片验证码:
看不清?点击更换
短信验证码:
新密码:
 
绑定后可用手机号登录
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系 在线客服