




已阅读5页,还剩58页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目五实现公司管理数据系统的编程 终极目标 会利用变量 函数和流程控制语句编写Transact SQL程序 一 促成目标 1 能正确理解和使用SQLServer变量2 能正确理解和使用SQLServer函数3 会使用流程控制语句编写顺序结构 选择结构和循环结构的程序二 工作任务通过使用Transact SQL语句编程 实现公司管理数据库系统的操作 模块1编程获取某雇员的工作业绩信息 一 教学目标1 能正确理解Transact SQL批处理2 能正确理解和使用SQLServer变量3 能正确理解和使用SQLServer函数4 会用Transact SQL语句编程获取对用户有用的信息二 工作任务通过Transact SQL编程 获取名为 王孔若 的姓名 性别 出生年月及雇佣日期等信息 然后输出 王孔若 所做订单的明细表 所做的订单数目及订单总金额 一 SQLServer2000语法规则 服务器端的程序使用SQL语句来编写 一般而言 一个服务器端的程序是由以下一些成分组成 批 注释 变量 流程控制语句 错误和消息处理 1 Transact SQL批量 批量是一条或多条SQL语句构成的 它被应用程序同时发送给SQLServer执行 批结束的符号是 GO SQLServer从批中读取所有语句 并把它们编译成可执行的单元 执行计划 然后 SQLServer就一次执行计划中的所有语句 所以可以节省系统开销 2 GO命令 为了在Transact SQL脚本中结束批量 SQLServer用到了关键字GO GO关键字出现在一系列语句之后 使它们能作为一个单独的批量运行 3 续行 Transact SQL语句很多情况下都写的很长 如果全部放在一行写 则不利于阅读与修改 可以将一条语句在多行中进行编写 Transact SQL会忽略空格和行尾的换行符号 4 注释 注释语句由 双减号 或 和 表示 双减号 用于注释单行文本 和 用于注释多行文本 和 一定要配套使用 否则将会出现错误 5 SELECT语句无源查询 SELECT语句无源查询就是最简单的语句 SELECT常量 变量 函数 表达式 as别名 n 所谓无源查询就是使用SELECT语句来查询不在表中的数据 无源查询实质上就是在客户机屏幕上显示出常量 变量或表达式的值 例1 使用SELECT语句查看常量 select 我是中国人 6 PRINT 功能 将用户定义的消息返回客户端 语法 PRINT字符串 变量 字符串的表达式注意 只允许使用常量 表达式或变量 不允许使用列名 例2 使用PRINT语句有条件地返回消息 IFEXISTS SELECT产品IDFROMP orderWHERE产品ID 4 PRINT 产品ID为4有订单 二 SQLServer2000变量 分类 局部变量 由用户自己创建并赋值的 也只有创建它的用户可以使用 全局变量 是有那些由服务器声明的 通常由服务器赋值的变量 1 局部变量 局部变量用DECLARE语句声明 只能用在声明该变量的过程实体中 即使用范围是定义它的批 存储过程和触发器等 由一个 符号开始 定义 DECLARE 局部变量名数据类型 n 赋值 SET 局部变量名 表达式 n select 局部变量名 表达式 n 例3 本模块声明了一个不超过8个字符的字符型变量name的语句为 DECLARE namevarchar 8 例4 将 王孔若 赋给变量 name的赋值语句 DECLARE nameVARCHAR 10 SET name 王孔若 PRINT 选民 name 例5 将 张立 赋给变量 name的赋值语句 DECLARE nameVARCHAR 10 SELECT name 张立 PRINT 选民 name 2 全局变量 全局变量 由SQLServer系统提供并赋值的变量 名字由 符号开始 用户不能建立全局变量 也不可能使用SET语句去修改全局变量的值 通常应该将全局变量的值赋给在同一个批中的局部变量 以便保存和处理 全局变量分为两类 与连接有关的全局变量 如 rowcount影响的行数 与系统内部信息有关的全局变量 如 versionSQL的版本号 SQL常用的全局变量表 例6 使用SELECT语句查询局部变量 declare aint svarchar 9 set a 40set s 欢迎您 select a s 例7 使用SELECT语句查询全局变量 select versionas版本select languageas语言 三 SQLServer2000函数 在T SQL编程语言中函数可分系统定义函数和用户定义函数 本节介绍的是系统定义函数中最常用的数学函数 字符串函数 日期时间函数 聚合函数 系统函数 系统统计函数的最常用的部分 1 日期和时间函数 对日期和时间输入值执行操作 返回一个字符串 数字或日期和时间值 1 GETDATE函数 功能 返回当前系统日期和服务器的时间 语法 GETDATE 例8 输出当前日期 PRINTGETDATE 其输出结果如下 071220063 06AM 2 DAY函数 功能 返回某日期的 日 部分所代表的整数值 该函数等价于DATEPART dd date 语法 DAY date 例9 输出指定日期的日期 PRINTDAY 08 30 1998 其输出结果如下 30 3 MONTH函数 功能 返回某日期的 月 部分所代表的整数值 该函数等价于DATEPART mm date 语法 MONTH date 例10 输出指定日期的月份 PRINTMONTH 08 30 2006 其输出结果如下 8 4 YEAR函数 功能 返回某日期的 年 部分所代表的整数值 该函数等价于DATEPART yy date 语法 YEAR date 例11 输出指定日期的年份 PRINTYEAR 08 30 2006 其输出结果如下 2006 5 DATEADD函数 功能 在某日期上加上一个时间间隔 从而获得一个新日期 语法 DATEADD datepart number date 参数 Datepart 是指定应返回的日期部分的参数P123日期组成部分表 例12 获得指定时间后的新日期 PRINTDATEADD DY 35 11 30 2007 输出结果如下 014200812 00AM注意 日期函数完成所有的字符串转换操作 并返回SQLServer标准日期格式的输出结果 所有这些日期函数都会自动执行该转换 6 DATEDIFF函数 功能 返回datepart指定的日期的差 语法 DATEDIFF datepart date1 date2 例13 计算两个日期之间相差的天数 PRINTDATEDIFF DY 11 30 2007 1 04 2008 结果如下 35 7 DATENAME函数 功能 返回日期的字符串表示 语法 DATENAME datepart date 例14 指定日期是星期几 PRINTDATENAME DW 11 29 2007 输出结果如下 星期四即2007年11月29日是星期四 8 DATEPART函数 功能 指定datepart的整数值 注意DATEPART函数与datepart参数不同 语法 DATEPART datepart date 例15 从日期中得到月份的数值表示 PRINTDATEPART MM 6 11 2006 输出结果 6 2 字符串函数 字符串函数对字符串输入值执行操作 返回一个字符串或数字值 参考 P127常用的字符串函数 常用的字符串函数 1 LOWER函数 功能 将所有字母表中存在的字符转换为小写形式 所有在字母表中不存在的字符保持不变 语法 LOWER 字符串 例16 PRINTLOWER ABCDEF 其输出结果如下 abcdef 2 LTRIM函数功能 删除字符串中所有的前导空格 语法 LTRIM 字符串 3 RTRIM函数功能 删除指定字符串末尾的所有后缀空格 语法 RTRIM 字符串 4 REVERSE函数 功能 将字符串中的所有字符逆转 语法 REVERSE 字符串 例17 PRINTREVERSE ABCDEF 其输出结果如下 FEDCBA 5 STR函数 功能 将数值型数据转换为字符串型数据 语法 STR 数值 总长度 小数位数 数值 是将要转换成字符串型数据的数值型数据 总长度 可以用来指定字符串的总长度 小数位数 参数也是可选项 用来指定数值型数据小数部分的位数 默认值为10 3 数据类型转换函数 将数据从一种数据类型转换为另一种数据类型的工作通常由SQLServer自动完成 如果要进行显示转换数据类型 需要使用两种函数 CAST 或者CONVERT 函数 1 CAST 功能 将某种数据类型的表达式显式转换为另一种数据类型 语法CAST 表达式AS数据类型 例18 将int列 库存量 列 转换为varchar 20 列 以便使用LIKE子句 SELECT产品名 单价 库存量FROMproductWHERECAST 库存量ASvarchar 20 LIKE 1 2 CONVERT 功能 将某种数据类型的表达式显式转换为另一种数据类型 语法 CONVERT 目的数据类型 要转化的表达式 日期样式 例19 printconvert char 2 month getdate 工作任务 通过Transact SQL编程 获取名为 王孔若 的姓名 性别 出生年月及雇佣日期等信息 然后输出 王孔若 所做订单的明细表 所做的订单数目及订单总金额 程序代码 模块2编程实现订购订单 一 教学目标能正确理解Transact SQL中的流程控制语句 包括判断语句 循环语句 标签 RETURN语句以及GOTO语句 工作任务 雇员王孔若签订了一条供应给 鹿城中学 50个优盘的订单 编程实现将订单涉及到的相关信息写入到数据库中 流程控制语句 流程控制语句是指那些用来控制程序执行和流程分支的命令 在SQLServer2000中 流程控制语句主要用来控制SQL语句 语句块或者存储过程的执行流程 一 BEGIN END 功能 对用来将多行SQL语句组织在一起 以达到一起执行的目的 语法 BEGINSQL语句组END注意 必须包含在一个单独的批处理中 二 IF ELSE语句 语法格式 IFELSE注意 使用select语句作为这个条件表达式时 必须用圆括号将select语句括起来 例20 编程判断在P order订单表中是否存在 订货日期 在2007年5月7号以后的订单 分别打印相关信息 程序清单1 IF SELECTcount FROMP orderWHERE订货日期 2007 05 07 0PRINT 存在2007年5月7号以后的订单 ELSEPRINT 不存在2007年5月7号以后的订单 程序清单2 IFexists SELECT FROMP orderWHERE订货日期 2007 05 07 PRINT 存在2007年5月7号以后的订单 ELSEPRINT 不存在2007年5月7号以后的订单 三 WHILE循环 WHILE语句用于创建一个循环 语法 1 WHILE2 WHILEBEGINEND 例21 计算并输出1 2 3 100表达式的和 程序清单 DECLARE sumintDECLARE iintSELECT sum 0SELECT i 1WHILE i 100BEGINSET sum sum iSET i i 1ENDPRINT sum 例22 分析下列程序的功能 DECLARE sumint nint iintSELECT n 0 i 10 WHILE i 10and i 30 BEGINIF i 3 0BEGINPRINT iSET i i 1SET n n 1CONTINUEENDIF i 22BREAKSET i i 1ENDPRINT 有 convert char 2 n 个数能被3整除 例22 程序功能 该程序用于输出能被3整除的整数 其中用了CONTINUE语句和BREAK语句 当程序执行到 i为22时 直接跳出循环 故其执行结果如下 12151821有4个数能被3整除 四 GOTO语句和RETURN语句 GOTO语句用于让SQLServer跳转到SQL代码中的指定标签处 标签设计成如下形式 语法 GOTO标签名标签名 例23 分析以下语句的执行结果 DECLARE sumint xint yintSELECT x 9 y 10SELECT sum x yGOTOlabel1SET sum sum 100label1 PRINT x y的值为 convert char 3 sum 例24 使用循环计算所给的局部变量的变化值declare rint sint tintselect r 2 s 3print rwhile r 5beginselect t 100 r sprint tselect r r 2Select s 1end 五 WAITFOR语句 功能 指定触发语句块 存储过程或事务执行的时间 时间间隔或事件 语法WAITFOR DELAY time TIME time 参数 DELAY 指示一直等到指定的时间过去 最长可达24小时 time 要等待的时间 可以按datetime数据可接受的格式指定time 也可以用局部变量指定此参数 不能指定日期 TIME 指示SQLServer等待到指定时间 使用WAITFORdelay 例25 等待30秒后执行select语句UsecompanyinfogoWAITFORdelay 00 00 30 Select fromproduct 使用WAITFORtime 例26 等到11点12分后才执行select语句UsecompanyinfogoWAITFORtime 11 12 00 Slect fromproduct 六 RETURN语句 用于无条件地终止一个查询 存储过程或者批处理 此时位于RETURN语句之后的程序将不会被执行 语法 RETURN integer expression 参数integer expression为返回的整型值 存储过程可以给调用过程或应用程序返回整型值 拓展知识系统内置函数 在Transact SQL语言中 函数被用来执行一些特殊的运算以支持SQLServer的标准命令 Transact SQL编程语言提供了三种函数 标量函数 标量函数用于对传递给它的一个或者多个参数值进行处理和计算 并返回一个单一的值 聚合函数 聚合函数用于对一组值执行计算并返回一个单一的值 行集函数 行集函数可以在Transact SQL语句中当作表引用 一 系统函数 系统函数用于返回有关SQLServer系统 用户 数据库和数据库对象的信息 系统函数可以让用户在得到信息后 使用条件语句 根据返回的信息进行不同的操作 与其它函数一样 可以在SELECT语句的SELECT和WHERE子句以及表达式中使用系统函数 例 selectDB N
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 象山店面设计知识培训课件
- 2025版商铺租赁合同范本下载全攻略
- 2025办公室装修改造项目环保壁纸材料选用合同
- 2025版特色主题团建活动设计与执行合同范本
- 2025年度婚庆服务合同范本
- 2025版粉末涂料采购合同范本
- 2025年度区块链技术应用合作协议下载
- 2025年度物流配送合作保证金合同
- 2025年度日用品供应链金融服务合同
- 2025年购买带产权车位应签署何种合同
- 2025-2030中医药大健康产业链整合与投资机会分析报告
- 2025年第九届“学宪法、讲宪法”知识竞赛题库及答案(中小学组)
- 2025年大型上市公司合同管理与合规制度
- 送瘟神教学课件
- 2025四川省公安厅招聘辅警(448人)笔试备考题库及答案解析
- 2025年内容分发网络(CDN)行业当前市场规模及未来五到十年发展趋势报告
- 故宫博物馆院课件
- 豌豆栽培种植技术
- 2025年低压电工理论考试1000题(附答案)
- 2025年运城社区专职工作人员招聘真题
- 钢材供货方案及保证措施范本
评论
0/150
提交评论