2022年广东省梅州市全国计算机等级考试数据库技术真题(含答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2022年广东省梅州市全国计算机等级考试数据库技术真题(含答案) 学校:________ 班级:________ 姓名:________ 考号:________
一、1.选择题(10题)
1. 在一棵树中,哪一个结点没有前驱结点?
A.分支结点
B.叶结点
C.树根结点
D.空结点
2. 下面列出的关于“视图(View)”的条目中,不正确的是( )。
A.视图可以建立在一个或多个基本表上
B.视图可以建立在一个或多个视图上
C.使用视图可以简化查询语句的编写
D.使用视图可以加快查询语句的执行速度
3. 某二叉树结点的前序序列为F,C,A,D,B,E,G,H,P,对称序序列为A,C,B,D,F,E,H,G,P,则该二叉树对应的后序序列为
A.A,B,D,C,H,P,F,E,G
B.A,B,D,C,H,P,G,E,F
C.A,B,H,D,C,P,G,E,F
D.A,D,C,H,B,P,G,E,F
4. 以下哪一条不是客户机/服务器结构的优点?
A.系统的联机事务处理能力大大提高
B.系统数据的安全性能增强
C.提高资源利用率,提高系统的应用开发生产率
D.实现起来更加容易
5. Internet的主要组成成分是
A.双绞线、同轴电缆、光纤电缆与无线通信信道
B.通信线路、路由器、主机和信息资源
C.局域网、广域网、校园网和主干网
D.局域网、广域网和城域网
6. 要与Internet上的计算机进行通信必须使用______ 来建立连接。
A.建立主页
B.指定一个IP地址
C.使用WWW服务
D.发送电子邮件
7.系统抖动是指()。
A.A.使用机器时,屏幕闪烁的现象
B.系统盘有问题,致使系统不稳定的现象。
C.被调出的页面又立刻被调入所形成的频繁调入调出现象
D.由于内存分配不当,偶然造成内存不够的现象
8. 在SQL中,内模式对应于"存储文件",模式对应于哪一部分?
A.视图
B.基本表
C.关系数据库
D.数据查询
9. 引人多道程序的目的是
A.提高实时响应速度
B.增强系统交互能力
C.为了充分利用主存储器
D.充分利用CPU,减少删的等待时间
10.数据库系统的核心是__。
( )
A.编译系统
B.数据库
C.操作系统
D.数据库管理系统
二、填空题(10题)
11. 一个SQL语句原则上可产生或处理一组记录,而主语言一次只能处理一个记录,为此必须协调两种处理方式,这是通过使用______机制来解决的。
12.SYBASE数据库系统中提供的CASE工具是【】
13.常用的身份认证方法有:___________、持证认证和生物识别。
14.SQL Server 2008的系统数据库中主要数据文件的扩展名是(.mdf)每个数据库只有()个主要数据文件,大小不得小于()MB。
15. Armstrong公理系统的三条推理规则是自反律、传递律和______。
16.客户程序访问DBMS的常用标准一般有两个:一个称为开放数据库
互连【】标准;另一个是面向Java程序语言的相关标准,称为【】。
17.数据包过滤技术是在___________对数据包进行选择。
通过检查数据流中每个数据包的源地址、目的地址、所用的端口号、协议状态等因素,或它们的组合来确定是否允许该数据包通过,它通常安装在路由器上。
18. 在SQL语言中,若要删除一个表,应使用的语句是______TABLE。
19.IP电话系统有4个基本组件:终端设备、___________、多点控制单元和网守。
20. 计算机系统中发生某个事件时,CPU暂停正在执行的程序,转去执行相应的程序,执行完后再返回原先程序断点继续执行的过程,称为______。
三、单选题(10题)
21.已经获得除CPU以外的所有所需资源的进程处于( )状态。
A.运行状态
B.就绪状态
C.自由状态
D.阻塞状态
22.在建立表结构时定义关系完整性规则( )
A.使DBS能够自动维护数据完整性约束条件
B.还需要编程实现数据完整性约束条件
C.没有必要定义
D.将使系统操作复杂
23.ODBC是( )
A.客户机与服务器之间的接口标准
B.数据库查询语言标准
C.数据库应用开发工具标准
D.数据安全性标准
24. 下列哪一条不属于数据库设计的任务?
A.进行需求分析
B.设计数据库管理系统
C.设计数据库逻辑结构
D.设计数据库物理结构
25.下列不属于创建分区表步骤的是__________。
A.创建分区依据列
B.创建分区函数
C.创建分区方案
D.使用分区方案创建表
26.下列SQL Server提供的系统角色中,具有数据库服务器上全部操作权限的角色是__________。
A.db_owner
B.dbcreator
C.db_datawriter
D.sysadmin
27.一个数据表10000行数据,每行3500字节,计算表需要空间()
A.20MB
B.40MB
C.60MB
D.80MB
28.下列不是TCP/IP参考模型中的应用层协议()。
A.A.电子邮件协议SMTP
B.网络文件系统NFS
C.简单网络管理协议SNMP
D.文件传输协议FTP
29. 设散列函数为H(k)=k mod 7,现欲将关键码23,14,9,6,30,12,18依次散列于地址0~6中,用线性探测法解决冲突,则在地址空间0~
6中,得到的散列表是
A.14,6,23,9,18,30,12
B.14,18,23,9,30,12,6
C.14,12,9,23,30,18,6
D.6,23,30,14,18,12,9
30.消息认证是指接收者能够检验收到消息真实性的方法,下列不属于消息认证的检验内容?
A.A.证实消息的源和宿
B.消息的内容是否保持其完整性
C.消息的序号和时间性
D.消息是否被窃取
四、C语言程序设计题(10题)
31. 已知数据文件in.dat中存有200个四位数,并已调用读函数readDat 把这些数存入数组a中,请考生编制一函数jsVal,其功能是:把一个四位数的千位数位置上的值减去百位数位置上的值再减去十位数位置上的值最后减去个位数位置上的值,如果得出的值大于等于零且原四位数是奇数,则统计出满足此条件的个数cnt,并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat把结果cnt以及数组b 中符合条件的四位数输出到0ut.dat文件中。
注意:部分源程序存在test.C文件中。
32. 已知在in.dat中存有若干个(个数<200)1四位十进制数字组成的正整数,函数ReadDat读取这若干个正整数并存入数组XX中。
请编制函数CalValue0,其功能要求:
1.求出该文件中共有多少个正整数totNum;
2.求这些正整数右移1位二进制位后,产生的新数是偶数的数的个数
totCnt,以及满足此条件的这些正整数(右移前的值)的算术平均值totPjz。
最后main函数调用函数WriteDat把所求的结果输出到out.dat文件中。
注意:部分源程序存放在test.C文件中。
请勿改动数据文件in.dat中的任何数据,主函数main、读函数ReadDat 和输出函数WriteDat0的内容。
33. 已知数据文件in.dat中存有200个四位数,并已调用读函数readDat 把这些数存入数组a中,请考生编制一函数jsVal,其功能是:把个位数字和千位数字重新组成一个新的含有两位数字的数(新数的十位数字是原四位数的个位数字,新数的个位数字是原四位数的千位数字),以及把百位数字和十位数字组成另~个新的含有两位数字的数(新数的十位数字是原四位数的百位数字,新数的个位数字是原四位数的十位数字),如果两个新组成的数均是偶数并且至少有一个数能被9整除,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。
最后main函数调用写函数writeDat把结果cnt以及数组b中符合条件的四位数输出到0ut.dat文件中。
34. 已知数据文件in.dat中存有300个四位数,并已调用读函数readDat 把这些数存入数组a中,请编制一函数jsValue,其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及所有不满足此条件的
四位数平均值pjz2。
最后main函数调用写函数writeDat把结果cnt,pjz1,pjz2输出到out.dat文件。
35. 已知数据文件in.dat中存有200个四位数,并已调用读函数readDat 把这些数存入数组a中,请考生编制一函数jsVal,其功能是:把千位数字和个位数字重新组成一个新的含有两位数字的数(新数的十位数字是原四位数的千位数字,新数的个位数字是原四位数的个位数字),以及把
百位数字和十位数字组成另一个新的含有两位数字的数(新数的十位数字是原四位数的百位数字,新数的个位数字是原四位数的十位数字),如果两个新组成的数均是奇数并且至少有一个数能被5整除,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。
最后main函数调用写函数writeDat把结果cnt以及数组b中符合条件的四位数输出到0ut.dat文件中。
36. 函数ReadDat实现从文件in.dat中读取一篇英文文章,存入到无符号字符串数组XX中;请编制函数encryptChar,按给定的替代关系对数组XX中的所有字符进行替代,其替代值仍存入数组)xx的对应的位置上,最后调用函数wmeDat把结果xX输出到文件out.dat中。
替代关系:f(p)=p*11 mod256,mod为取余运算,P是数组xx中某一个字符的ASCII值,f(p)是计算后无符号的整型值(注意:中间变量定义成整型变量),如果计算后f(p)值小于等于32或f(p)对应的字符是小写字母,则该字符不变,否则用f(p)替代所对应的字符。
注意:部分源程序存放在test.c文件中,原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格,并也按此替代关系进行处理。
请勿改动住数main、读数据函数ReadDat和输出数据函数WriteDat的内容。
37. 已知在in.dat中存有若干个(个数<200)四位数字的正整数,函数ReadDat读取这若干个正整数并存入数组XX中。
请编制函数CalValue,其功能要求:
1.求出该文件中共有多少个正整数totNum;
2.求这些正整数右移1位二进制位后,产生的新数是奇数的数的个数totCnt,以及满足此条件的这些正整数(右移前的值)的算术平均值totPjz。
最后main函数调用函数WriteDat把所求的结果输出到文件out.dat 中。
注意:部分源程序存放在test.c文件中。
请勿改动数据文件in.dat中的任何数据,主函数main、读函数ReadDat 和输出函数WriteDat的内容。
38.程序test.c的功能是:将大于整数m且紧靠m的k个素数存入数组XX。
请考生编写函数num(intm,intk,intxx[])实现程序的要求,最后调用函数readwriteDAT0把结果输出到0ut.dat文件中。
例如,若输入17,5,则应输出:19,23,29,31,37。
39. 将文件in.dat中的200个整数读至数组XX中。
请编制jsValue函数,要求:求出数组XX中的数值为奇数的个数cnt1和数值为偶数的个
数cnt2以及数组XX下标为奇数的元素值的算术平均值pj。
结果cnt1,cnt2,pj输出到out.dat中。
注意:部分源程序存在test.c 文件中。
请勿改动数据文件in.dat中的任何数据、主函数main、读函数read_dat和输出函数writeDat的内容。
40. 已知数据文件in.dat中存有200个四位数,并已调用读函数readDat 把这些数存入数组a中,请考生编制一函数isVal,其功能是:把千位数字和十位数字重新组成一个新的含有两位数字的数ab(新数的十位数字是原四位数的千位数字,新数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的含有两位数字的数cd(新数的十位数字是原四位数的个位数字,新数的个位数字是原四位数的百位数字),如果新组成的两个位数ab>cd,ab必须是偶数且能被5整除,cd必须是奇数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。
最后main函数调用写函数writeDat把结果cnt以及数组b中符合条件的四位数输出到0ut.dat文件中。
五、设计与应用题(2题)
41.设有商品表(商品号,商品名,单价)和销售表(销售单据号,商品号,销售时间,销售数量,销售单价)。
其中,商品号代表一类商品,商
品号、单价、销售数量和销售单价均为整型。
请编写查询某年某商品的销售总毛利的存储过程,毛利=销售数量x(销售单价一单价)。
要求商品号和年份为输入参数,总毛利用输出参数返回。
(10分)
42.设在采用SQLServer 2008数据库的图书馆应用系统中有三个基本表,表结构如下所示,请用SQL语句完成下列两个查询:BORROWER:借书证号姓名系名班级12011106蒋辉文计算机系12-112011107王丽计算机系12-112012113范园园信息系12-2LOANS:借书证号图书馆登记号借书日期1201 1106 T0010012012.01.021******* T0010262013.02.O6BOOKS:索书号书名作者图书登记号出版社价格TP311.1数据库系统李明T001001科学19.00TP311.2二级C语言王珊T001026人民32.00(1)检索至少借了5本书的同学的借书证号、姓名、系名和借书数量。
(5分)(2)检索借书和王丽同学所借图书中的任意一本相同的学生姓名、系名、书名和借书日期。
(5分)
六、单选题[1分](2题)
43.事务是数据库中非常重要的概念。
下列关于事务的说法,错误的是()。
A.当数据库出现事务故障或系统故障时,可以通过数据库日志文件进行恢复
B.事务并发执行可能导致数据错误,采用三级加锁协议可以保证数据的一致性
C.为了检测死锁,数据库管理系统会在执行每个事务时检测事务等待图中是否出现回路
D.数据库管理系统可以采用先来先服务的方式防止活锁现象的出现
44.在SQL Server 2008中,某用户仅具有登录到某SQL Server实例的权限。
下列关于该用户能够进行的操作的说法,正确的是()。
A.仅能够查询master、model和msdb系统数据库中的部分数据
B.能够查询和修改master、model和msdb系统数据库中的部分数据
C.仅能够查询master和msdb系统数据库中的部分数据
D.能够查询和修改master和msdb系统数据库中的部分数据
参考答案
1.C解析:树是一类重要的树形结构,其定义如下:树是n(n>0)个结点的有穷集合,满足:有且仅有一个称为根的结点;其余结点分为m(m>0)个互不相交的非空集合。
所以,在树上,根结点没有前驱结点。
2.D解析:由视图的定义;视图是从一个或几个基本表(或其他视图)导出的表可知,选项A)、B)是正确的.视图机制使用户可以将注意力集中在他所关心的数据上。
通过视图,可以简化用户的数据查询操作(包括简化查询语句的编写),不过不能加快查询语句的执行速度。
3.B解析:二叉树的遍历可以分为三种:前序遍历、中序遍历、后序遍历。
依据前序遍历序列可确定根结点为F5再依据中序遇历序列可知其
左子树由ACBD构成,右子树为EHGP;又由左子树的前序遍历序列可知其根结点为C,由中序遍历序列可知其左子树为A,右子树由BD构成。
以此类推,此二叉树为:
根据前序遍历的定义,求得该二叉树的后序遍历序列为:A,B,D,C,H,P,G,E,F。
4.D解析:采用客户机/服务器结构进行应用系统设计有很多的优点:①系统的联机事务处理能力大大提高;②增强系统的开放性和可扩充性;
③系统数据的安全性能增强;④提高资源利用率,提高系统的应用开发生产率。
因此选项D(实现起来更加容易)不是客户机/服务器结构的优点,正确答案为D。
5.B解析:从Internet实现技术角度看.它主要是由通信线路、路由器、主机和信息资源等几个主要部分组成。
其中的通信线路可分为两类:有线通信线路和无线通信线路;常用的传榆介质有:双绞线、同轴电缆、光纤电缆、无线与卫星通信信道。
选项A仅是通信线路采用的传输介质;而C、D是根据网络的覆盖范围和规模进行分类。
6.B解析:接入Internet的某台计算机要和另一台计算机通信就必须确切地知道其IP地址。
7.C
在多道程序环境中,一旦调度程序发现CPU的利用率降低时,立即提
高多道程序的道数,为此引入更多的进程进入内存,新进的进程又会
减少其他进程在内存的内储块数,进一步加剧了进程的缺页,即进程
的大部分时间都用于页面的换进和换出,而几乎不能够完成任何有效
的工作,称此时系统处于抖动状态。
8.B解析:本题主要考查了数据库的三级模式和SQL之间的联系。
在SQL中,模式对应于'基本表',内模式对应于'存储文件',外模式对应于'视图'和部分基表。
9.D解析:操作系统中,引入多道程序是为了充分利用CPU,减少CPU 的等待时间。
10.D解析:数据库系统一般由数据库、数据库管理系统(DBMS)、应用系统、数据库管理员和用户构成。
DBMS是数据库系统的基础和核心。
11.游标或Cursor游标或Cursor 解析:一个SQL语句原则上可产生或处理一组记录,而主语言一次只能处理一个记录,为此必须协调两种处理方式,这是通过使用游标机制来解决的。
与游标有关的SQL语句包括:游标定义语句、游标打开语句、游标推进语句和游标关闭语句。
12.PowerDesignerPowerDesigner是Sybase公司的CASE工具集,使用它可以方便地对管理信息系统进行分析设计,它几乎包括了数据库模型设计的全过程
13.口令认证【解析】常用的身份认证方法有:口令认证、持证认证和生物识别。
14..mdf 1,3
15.增广律增广律
16.
ODBC
JDBC
开放数据库互连(ODBC)是MICROSOFT提出的数据库访问接口标准。
开放数据库互连定义了访问数据库的API一个规范,这些API独立于不同厂商的DBMS,也独立于具体的编程语言。
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯Java API 编写数据库应用程序
17.网络【解析】数据包过滤技术是在网络层对数据包进行选择。
通过检查数据流中每个数据包的源地址、目的地址、所用的端口号、协议状态等因素,或它们的组合来确定是否允许该数据包通过,它通常安装在路由器上。
18.DROP
19.网关【解析】IP电话系统有4个基本组件:终端设备、网关、多点控制单元和网守。
20.中断中断解析:中断是指当计算机系统中发生某个事件时,CPU暂停正在执行的程序,转去执行处理该事件的程序,执行完后再返回原先程序断点继续执行的过程。
引起中断的事件称为中断源。
21.B
22.A
23.A
24.B解析:数据库设计过程通常分为以下4个阶段:需求分析、概念结构设计、逻辑结构设计和物理结构设计。
25.A
26.D
27.B
28.C解析:应用层协议主要有以下7种。
①网络终端协议TELNET,用于实现互联网中远程登录功能。
②文件传送协议FTP,用于实现互联网巾交互式文件传输功能。
③电子邮件协议SMTP,用于实现互联网中电子邮件传送功能。
④域名服务DNS,用于实现网络设备名字到IP 地址映射的网络服务。
⑤路由信息协议RIP,用于网络设备之间交换路由信息。
⑥网络文件系统NFS,用于网络中不同主机间的文件共享。
⑦HTTP协议,用于WWW服务。
29.B解析:将23,14,9,6,30,12,18依次按散列函数K(k) =k mod 7计算,并按线性探测法解决冲突,得到的散列结果是14,18,23,9,30,12,6。
30.D
消息认证是指接收者能够检验收到消息真实性的方法,检验的内容包括:
①证实消息的源和宿
②消息的内容是否保持其完整性、即未篡改
③消息的序号和时间性
31.\n【审题关键句】千位-百位-十位-个位,结果大于等于零且原四位数是奇数,统计出满足此条件的个数,并按从小到大的顺序存入数组。
\n【解题思路】
\n本题类似第9套试题,通过审题可以发现主要有两个不同点:一是要求统计的四位数的条件是“千位一百位-十位-个位>=0”,二是要求该四位数是奇数,这两个不同点都体现在参考答案的第8条语句中,对该语句进行修改即可,其中,可以判断奇数的表达式是“a[i]%2”。
\n【参老答案】
\n
\n
\n
32.\n【审题关键句】读取正数,统计个数,右移后为偶数的个数及平均值。
\n【解题思路】
\n①定义整型变量i、j和长整型he,并把其初始值设置为0。
\n②用for循环语句对数组XX进行扫描,如果当前数组元素xx[i]零,则全局变量totNum加1。
\n③在for循环语句中,循环变量i从0开始递增到totNum一1,对数组xx中的每个元素XX[i]右移一位,把这个值赋给整型变量i,再对j 的值对2求余数,如果余数等于0,则变量totCnt加1,并把数组元素xx[i]累加到变量he。
\n④退出循环时,把变量he的数据类型转换成双精度型再除以变量totCnt的值,就得到算术平均值totPjz。
\n【参考答案】
\n
\n
33.\n【审题关键句】个位+千位与百位+十位,偶数,整除,从大到小排序。
\n【解题思路】
\n本题类似第24套试题,通过审题可以发现主要是对四位数的筛选条
件有所不同,体现在两个方面:①分解后重新组合成两位数的方式不同,参考答案的第8、9条语句重新指定两位数的组合方式:②新组合的两位数的偶数的判断及整除判断,参考答案的第10条语句。
注意,两个整除关系表达式要用或运算符(||)连接,且用括号括起来先进行整除运算(因为或运算级别比与运算级别低,因此要括起来),再与奇偶性判断表达式进行与()运算。
\n【参考答案】
\n
\n
\n
34.\n【审题关键句】千位+百位等于十位+个位的数的个数,求满足此条件以及不满足此条件的四位数平均值pjz1和pjz2。
\n【解题思路】
\n本题类似第20套试题,通过审题可以发现仅有一个不同点,即判断符合条件的四位数是“千位+百位等于十位+个位”,参考答案的第8条语句,修改if条件语句的判断条件即可。
\n【参考答案】
\n
35.\n【审题关键句】千位+个位与百位+十位,奇数,整除,从大到小排序。
\n【解题思路】
\n本题类似第27套试题,通过审题可以发现主要是对四位数的筛选条件有所不同,体现在两个方面:①分解后重新组合成两位数的方式不同,
参考答案的第8、9条语句重新指定两位数的组合方式;②新组台的两位数的奇数的判断及整除判断,参考答案的第10条语句。
\n【参考答案】
\n
\n
36.\n【审题关键句】字符替代f(p)=p*11mod256,小于等于32或对应小写字母不变,否则替换。
\n【解题思路】
\n本题类似第65套试题,通过审题可以发现主要是排序条件的设置要求有所不同,参考答案的第6行,修改if条件语句的设置即可。
\n【参考答案】
\n
\n
37.\n【审题关键句】读取正数,统计个数,右移后为奇数的个数及平均值。
\n【解题思路】
\n本题类似第44套试题,通过审题可以发现仅有一个不同点,即参与平均值计算的元素是数组xx[i]右移一位之后为奇数的元素,参考答案的第9条语句。
\n【参考答案】
\n
\n
38.【审题关键句】将大于整数m且紧靠m的k个素数存入数组。
\n【解题思路】
\n①首先定义一个计数变量cnt并赋初值为0。
\n②利用while循环统计大于整数m且紧靠m的k个素数,当计数变量cnt的值与变量k的值相等的时候,则退出while循环。
每执行一次循环时,变量m的值加1,然后调用函数isP判断当前的m值是否为素数,如果是素数,则将m的值赋给数组xx[cnt],同时计算变量cnt的值加1,即当数组xx[0]中保存了一个素数之后,在T一次素数判断成立时将保存到xx[1]的位置上,依次类推。
\n【参考答案】
\n
\n
39.\n【审题关键句】读入数值,奇数个数,偶数个数,数组下标为奇数的平均值。
\n【解题思路】
\n本题类似第42套试题,通过审题可以发现仅有一个不同点,即本题是计算数组下标为奇数的元素的平均值,参考答案的第6条语句。
\n【参考答案】
\n
\n
40.\n【审题关键句】千位+十位与个位+百位,比较大小,整除,奇数,从大到小排序。
\n【解题思路】
\n本题类似第26套试题,通过审题可以发现主要是对四位数的筛选条件有所不同,即判断新组合的两位数要求第一个为偶数,第二个为奇数,
比较两题的第10条语句,只需将新组合的第二个数的判断条件改为奇数判断,即“newV2%2”。
\n【参考答案】
\n
\n
41.存储过程是由PL/SQL语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,使用时只要调用即可。
使用存储过程具有以下优点:其已经编译和优化过了,所以运行效率高,提供了在服务器端快速执行SQL语句的有效途径;存储过程降低了客户端和服务器之间的通信量;方便实施企业规则,当企业规则发生变化时只要修改存储过程,而无需修改其他应用程序。
创建存储过程:create procedure过程名@[参数名][类型],@[参数名][类型]/*过程首部*/AsDeclare/*as下面对应的<PL/SQL>块为过程体*/beginend如上所示,存储过程包括过程首部和过程体。
过程名是数据库服务器合法的对象标识;参数列表:用名字来标识调用时给出的参数值,必须指定值的数据类型。
参数可以是输人参数或输出参数,默认为输人参数。
【参考答案】CREATE PROCEDURE PRODUCT@商品号int,@年份int,@毛利int outputASDECLARE@某商品销售量int,@某商品进价int,@某商品销售单价int/*中间变量定义:*/BEGINSelect@某商品进价=单价from商品表where@商品号=商品号Select@某商品销售单价=销售单价,@某商品销售量=count(*)from销售表where@商品号=商品号and销售时间=@年份IF@某商品进价is NULL THEN/木判断该商品是否存在*/ROLLBACK;RETURN;END IFIF@某商品销售单价is NULL THEN/*判断该两晶是否可卖。