第11章 函数和游标
游标及函数的使用及举例
游标的使用及举例一、声明游标在使用一个游标之前,要先声明游标。
可以采用DECLARE语句声明一个游标,语法见表8-22所示。
二、打开游标用DECLARE语句声明游标时并不执行SELECT查询语句,只有当用OPEN语句打开游标时才能执行查询语句,OPEN语句的语法见表8-23所示。
三、从游标中提取数据在游标打开后,可以使用FETCH语句从游标中提取数据并进行操作,FETCH语句的语法见表8-24所示。
表8-24 FETCH语句的语法FETCH语句每次只能提取一行数据,其执行的状态值保存在全局变量@@FETCH_STATUS中,当@@FETCH_STATUS为0时,表示FETCH语句执行成功;当@@FETCH_STATUS为-1时,表示FETCH 语句失败或此行不在结果集中;当@@FETCH_STATUS为-2时,表示被提取的行不存在。
四、利用游标修改和删除数据在SQL Server中,利用游标可以修改或删除当前记录,其语句的语法见表8-25所示。
五、关闭游标游标使用完毕后,应及时关闭游标,以释放当前的结果集并解除定位在游标记录行上的游标锁定,使用CLOSE语句可以关闭游标。
在关闭游标后,当需要时仍然可以通过OPEN 语句打开并使用该游标。
关闭游标的CLOSE语句的语法见表8-26所示。
六、释放游标关闭游标并没有删除游标,因此游标仍然占用着系统的资源,对于一个不再使用的游标,可以使用DEALLOCA TE语句删除,其语句的语法见表8-27所示。
应用举例例8-15:使用游标将学生表中编号、姓名、性别和家庭住址逐行显示出来,语句及结果见图8-14。
use studentgodeclare @xs_xh char(12),@xs_xm varchar(12),@xs_xb char(2),@xs_jtzz varchar(40)--声明游标图8-14 游标使用示例declare xs_cursor cursor scroll READ_ONL Yfor select xh,xm,xb,jtzz from student--打开游标open xs_cursor--提取结果集中的第一行记录fetch next from xs_cursor into @xs_xh,@xs_xm,@xs_xb,@xs_jtzzprint ' 学号'+ ' 姓名'+ ' 性别'+' 家庭住址'print '------------------------------------------'while @@fetch_status=0begin-- 显示学号、姓名、性别、家庭住址print @xs_xh+' '+ @xs_xm+' '+@xs_xb+' '+@xs_jtzzprint '-----------------------------------------'-- 从打开的游标中提取下一条fetch next from xs_cursor into @xs_xh,@xs_xm,@xs_xb,@xs_jtzzend--关闭与释放游标close xs_cursordeallocate xs_cursor返回函数(1)创建标量值函数创建标量值函数的语法见表8-29。
[Python程序设计基础(第2版)][李东方 (11)[19页]
11.1 访问SQLite数据库
SQLite是一个开源的关系型数据库,具有零配置 (Zero Configuration)、自我包含(Selfcontained)和便于传输(Easy Transfer)等 优点,由于其高度便携、使用方便、结构紧凑、 高效和可靠,因此被广泛用于移动设备嵌入式数 据库作为前端数据存储。SQLite支持规范的SQL (Structured Query Language,结构化查询 语言),可方便地支持数据库系统原型研发和移 植。
【例11-2】编写Python程序为例11-1中创建的student库的base表添加 新生学号、姓名和性别三项非空数据
import sqlite3 # 连接数据库 conn =sqlite3.connect('d:/test.db') while True:
id=input('请输入新生学号:(输入0退出程序)\n') if id=='0':
NOT NULL,
与数据库连接对象conn.execute()方法相关的常用SQL语句通式如下: ➢ 添加: INSERT INTO <表>(<字段元组>) VALUES (<数据元组>) ➢ 修改: UPDATE <表> SET <字段>=<值> ➢ 删除: DELETE FROM <表> WHERE <条件表达式>
【例11-1】在D:盘根目录下建立一个空数据库test.db,并按如图11-3所 示的表结构创建学生基本情况表base。
import sqlite3
conn = sqlite3.connect('d:/test.db')
2023人教版带答案高中物理必修三第十一章电路及其应用微公式版必考知识点归纳
2023人教版带答案高中物理必修三第十一章电路及其应用微公式版必考知识点归纳单选题1、电阻R1阻值为6Ω,与电阻R2并联后接入电路中,通过它们的电流之比I1:I2=2:3,则电阻R2的阻值和总电阻的阻值分别为()A.4Ω2.4ΩB.4Ω3.6ΩC.9Ω3.6ΩD.9Ω4.5Ω答案:A设并联电路电压为U,由并联电路规律可得I1:I2=UR1:UR2=R2:6Ω=2:3 R2=4Ω由1R =1R1+1R2得R=2.4Ω故选A。
2、如图所示为用电压表(内阻R V)、电流表(内阻R A)测量电阻Rx的两种电路图。
用电路甲测得阻值为R1,用电路乙测得阻值为R2。
下列说法正确的是()A.R1>Rx> R2B.R2>Rx> R1C.若R x≫R A,则用电路乙测量更精确D.若R V≫R x,则用电路甲测量更精确答案:AAB.由图甲所示电路可知,该实验采用电流表内接法,由于电流表分压作用,所测电压偏大,由欧姆定律可知,电阻测量值大于真实值;图乙采用电流表外接法,由于电压表的分流,所测电流偏大,由欧姆定律可知,电阻测量值小于真实值,故R1>R x>R2B错误A正确;C.若R x≫R A,电阻可以看作大电阻,电流表分压作用较小,故此时应采用电路甲测量更精确,C错误;D.若R V≫R x,电阻应看作小电阻,电压表的分流作用较小,应用电路乙测量更精确,D错误。
故选A。
3、一种心脏除颤器通过电容器放电完成治疗。
在一次模拟治疗中,电容器充电后电压为4.0kV,在2.0ms内完成放电,这次放电通过人体组织的平均电流强度大小为30A,该心脏除颤器中电容器的电容为()A.15μFB.10μFC.20μFD.30μF答案:A根据电容定义式C=Q U放电的平均电流为I=Q t联立可得该心脏除颤器中电容器的电容为C=ItU=30×2.0×10−34.0×103F=15×10−6F=15μFA正确,BCD错误;故选A。
第11章 MySQL存储过程与函数 第1节存储过程与函数简介 (1)
(2)创建函数
创建存储函数语法格式: create function sp_name ([func_parameter[,..]]) returns type [characteristic ..] routine_body
说明:在MySQL中,存储函数的使用方法与MySQL内部函数的 使用方法是一样的。换言之,用户自己定义的存储函数与MySQL 内部函数condition then statement_list [elseif search_condition then statement_list] … [else search_condition then statement_list] end if
数据库原理及MySQL应用 ——第十一章(第1节)
存储过程与函数简介
1.概念 2.存储过程和函数区别
1. 概念
一个存储过程是可编程的,它在数据库中创建并保存。它可以有SQL语句 和一些特殊的控制结构组成。
存储过程的优点: 存储过程增强了SQL语言的功能和灵活性; 存储过程允许标准组件是编程。 存储过程能实现较快的执行速度。 存储过程能过减少网络流量。 存储过程可被作为一种安全机制来充分利用。
【例19】删除存储过程studentcount
系统函数
1. 数学函数 2. 字符串函数 3. 日期和时间函数 4. 系统信息函数 5. 加密函数
具体使用 请参考教
材讲义
(6)repeat语句
repate语句是有条件控制的循环语句。 语法形式: [begin_label:] repeat statement_list until search_confition end repeat [end_label]
(7)while语句也是有条件控制的循环语句。
第11章 第3节 实验2 金属丝电阻率的测量 新教材高中物理必修第三册(人教版)(解析版)
实验2 金属丝电阻率的测量一、实验目的1.进一步掌握螺旋测微器的原理及读数方法. 2.练习使用电流表、电压表及伏安法测电阻. 3.测定金属的电阻率. 二、实验思路 1.实验电路:用甲、乙两图都可,图甲中的滑动变阻器为分压式接法,图乙中的滑动变阻器为限流式接法.2.用毫米刻度尺测出金属丝的长度l ,用螺旋测微器测出金属丝的直径d ,算出横截面积S ⎝⎛⎭⎫S =πd24. 3.由电阻定律R =ρl S ,得ρ=SR l =πd 2R 4l =πd 2U 4lI ,求出电阻率.三、实验器材螺旋测微器、毫米刻度尺、电压表、电流表、定值电阻、开关及导线、被测金属丝、电池、滑动变阻器.四、实验步骤1.测直径:用螺旋测微器在被测金属丝上三个不同位置各测一次直径,并记录. 2.量长度:用毫米刻度尺测量接入电路中的被测金属丝的有效长度,反复测量三次,并记录.3.连电路:按如上所示的电路图连接实验电路.4.求电阻:电路经检查确认无误后,闭合开关S ,改变滑动变阻器滑片的位置,读出几组相应的电流表、电压表的示数I 和U 的值,记入表格内,断开开关S .5.拆除实验电路,整理好实验器材.五、数据处理电阻R 的数值可用以下两种方法确定:1.计算法:利用每次测量的U 、I 值分别由公式R =UI 计算出电阻,再求出电阻的平均值作为测量结果.2.图像法:可建立I -U 坐标系,将测量的U 、I 值描点作出图像,利用图像的斜率求出电阻R .六、注意事项1.因一般金属丝电阻较小,为了减少实验的系统误差,必须选择电流表外接法. 2.本实验若用限流式接法,在接通电源之前应将滑动变阻器调到阻值最大状态. 3.测量l 时应测接入电路中的金属丝的有效长度(即两接线柱之间的长度);在金属丝的三个不同位置上用螺旋测微器测量直径d .4.电流不宜过大(电流表用0~0.6 A 量程),通电时间不宜太长,以免电阻率因温度升高而变化.要点一 仪器读数和实验原理有一合金制成的圆柱体.为测量该合金的电阻率,现用伏安法测量圆柱体两端之间的电阻,用螺旋测微器测量该圆柱体的直径,用游标卡尺测量该圆柱体的长度.螺旋测微器和游标卡尺的示数如图甲和乙所示.(1)由图读得圆柱体的直径为________mm ,长度为________ cm .(2)若流经圆柱体的电流为I ,圆柱体两端之间的电压为U ,圆柱体的直径和长度分别用D 、L 表示,则用D 、L 、I 、U 表示的电阻率的关系式为ρ=________.解析 (1)圆柱体的直径为1.5 mm +34.5×0.01 mm =1.845 mm ;长度为42 mm +8×0.05 mm =42.40 mm =4.240 cm .(2)由欧姆定律R =U I 和电阻定律R =ρL S联立得ρ=RS L =US IL =πD 2U4IL.答案 (1)1.845(1.842~1.846均正确) 4.240(2)πD 2U 4IL要点二 电路连接和数据处理在“测定金属的电阻率”实验中,所用测量仪器均已校准,待测金属丝接入电路部分的长度约为50 cm .(1)用螺旋测微器测量金属丝的直径,其中某一次测量结果如图1所示,其读数应为________mm(该值接近多次测量的平均值).图1(2)用伏安法测金属丝的电阻R x ,实验所用器材为电池组(电动势为3 V ,内阻约为1 Ω)、电流表(内阻约为0.1 Ω)、电压表(内阻约为3 kΩ)、滑动变阻器R (0~20 Ω,额定电流为2 A)、开关、导线若干,某小组同学利用以上器材正确连接好电路,进行实验测量,记录数据见下表.次数 1 2 3 4 5 6 7 U /V 0.10 0.30 0.70 1.00 1.50 1.70 2.30 I /A0.0200.0600.1600.2200.3400.4600.520由实验数据可知,他们测量R x 是采用图2中的________(选填“甲”或“乙”)图.图2(3)图3是测量R x 的实验器材实物图,图中已连接了部分导线,滑动变阻器的滑片P 置于变阻器的一端.请根据(2)所选的电路图,补充完成图3中实物间的连线,并使闭合开关的瞬间,电压表或电流表不至于被烧坏.图3图4(4)这个小组的同学在坐标纸上建立U、I坐标系,如图4所示,图中已标出了与测量数据对应的4个坐标点.请在图中标出第2、4、6次测量数据的坐标点,并描绘出U-I图线.由图线得到金属丝的阻值R x=________Ω(保留两位有效数字).(5)根据以上数据可以估算出金属丝电阻率约为________(填选项前的符号).A.1×10-2Ω·m B.1×10-4Ω·mC.1×10-6Ω·m D.1×10-8Ω·m解析(1)螺旋测微器的读数为0+39.8×0.01 mm=0.398 mm.(2)由实验记录的数据可知R x的阻值大约为5 Ω.由题知R x≪R V,故电流表OA外接,若滑动变阻器接为限流的形式,则R x两端的电压最小值U min=520+5+1+0.1E≈0.6 V,而从实验数据可知,R x两端电压可为0.10 V,因此滑动变阻器应采用分压的形式.(3)如图甲所示.甲(4)选尽可能多的点连成一条直线,使不在直线上的点均匀分布在直线两侧,如图乙所示.乙图线的斜率反映了金属丝的电阻,因此金属丝的电阻值R x=4.4 Ω.(5)根据R=ρlS得金属丝的电阻率ρ=RSl=πRd24l=3.14×4.4×(0.398×10-3)24×0.5Ω·m≈1.09×10-6Ω·m.故选项C正确.答案(1)0.398(0.395~0.399均正确)(2)甲(3)见解析图甲(4)见解析图乙4.4(4.3~4.7均正确)(5)C[训练](1)在测定一根粗细均匀合金丝电阻率的实验中,利用螺旋测微器测定合金丝直径的过程如图所示,校零时的读数为________mm,合金丝的直径为________mm.(2)为了精确测量合金丝的电阻R x,设计出如图甲所示的实验电路图,按照该电路图完成图乙中的实物电路连接.甲乙解析(1)按照螺旋测微器的读数原则得,校零时的读数为0.007 mm,合金丝的直径为0.645 mm-0.007 mm=0.638 mm.(2)连线如图所示.答案(1)0.0070.638(0.636~0.640均正确)(2)见解析图要点三实验创新设计国标(GB/T)规定自来水在15 ℃时电阻率应大于13 Ω·m.某同学利用图甲电路测量15 ℃的自来水的电阻率,其中内径均匀的圆柱形玻璃管侧壁连接一细管,细管上加有阀门K以控制管内自来水的水量,玻璃管两端接有导电活塞(活塞电阻可忽略),右活塞固定,左活塞可自由移动.实验器材还有:甲乙电源(电动势约3 V,内阻可忽略);电压表V1(量程0~3 V,内阻很大);电压表V2(量程0~3 V,内阻很大);定值电阻R1(阻值4 kΩ);定值电阻R2(阻值2 kΩ);电阻箱R(最大阻值9 999 Ω);单刀双掷开关S,导线若干;游标卡尺,刻度尺.实验步骤如下:A.用游标卡尺测量玻璃管的内径d;B.向玻璃管内注满自来水,并用刻度尺测量水柱长度L;C.把S拨到1位置,记录电压表V1的示数;D.把S拨到2位置,调整电阻箱阻值,使电压表V2的示数与电压表V1示数相同,记录电阻箱的阻值R;E.改变玻璃管内水柱长度,重复实验步骤C、D,记录每一次水柱长度L和电阻箱阻值R;F.____________________.(1)补充完整实验步骤.(2)测玻璃管内径d时游标卡尺示数d=30.00 mm,玻璃管内水柱的电阻值R x的表达式为R x=________(用R1、R2、R表示).(3)利用记录的多组水柱长度L和对应的电阻箱阻值R的数据,绘制出如图乙所示的R-1L关系图像.则自来水的电阻率ρ=________Ω·m(保留两位有效数字).(4)实验中若电压表V1内阻不是很大,则自来水电阻率测量结果将________(选填“偏大”“不变”或“偏小”).解析(1)实验做完后,要断开S,整理好器材.(2)设把S拨到1位置时,电压表V1的示数为U,则此时电路电流I=UR1,电源的电动势E =UR 1R x +U ,当把S 拨到2位置,调整电阻箱的阻值,使电压表V 2的示数与电压表V 1的示数相同,也为U ,则此时电路中的电流I ′=U R ,电源的电动势E =U R R 2+U ,可得R x R 1=R 2R ,解得R x =R 1R 2R.(3)从图乙中可知,R =2.0×103 Ω时,1L =5.0 m -1,此时玻璃管内水柱的电阻R x =R 1R 2R =4 000 Ω,水柱横截面积S =πd 22=7.065×10-4m 2,根据电阻定律有R x =ρL S ,代入数据可得ρ=14 Ω·m .(4)若电压表V 1内阻不是很大,则把S 拨到1位置,此时电路电流大于UR 1,电源的电动势将大于U R xR 1+U ,所以测得的R x 将偏大,因此自来水电阻率测量结果将偏大.答案 (1)断开S ,整理好器材 (2)R 1R 2R (3)14(4)偏大。
新教材高中物理第11章电路及其应用3实验:导体电阻率的测量课件新人教版必修第三册
(2)实验时电压表应选用__B__,电流表应选用__D__,滑动变阻器应选 用__F__。(只填代号)
(3)为提高实验的精确度,请你为该实验小组设计电路图,并画在下 面的方框中。
答案:见解析图 (4)某次测量时,电压表示数为U,电流表示数为I,则该铜芯电线的
对点训练
1.某同学用游标卡尺分别测量金属圆管的内、外壁直径,游标卡 尺的示数分别如图(a)和(b)所示。由图可读出,圆管内壁的直径为 __2_._2_3__ cm,圆管外壁的直径为__2_.9_9___ cm;由此可计算出金属圆管横 截面的面积。
解析:题图(a)中游标卡尺的主尺读数为22 mm,游标尺读数为 3×0.1 mm=0.3 mm,所以最终读数为22 mm+0.3 mm=22.3 mm=2.23 cm。题图(b)中游标卡尺的主尺读数为29 mm,游标尺读数为9×0.1 mm =0.9 mm,所以最终读数为29 mm+0.9 mm=29.9 mm=2.99 cm。
方法二,图像法:可建立U-I坐标系,将测量的对应U、I值描点
作出图像,利用图像斜率来求出电阻值R。
2.将测得的R、l、d的值,代入电阻率计算公式ρ=
RS l
=
πd2R 4l
中,
计算出金属导线的电阻率。
五、误差分析 1.长度测量、直径测量造成的偶然误差。 2.电压表、电流表读数造成的偶然误差。 3.电流表外接法,R测<R真,导致ρ测<ρ真(系统误差)。
(2)特别注意:主尺半刻度线是否露出。 解析:读数前应先旋紧B,使读数固定不变,螺旋测微器的固定刻 度为0 mm,可动刻度为41.0×0.01 mm=0.410 mm,所以最终读数为0 mm+0.410 mm=0.410 mm。
对点训练
2.在测量一根粗细均匀的合金丝电阻率的实验中,利用螺旋测微 器测定合金丝直径的过程如图所示,校零时的读数为__0_._0_0_9__ mm,合 金丝的直径为__0_._6_4_8__ mm。
新教材-人教版高中物理必修第三册-第11章-电路及其应用-知识点考点重点难点提炼汇总
第11章电路及其应用1.电源和电流 (1)2.导体的电阻 (5)3.实验: 导体电阻率的测量 (9)4.串联电路和并联电路 (15)5.实验: 练习使用多用电表191.电源和电流一、电源1. 定义: 能够把电子从正极搬运到负极的装置。
2. 作用:(1)维持电源正、负极间始终存在电势差。
(2)使电路中的电流能够持续存在。
二、恒定电流1. 恒定电场: 由稳定分布的电荷所产生的稳定的电场。
2.自由电荷定向移动的平均速率: 在恒定电场的作用下, 自由电荷定向加速运动, 但在运动过程中与导体内不动的粒子不断碰撞, 碰撞的结果是大量自由电荷定向移动的平移速率不随时间变化。
3. 恒定电流:大小、方向都不随时间变化的电流。
4. 电流(1)物理意义: 表示电流强弱程度的物理量。
(2)公式: I=。
(3)单位:在国际单位制中, 电流的单位是安培, 简称安, 符号是A。
常用的电流单位还有毫安(mA)和微安(μA)。
1 mA=10-3A,1 μA=10-6 A。
(4)方向: 正电荷定向移动的方向规定为电流的方向。
考点1: 对电源的理解1. 电源的作用(1)从电荷转移的角度看, 电源的作用是使电路中的自由电荷持续地定向移动。
(2)从能量转化的角度看, 搬运电荷的过程是非静电力做功的过程, 从而将其他形式的能转化为电能。
2. 形成电流的三种电荷形成电流的三种电荷为自由电子、正离子和负离子, 其中金属导体导电时定向移动的电荷是自由电子, 液体导电时定向移动的电荷有正离子和负离子, 气体导电时定向移动的电荷有自由电子、正离子和负离子。
【例1】下列关于电源的说法正确的是( )A. 电源的作用是在电源内部把电子由负极搬运到正极, 保持两极之间有电压B. 电源把正、负电荷分开的过程是把其他形式的能转化为电势能的过程C. 电荷的移动形成电流D. 只要电路中有电源, 电路中就会形成持续的电流B [在电源内部, 电源把电子由正极搬运到负极, 这一过程要克服静电力做功, 把其他形式的能转化为电势能, 故选项A错误, 选项B正确。
游标与函数的使用
实验二游标与函数的使用 4实验目的1、了解PL/SQL基本概念。
2、掌握PL/SQL编程环境。
3、理解游标概念及其使用。
4、掌握函数概念及其编写。
实验内容1、定义一个游标完成显示所有供应商名。
DECLAREv_sname s.sname%TYPE;CURSOR cu_sname IS SELECT sname FROM s;BEGINFOR cur IN cu_sname LOOPdbms_output.put_line(cur.sname);END LOOP;END;2、定义、调用一个简单函数:查询返回指定供应商编号的供应商名及其供应零件总数量。
CREATE OR REPLACE FUNCTION cx(cx_sno IN s.sno%TYPE ,cx_sname OUT s.sname%TYPE )RETURN NUMBERISV_sqty NUMBER;BEGINSELECT sname ,SUM(qty) INTO cx_sname,V_sqty FROM s,spj WHERE s.sno=spj.sno GROUP BY spj.sno,s.sname HA VING spj.sno=cx_sno;RETURN V_sqty;END cx;DECLAREV_sno s.sno%TYPE:='&sno';V_sqty s.sqty%TYPE;V_sname s.sname%TYPE;BEGINV_sqty:=cx(V_sno,V_sname);dbms_output.put_line(V_sname||'供应商'||V_sno||'所供应的零件总数为:'||V_sqty);END;3、定义一个函数:对于给定的供应商号,判断是否存在,若存在返回0,否则返回-1。
写一段程序调用此函数,若供应商号存在则在spj插入一元组。
CREATE OR REPLACE FUNCTION CZ(cx_sno IN s.sno%TYPE)RETURN NUMBERISjg_sno NUMBER ;BEGINSELECT COUNT(*) INTO jg_sno FROM s WHERE s.sno=cx_sno ;IF jg_sno=0THENRETURN (-1);ELSERETURN 0;end IF;END;DECLAREC_sno s.sno%TYPE :='&sno';hf NUMBER ;BEGINhf := CZ(C_sno);IF hf=0THENdbms_output.put_line(C_sno||'存在');--INSERT INTO spj V ALUES (C_sno,'');ELSEdbms_output.put_line(C_sno||'不存在');END IF;END;4、定义、调用一个类似于SUM功能的函数:计算指定供应商编号的供应零件总数量。
第11章第3节 实验长度的测量及测量工具的选用
___________mm,用此新式游标卡尺测量某一物体的厚度,测量
时游标的示数如图所示,其读数是___________cm。
新知探究
知识点 1
实验1长度的测量及测量工具的选用
解析:[1]新Байду номын сангаас游标卡尺的测量原理和传统的游标卡尺相同,新式游
标卡尺其游标尺上20个分度只有39mm,比主尺上的40个分度短
例1.市场上出现了一种新式的游标卡尺,这种游标卡尺上的刻度
与传统的旧式游标卡尺明显不同,新式游标卡尺的刻度看起来很稀
疏,使得读数时清晰明了,便于正确读数。
新知探究
知识点 1
实验1长度的测量及测量工具的选用
新式游标卡尺也有10分度、20分度、50分度三种规格,但刻度却
是:19mm等分成10份、39mm等分成20份、99mm等分成50份。以
小球的直径的正确测量值4.715mm-0.010mm=4.705mm。
答案:0.010 ± 0.002
4.705 ± 0.004
新知探究
知识点 1
实验1长度的测量及测量工具的选用
例4:某同学用螺旋测微器测量某物件,结果如图。则螺旋测微器
读数为______mm。
新知探究
知识点 1
实验1长度的测量及测量工具的选用
该工件的长度L=______cm.
新知探究
知识点 1
实验1长度的测量及测量工具的选用
解析:20分度的游标卡尺,精确度是0.05mm,游标卡尺的主尺读
数为40mm,游标尺上第4个刻度和主尺上某一刻度对齐,所以游
标读数为4×0.05mm=0.20mm,所以最终读数为:
SQLSERVER课件-游标与函数
FETCH RELATIVE n:
如果n为正,则提取上次提取的行之后的第n行。 如果n为负,则提取上次提取的行之前的第n行。
FETCH 语句全局变量
@@FETCH_STATUS: 为执行的上一个FETCH语句返回一个整数值。
@@CURSOR_ROWS: 返回当前打开的游标中符合条件的行的数目。
函数的定义
函数是用于封装经常执行的逻辑的子例程
类型:
标量函数(返回单个数据值) 内嵌表值函数(返回一个结果集) 多语句表值函数(返回一个结果集)
标量函数的创建
Create Function 函数名(参数名,数据类型) Returns 数据类型 As
游标与函数
游标概念
游标是一种从结果集中每次提取一条记录的机制 游标提供一种对表中数据进行操作的灵活手段 使用游标,可以实现以下目标:
允许定位到结果集中的特定行 从结果集的当前位置检索一行或多行数据 支持对结果集中当前位置的行进行修改 对于其他用户对结果集的修改,支持不同的可见性级
别
游标的优点
创建游标
使用游标
打开游标 OPEN<Cursor_name>
检索记录 FETCH<Cursor_name>
关闭游标 CLOSE<Cursor_name>
删除游标引用 DEALLOCATE<Cursor_name>
提取和滚动游标
FETCH FIRST: 提取游标的第一行。 FETCH NEXT: 提取上次提取的行的下一行。 DETCH PRIOR: 提取上次提取的行的前一行。 FETCH LAST: 提取游标中的最后一行。 FETCH ABSOLUTE n:
第十一章电路及其应用+知识点清单 高二上学期物理人教版(2019)必修第三册
新教材人教版高中物理必修第三册第十一章知识点清单目录第11章电路及其应用第1节电源和电流第2节导体的电阻第3节实验:导体电阻率的测量第4节串联电路和并联电路第5节实验:练习使用多用电表第11章电路及其应用第1节电源和电流一、电源1. 定义:能把电子从正极搬运到负极,使正、负极之间始终存在电势差的装置。
2. 作用(1)维持电路两端有一定的电势差。
(2)使电路中存在持续的电流。
二、电流1. 恒定电流:大小、方向都不随时间变化的电流叫作恒定电流。
2. 电流产生的条件(1)导体中存在自由电荷。
金属导体导电时,定向移动的电荷是自由电子;液体导电时定向移动的电荷有正离子和负离子;气体导电时定向移动的电荷有自由电子、正离子和负离子。
(2)存在电势差或电压。
3. 电流的方向:规定正电荷定向移动的方向为电流的方向,则负电荷定向移动的方向与电流的方向相反。
4. 电流的定义式:5. 电流的微观表达式:I=nqSv。
其中v为自由电荷定向移动的平均速率,S为导体的横截面积,n为导体单位体积内的自由电荷数,q为自由电荷的电荷量。
6. 电流的单位:国际单位制中电流的单位是安培,简称安,符号是A。
常用的电流单位还有毫安(mA)、微安(μA)。
1 A=103 mA=106μA。
三、电流大小的计算金属导体中的电流金属导体中的自由电荷只有自由电子,运用I=qt计算时,q是某一时间内通过金属导体横截面的电子的电荷量电解液中的电流电解液中的自由电荷是正、负离子,运用I=qt计算时,q应是同一时间内通过横截面的正、负两种离子电荷量的绝对值之和环形电流环形电流的计算采用等效的观点。
所谓等效电流,就是把电荷周期性地通过圆周上各处形成的电流看成持续不断地通过圆周上各处时所形成的电流。
对周期性运动的电荷,常取一个周期,利用I=qt=qT求等效电流第2节导体的电阻一、电阻1. 定义:导体对电流的阻碍作用的大小,叫作导体的电阻。
2. 公式:R=UI。
2023人教版带答案高中物理必修三第十一章电路及其应用微公式版解题技巧总结
2023人教版带答案高中物理必修三第十一章电路及其应用微公式版解题技巧总结单选题1、在我国边远乡村的电路上常用的熔断保险丝。
当电路中有较强电流通过时,保险丝会快速熔断,及时切断电源,保障用电设备和人身安全。
经测量,有一段电阻为R,熔断电流为2A的保险丝,直径约0.5毫米。
若将这段保险丝对折后绞成一根,那么保险丝的电阻和熔断电流将变为()A.14R、4A B.12R、4A C.14R、0.5A D.12R、1A答案:A根据电阻表达式r=ρl s可知对折后电阻为R′=ρ12l2s=14R而两段最大电流为2A的保险丝并联,其允许的最大电流I′=2I max=4A 故选A。
2、如图所示,均匀的长方体薄片合金电阻板abcd,ab边长为L1,ad边长为L2。
当端点Ⅰ、Ⅱ或Ⅲ、Ⅳ接入电路时,导体的电阻分别为R1、R2,则R1∶R2为()A.L1∶L2B.L2∶L1C.L12∶L22D.L22∶L12答案:C设电阻板厚度为d,根据电阻定律可得,当端点Ⅰ、Ⅱ接入电路时,阻值为R1=ρL1 L2d当端点Ⅲ、Ⅳ接入电路时,阻值为R2=ρL2 L1d对比可得R1:R2=L12:L22故选C。
3、如图所示,厚薄均匀的长方体金属导体,ab、bc的长度之比为2:1。
当将C与D接入电压不变的电路中时,通过该导体的电流为I,若换A与B接入原电路中,则通过该导体的电流为()A .I 4B .I2C .ID .2I答案:A设导体上表面宽为x ,则将C 与D 接入电路中时,电阻为R 1=ρbcab ⋅x若换A 与B 接入原电路中,则电阻为R 2=ρabbc ⋅x因为电路中电压不变,所以由欧姆定律知,将A 与B 接入原电路中,通过该导体的电流为与将C 与D 接入电路中对应电流之比为I′I =R 1R 2=bc 2ab 2=14即I′=14I故选A 。
4、如图所示的电解池接入电路后,在t 秒内有n 1个一价正离子通过溶液内某截面S ,有n 2个一价负离子通过溶液内某截面S ,设e 为元电荷,以下说法正确的是( )A .当n 1= n 2时,电流为零B .当n 1 > n 2时,电流方向从A →B ,电流为I =(n 1−n 2)etC.当n1 < n2时,电流方向从B→A,电流为I=(n2−n1)etD.无论n1、n2大小如何,电流方向都从A→B,电流都为I=(n1+n2)et答案:D由题意可知,流过容器截面上的电量q= (n1+n2)e则电流为I=(n1+n2)et方向与正电荷的定向移动方向相同,故由A到B。
人教版高中物理新教材必修第三册第11章-电路及其应用-教案
两位,这时要求“半格估读”,即读到最小刻度
的一半0.
01A.
二 实验2 金属丝电阻率的测量
一刻线对齐的游标的格数,则记录结果表达
为(
x+K ×精确度)
mm.
2.螺旋测微器
(
S 为固定刻度,
H 为可
1)构造:如图甲,
动刻度.
(
2)原理:可动刻度 H 上的刻度为 50 等
份,则螺旋测微器的精确度为0.
01 mm.
偏转到最大刻度时的电流叫满偏电流,用Ig
表示,此 时 两 端 的 电 压 叫 满 偏 电 压,用 Ug
表示.
2.电压表、电流表的改装
小量程电流表 G 是根据通电线圈在磁场
中受到磁力矩作用发生偏转的原理制成的,
且指针偏角θ 与电流I 成正比,即θ=k
I,故
表的刻度是均匀的,且能改装为电压表和大
量程电流表.
IU 图线:以电流为纵轴、电压为横轴
1)
所画出的导体上的电流随电压的变化曲线称
为IU 图线,如图所示.
I
(
2)比较电阻的大小:图线的斜率k=
U
1
= ,图中 R1>R2.
R
(
3)线性元件:伏安特性曲线是直线的电
学元件,适用欧姆定律.
(
4)非线性元件:伏安特性曲线为曲线的
电学元件,不适用欧姆定律.
四 部分电路欧姆定律
0
,
不足半毫米,
从可动刻度上读的示数为
mm
15.
0,最后的读数为:
2.
0 mm+15.
0×0.
01
mm=2.
150 mm.
3.电压表和电流表的读数
数据库原理与应用教程(尹志宇著)课后习题答案下载
数据库原理与应用教程(尹志宇著)课后习题答案下载尹志宇的著作《数据库原理与应用教程》是xx年清华大学出版社出版的图书,作者是尹志宇。
今天要与大家分享的是数据库原理与应用教程(尹志宇著),希望对大家有帮助!点击此处下载数据库原理与应用教程(尹志宇著)课后习题《数据库原理与应用教程:SQLServer》全面讲述数据库的基本原理和SQLServerxx的应用,全书以理论够用、实用,以实践为重点的原则,使读者能够快速、轻松地掌握SQLServer数据库技术与应用。
数据库原理与应用教程中第1~5章讲述数据库的基本理论知识,其内容包括数据库系统概述、数据模型、关系数据库、关系规范化基础、数据库设计。
第6~14章讲述数据库管理系统SQLSetverxx的应用,其内容包括SQLSetverxx数据库基础,Transact-SQL语言基础,数据库和表,数据库查询,索引和视图,存储过程、触发器和游标,事务与并发控制,数据库的备份与还原,数据库的安全管理;第15章利用一个实例介绍基于C#.NET的SQLServer数据库系统开发过程。
为便于学习,每章还配有丰富的习题。
《数据库原理与应用教程:SQLServer》可作为大学本科生“SQLServer数据库”课程的教学用书,也可以作为培养数据库系统工程师的培训教材,还可以作为数据库管理人员及数据库应用系统开发人员的参考用书。
第1章数据库系统概述第2章数据模型第3章关系数据库第4章关系规范化基础第5章数据库设计第6章SQLServerxx基础第7章Transact-SQL语言基础第8章数据库和表第9章数据库查询第10章视图和索引第11章存储过程、触发器和游标第12章事务与并发控制第13章数据库的备份与还原第14章数据库的安全管理第15章基于C#、NET的数据库系统开发参考文献1.数据库原理及应用教程试题及答案2.数据库答案-阳光大学生网3.数据库原理与实践教程模拟试题及参考答案4.数据库原理及应用教程试题及答案。
第十一章3实验导体电阻率的测量
第十一章 3 实验:导体电阻率的测量电阻率是反映材料导电性能的物理量,这一节我们来测量导体的电阻率。
如果根据导体的电阻、长度和截面积来求出电阻率,就需要测量电阻和长度等。
下面我们分别来进行相关的实验。
实验 1 长度的测量及测量工具的选用长度是物理学中基本的物理量,长度的测量是最基本的测量。
常用的测量工具是刻度尺,初中我们已经学习了用刻度尺测量长度的方法和读数规则。
现在我们进一步学习使用另外两种测量精度更高的工具。
根据测量要求的不同,可以选用不同的测量工具。
游标卡尺图 11.3-1 是游标卡尺的结构图。
游标卡尺的主要部分是主尺 A 和一条可以沿着主尺滑动的游标尺 B 。
原理 游标卡尺是利用主尺的单位刻度(1 mm )与游标尺的单位刻度之间固定的微量差值来提高测量精度的。
常用的游标卡尺有 10 分度、20 分度和 50 分度三种。
以 10 分度游标卡尺为例,如图 11.3-2,游标尺上有 10个小的等分刻度,总长 9 mm ,每一分度为 0.9 mm ,与主尺上的最小分度相差 0.1 mm 。
量爪并拢时主尺和游标尺的零刻度线对齐,它们的第一条刻度线相差 0.1 mm ,第二条刻度线相差 0.2 mm ……当量爪间所测量物体的长度为 0.1 mm 时,游标尺向右应移动 0.1 mm ,这时它的第一条刻度线恰好与主尺的 1 mm 刻度线对齐。
同样当游标尺的第五条刻度线跟主尺的 5 mm 刻度线对齐时,说明两量爪之间有0.5 mm 的宽度……这样就将没有游标尺时主尺读数需要估读的问题转化为比较主尺上的刻度线与游标尺上的哪条刻度线对齐的问题,提高了测量的精度。
游标尺上的刻度线越多,游标尺单位刻度与1 mm 的差距越小,测量的精确程度就越高。
如20分度卡尺的游标尺零刻度线之后共有20条刻度线,其单位刻度与1 mm 的差值为0.05 D 内测量爪F 紧固螺钉A 主尺B 游标尺C 外测量爪E 尺身0 10游标尺 主尺1 2cmmm ;50分度卡尺的游标尺零刻度线之后共有50条刻度线,其单位刻度与1 mm 的差值仅为0.02 mm 。
第十一章 3 实验1 长度的测量及测量工具的选用
3实验:导体电阻率的测量实验1长度的测量及测量工具的选用[学习目标] 1.掌握游标卡尺和螺旋测微器的读数方法.2.掌握电流表、电压表的读数方法.一、游标卡尺的原理及读数1.构造:主尺、游标尺(主尺和游标尺上各有一个内、外测量爪)、游标卡尺上还有一个深度尺.(如图1所示)图12.原理:利用主尺的单位刻度与游标尺的单位刻度之间固定的微量差值来提高测量精度.不管游标尺上有多少个小等分刻度,它的刻度部分的总长度比主尺上的同样多的小等分刻度少1 mm.常见的游标尺上小等分刻度有10个、20个、50个的,其规格见下表:刻度格数(分度)刻度总长度 1 mm与每小格的差值精确度(可精确到) 109 mm0.1 mm0.1 mm2019 mm0.05 mm0.05 mm5049 mm0.02 mm0.02 mm3.用途:测量厚度、长度、深度、内径、外径.4.读数若用x表示由主尺上读出的整毫米数,K表示从游标尺上读出与主尺上某一刻度线对齐的游标尺的格数,则记录结果表示为(x+K×精确度)mm.5.注意事项(1)游标卡尺是根据刻度线对齐来读数的,所以不需要估读,但读数要注意精确度所在的位数,如果读数最后一位是零,该零不能去掉.(2)读数时,要注意游标尺第几条刻度线(不含零刻度线)与主尺对齐.如图2甲为一游标卡尺的结构示意图.当测量一钢笔帽的内径时,应该用游标卡尺的________(选填“A”“B”或“C”)进行测量;示数如图乙所示,该钢笔帽的内径为________ mm.图2答案A11.25解析由游标卡尺的结构原理可知,测内径应该用游标卡尺的内测量爪,故选填A;游标卡尺的主尺读数为11 mm,游标尺的读数为5×0.05 mm=0.25 mm,故钢笔帽的内径为11.25 mm. 针对训练1某同学用游标卡尺分别测量金属圆管的内、外壁直径,游标卡尺的示数分别如图3(a)和(b)所示.由图可读出,圆管内壁的直径为________ cm,圆管外壁的直径为________ cm;由此可计算出金属圆管横截面的面积.图3答案 2.23 2.99解析题图(a)中游标卡尺的主尺读数为22 mm,游标尺读数为3×0.1 mm=0.3 mm,所以最终读数为22 mm+0.3 mm=22.3 mm=2.23 cm.题图(b)中游标卡尺的主尺读数为29 mm,游标尺读数为9×0.1 mm=0.9 mm,所以最终读数为29 mm+0.9 mm=29.9 mm=2.99 cm.二、螺旋测微器的原理及读数1.构造如图4所示,它的测砧A和固定刻度B固定在尺架C上,可动刻度E、旋钮D和微调旋钮D′是与测微螺杆F连在一起的,并通过精密螺纹套在B上.图42.原理测微螺杆F与固定刻度B之间的精密螺纹的螺距为0.5 mm,即旋钮D每旋转一周,F前进或后退0.5 mm,而可动刻度E上有50个等分刻度,可动刻度每旋转一格,F前进或后退0.01 mm,即螺旋测微器的精确度为0.01 mm.读数时估读到毫米的千分位上,因此,螺旋测微器又叫千分尺.3.读数方法L=固定刻度示数+可动刻度示数(估读一位)×0.01 mm.4.注意事项(1)读数时准确到0.01 mm,要估读到0.001 mm,测量结果若用毫米做单位,则小数点后面必须保留三位.(2)读数时,要注意固定刻度上半毫米刻度线是否露出.某同学利用螺旋测微器测量一金属板的厚度.该螺旋测微器校零时的示数如图5甲所示,测量金属板厚度时的示数如图乙所示.图甲所示读数为__________ mm,图乙所示读数为__________ mm,所测金属板的厚度为__________ mm.图5答案0.010(0.009或0.011) 6.870(6.869或6.871) 6.860(第二空中数据减第一空中数据的差值均可)针对训练2(2021·盐城四校高二上期终)某同学在使用螺旋测微器测量某工件的直径时,螺旋测微器的示数为5.670 mm,如图6所示(图中固定刻度省略了部分长度).刻度线旁边方框A内的数值应为________,方框B内的数值应为________.图6答案515解析由于螺旋测微器的精确度为0.01 mm,固定刻度露出了半毫米线,示数可分解为5.5 mm +17.0×0.01 mm,故方框A内的数值应为5,方框B内的数值应为15.三、电压表、电流表的读数1.0~3 V量程的电压表和0~3 A量程的电流表读数方法相同,此量程下的精确度分别是0.1 V和0.1 A,读到0.1的下一位,即读到小数点后面两位.2.对于0~15 V量程的电压表,精确度是0.5 V,在读数时只要求读到小数点后面一位,即读到0.1 V.3.对于0~0.6 A量程的电流表,精确度是0.02 A,在读数时只要求读到小数点后面两位,这时要求“半格估读”,即读到最小刻度的一半0.01 A.如图7为电流表和电压表的刻度盘.图7(1)图甲使用0.6 A量程时,对应刻度盘上每一小格代表________A,图中表针的示数是________A;当使用3 A量程时,对应刻度盘上每一小格代表________A,图中表针示数为________A.(2)图乙使用较小量程时,每小格表示________V,图中表针的示数为______V.若使用的是较大量程,则这时表盘刻度每小格表示______V,图中表针示数为______V.答案(1)0.020.440.1 2.20(2)0.1 1.700.58.5针对训练3请完成下列各表的读数,把答案填在图下的横线上.(1)量程为0~3 V和0~3 A的电表.读数________读数________(2)量程为0~15 V的电压表读数.读数________读数________读数________(3)量程为0~0.6 A的电流表读数.读数________读数________读数________读数________答案(1)0.90 V 1.90 A(2)10.0 V10.5 V10.2 V(或10.3 V)(3)0.40 A0.50 A0.22 A0.52 A1.(2020·苏州陆慕高中高二期中)某同学要测量一均匀新材料制成的圆柱体的电阻率ρ,步骤如下:(1)用游标为20分度的游标卡尺测量其长度如图1甲所示,由图可知其长度L=________ mm.(2)用螺旋测微器测量其直径如图乙所示,可知其直径D=________ mm.图1答案(1)50.15(2)4.700解析(1)游标卡尺的主尺部分读数为50 mm,圆柱体的长度为50 mm+3×0.05 mm=50.15 mm.(2)螺旋测微器主尺部分读数为4.5 mm,20刻度线对齐主尺刻度,所以螺旋测微器最终的读数为4.5 mm+20.0×0.01 mm=4.700 mm.2.某同学用20分度的游标卡尺测量一薄金属圆板的直径D,用螺旋测微器测量其厚度d,示数如图2甲、乙所示.由图可读出D=________ mm,d=________ mm.图2答案50.80 3.776(3.774~3.778均可)3.某实验小组在做“测定金属的电阻率”的实验过程中,正确操作获得金属丝的直径以及电流表、电压表的读数如图3甲、乙、丙所示,则它们的读数依次是________ mm、________ A、________ V.图3答案0.999(0.998~1.000均可)0.42 2.25(2.24~2.26均可)4.现有一合金制成的圆柱体,为测量该合金的电阻率,现用伏安法测圆柱体两端的电阻,用螺旋测微器测量该圆柱体的直径,用游标卡尺测量该圆柱体的长度.螺旋测微器和游标卡尺的示数如图4(a)和(b)所示.图4由图得圆柱体的直径为________ mm,长度为________ cm.答案 1.847(1.846~1.848均可) 4.240解析由题图(a)可知,螺旋测微器固定刻度示数为1.5 mm,可动刻度示数为34.7×0.01 mm =0.347 mm,螺旋测微器示数为1.5 mm+0.347 mm=1.847 mm;由题图(b)可知,游标卡尺主尺示数为4.2 cm,游标尺示数为8×0.05 mm=0.40 mm,游标卡尺示数为42 mm+0.40 mm=42.40 mm=4.240 cm.5.图5甲、乙和丙分别是用游标卡尺和螺旋测微器测量长度,图甲读数为________,图乙读数为________,图丙读数为________.图5答案 4.120 cm0.990 mm 1.510 mm解析题图甲主尺示数为4.1 cm,游标尺上第10格对齐,精确度为0.02 mm,故题图甲读数为41 mm+0.02×10 mm=41.20 mm=4.120 cm.题图乙螺旋测微器固定刻度读数为0.5 mm,可动刻度读数为49.0×0.01 mm,故题图乙读数为0.5 mm+0.01×49.0 mm=0.990 mm.题图丙中半毫米刻度线已露出,此时固定刻度读数应为1.5 mm,可动刻度读数为0.010 mm,题图丙读数为1.510 mm.6.电流表量程一般有两种:0~0.6 A和0~3 A;电压表量程一般有两种:0~3 V和0~15 V.如图6所示:图6(1)接0~3 V量程时读数为________ V.(2)接0~15 V量程时读数为________V.(3)接0~3 A量程时读数为________A.(4)接0~0.6 A量程时读数为________A.答案(1)1.90(2)9.5(3)0.85(4)0.177.实验时,用螺旋测微器测量金属丝的直径和用米尺测量金属丝的长度示数如图7甲所示,电流表、电压表的读数如图乙所示.则金属丝两端的电压U=______________,电流I=____________,金属丝的长度l=____________,直径d=____________.图7答案11.0 V0.44 A30.50 cm 1.850 mm解析电压表的量程是15 V,所以读数是11.0 V;电流表的量程是0.6 A,所以读数是0.44 A;米尺的读数是40.50 cm-10.00 cm=30.50 cm;螺旋测微器的读数是1.850 mm.8.读出图8中给出的螺旋测微器和游标卡尺的示数,螺旋测微器的示数为________ mm,游标卡尺A的示数为________ cm,游标卡尺B的示数为________ cm.图8答案 6.125 4.120 1.0959.图9中50分度游标卡尺和螺旋测微器的读数分别为________ mm和________ mm.图9答案10.5410.294(10.293~10.295均可)解析游标卡尺读数:(10+0.02×27) mm=10.54 mm;螺旋测微器读数:(10+29.4×0.01) mm=10.294 mm.。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
29/50
声明游标参数说明
FORWARD_ONLY:指定游标只能从第一行滚 动到最后一行。这种方式的游标只支持FETCH NEXT 提取选项。 STATIC:静态游标。游标的结果集在打开时建 立在tempdb数据库中。 KEYSET:键集游标。指定当游标打开时,游标 中行的成员和顺序已经固定。 DYNAMIC:动态游标。该类游标反映在结果集 中做的所有更改。 FAST_FORWARD:只向前的游标。 UPDATE [OF column_name [,...n]]:定义游标 内可更新的列。
25/50
11.2.1 游标概念 游标(cursor)包括如下两部分内容:
游标结果集:由SELECT语句返回的查询结果。 游标当前行指针:指向结果集中某一行的指针
游标当前 行指针
…
游标结 果集
26/50
游标特点
允许定位结果集中的特定行。 允许从结果集当前位置检索一行或多行。 支持对结果集中当前行的数据进行修改。 为由其他用户对显示在结果集中的数据所做的更 改提供不同级别的可见性支持。 提供脚本、存储过程和触发器中用于访问结果集 中的数据的 T-SQL 语句。
11.2.1 游标概念 11.2.2 使用游标 11.2.3 游标示例
24/50
概述
由SELECT语句返回的行集被称为结果集。 在执行SELECT语句进行查询时,就可以得到这 个结果集。 关系数据库中的操作会对整个行集起作用。 但有时用户需要对结果集中的每一行或部分行进 行单独的处理,这在SELECT的结果集中是无法 实现的。 游标就是提供这种机制的结果集扩展,它使我们 可以逐行处理结果集。 作为面向集合的DBMS和面向行的程序设计间的 桥梁,使这两种处理方式得以有效沟通。
3/50
1. 基本概念
可以扩展数据操作的功能, 在概念上类似于一般的程序设计语言中定 义的函数。 SQL Server 支持三种用户自定义函数:
标量函数 内联表值函数 多语句表值函数
4/50
11.2 创建和调用标量函数
标量函数是返回单个数据值的函数。
定义标量函数的语法:
CREATE FUNCTION [ 拥有者名.] 函数名 ( [ { @参数名 [AS] 标量数据类型 [ = default ] } [ ,...n ] ] ) RETURNS 返回值类型 [ AS ] BEGIN 函数体 RETURN 标量表达式 END
10/50
11.1.3 创建和调用内联表值函数
内联表值函数的返回值是一个表,该表的内 容是一个查询语句的结果。 定义内联表值函数的语法:
CREATE FUNCTION [ 拥有者名.] 函数名 ( [ { @参数名 [AS] 标量数据类型 [ = default ] } [ ,...n ]]) RETURNS TABLE [ AS ] RETURN [ ( ] select语句 [ ) ]
CREATE FUNCTION [ 拥有者名.] 函数名 ( [ { @参数名 [AS] 标量数据类型 [ = default ] } [ ,...n ]]) RETURNS 返回变量 TABLE < 表定义 > [ AS ] BEGIN 函数体 RETURN END <表定义> ::= ({ 列定义|表约束 }[,...n ] )
14/50
11.1.4 创建和调用多语句表值函数
多语句表值函数的功能是视图和存储过程的 组合。 可利用多语句表值函数返回一个表,表中的 内容可由复杂的逻辑和多条SQL语句构建( 类似于存储过程)。 可以在SELECT语句的FROM子句中使用多 语句表值函数(同视图)。
15/50
创建多语句表值函数
5/50
示例
例1.创建计算立方体的体积的标量函数,此函数有三 个输入参数,分别为立方体的长、宽和高,类型均 为整型,函数的返回值的类型也为整型。 CREATE FUNCTION dbo.CubicVolume (@CubeLength int, @CubeWidth int, @CubeHeight int) RETURNS int AS BEGIN RETURN ( @CubeLength * @CubeWidth * @CubeHeight ) END
8/50
示例
例4.调用例2定义的函数,查询“计算机系”的 学生姓名和该系学生的选课门数。 SELECT Sname AS 姓名, dbo.f_Count(Sno) AS 选课门数
FROM Student
WHERE Dept = '计算机系'
9/50
示例
例5.调用例3定义的函数,查询第2-4学期开设的每 门课程的课程名、开课学期和考试平均成绩,将查 询结果按学期升序排序。 SELECT Cname AS 课程名, Semester AS 开课学期, dbo.f_AvgGrade(Cno) AS 平均成绩 FROM Course WHERE Semester BETWEEN 2 AND 4 ORDER BY Semester ASC
16/50
示例
例10.定义查询指定系的学生姓名、性别和年龄 类型的多语句表值函数,其中年龄类型列的值为 :如果该学生的年龄超过该系学生平均年龄2岁, 则为“偏大年龄”;如果在-1和+2范围内,则为 “正常年龄”;如果小于平均年龄-1,则为“偏 小年龄”。
17/50
例10
CREATE FUNCTION f_SType(@dept varchar(20)) RETURNS @retSType table(Sname char(10),Sex char(2),SType char(8)) AS BEGIN DECLARE @AvgAge int SET @AvgAge = (SELECT AVG(Sage) FROM Student WHERE Dept = @dept) INSERT INTO @retSType SELECT Sname, Sex, CASE WHEN Sage > @AvgAge+2 THEN '偏大年龄' WHEN Sage BETWEEN @AvgAge-1 AND @AvgAge+2 THEN '正 常年龄' ELSE '偏小年龄' END FROM Student WHERE Dept = @dept RETURN END
11/50
示例
例6.创建查询指定系的学生学号、姓名和考试平均 成绩的内联表值函数。 CREATE FUNCTION dbo.f_SnoAvg(@dept char(20)) RETURNS TABLE AS RETURN ( SELECT S.Sno, Sname, Avg(Grade) AS AvgGrade FROM Student S JOIN SC ON S.Sno = SC.Sno WHERE Dept = @dept GROUP BY S.Sno, Sname )
12/50
示例
例7.创建查询选课门数高于指定门数的学生的姓名 、所在系以及所选的课程名和开课学期。 CREATE FUNCTION dbo.f_MoreCount(@c int) RETURNS TABLE AS RETURN (SELECT Sname, Dept, Cname, Semester FROM Student S JOIN SC ON S.Sno = SC.Sno JOIN Course C ON o = o WHERE S.Sno IN (SELECT Sno FROM SC GROUP BY Sno HAVING COUNT(*) > @c ))
27/50
11.2.2 使用游标
声明游标 打开游标
提取数据 否
处理完成?
是
关闭游标
释放游标
28/50
1.声明游标 DECLARE cursor_namSTATIC | KEYSET | DYNAMIC | FAST_FORWARD ] FOR select_statement [FOR UPDATE [ OF column_name [,...n ]]]
调用多语句表值函数
对多语句表值函数的使用是放在SELECT语句的 FROM子句部分。
例11.调用例10定义的函数,查询信息系学生的姓 名和年龄类型。 SELECT Sname, SType FROM f_SType('信息系')
19/50
查看用户定义函数
展开数据库 “可编程性 ”“函数” ,在“函数” 下分为:表值 函数、标量值 函数、聚合函 数和系统函数 四类。
13/50
调用内联表值函数
对内联表值函数的使用与视图非常类似,需要放置 在查询语句的FROM子句部分,很象是带参数的视 图。 例8.调用例6定义的内联表值函数,查询计算机系 学生的学号、姓名和考试平均成绩。 SELECT * FROM dbo.f_SnoAvg('计算机系')
例9.调用例7定义的内联表值函数,查询选课门数 超过2门的学生姓名、所在系、选的课程名和课程 开课学期。 SELECT * FROM dbo.f_MoreCount(2)
20/50
修改用户定义函数
修改函数的定义使用ALTER FUNCTION语句 来实现。
语法格式:
ALTER FUNCTION 函数名 <新函数定义语句>
21/50
示例
例12.修改f_SnoAvg函数为:查询指定系的学生学号 、姓名、选课门数和考试平均成绩的内联表值函数。 ALTER FUNCTION dbo.f_SnoAvg(@dept char(20)) RETURNS TABLE AS RETURN ( SELECT S.Sno, Sname, COUNT(*) AS TotalCno, Avg(Grade) AS AvgGrade FROM Student S JOIN SC ON S.Sno = SC.Sno WHERE Dept = @dept GROUP BY S.Sno, Sname )