进销存系统的流程控制.ppt_第1页
进销存系统的流程控制.ppt_第2页
进销存系统的流程控制.ppt_第3页
进销存系统的流程控制.ppt_第4页
进销存系统的流程控制.ppt_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五章构建进销存管理系统的流程控制 计算机应用教研室 教学内容 1 变量和常量声明和赋值2 用户自定义数据类型3 逻辑运算符的使用4 常用系统函数介绍 5 2 1常量根据常量值的不同类型 常量分为字符串常量 整型常量 实型常量 日期时间常量 货币常量 唯一标识常量 各类常量举例说明如下 1 字符串常量字符串常量分为ASCII字符串常量和Unicode字符串常量 1 ASCII字符串常量 ASCII字符串常量是用单引号括起来 由ASCII字符构成的符号串 ASCII字符串常量举例如下 China Howdoyou O Bbaar 如果单引号中的字符串包含引号 可以使用两个单引号来表示嵌入的单引号 5 1常量和变量 2 Unicode字符串常量 Unicode字符串常量与ASCII字符串常量相似 但它前面有一个N标识符 N代表SQL 92标准中的国际语言NationalLanguage N前缀必须为大写字母 Unicode字符串常量举例如下 N China N Howdoyou Unicode数据中的每个字符用两个字节存储 而每个ASCII字符用一个字节存储 5 1常量和变量 2 整型常量按照不同表示方式 整型常量又分为二进制整型常量 十六进制整型常量和十进制整型常量 十六进制整型常量的表示 前辍0 x后跟十六进制数字串 十六进制常量举例 0 xEBF0 x69048AEFDD010E0 x 空十六进制常量 二进制整型常量的表示 即数字0或1 并且不使用引号 如果使用一个大于1的数字 它将被转换为1 十进制整型常量即不带小数点的十进制数 例如 1894 2 145345234 2147483648 5 1常量和变量 4 日期时间常量日期时间常量 用单引号将表示日期时间的字符串括起来构成 SQLServer可以识别如下格式的日期和时间 字母日期格式 如 April20 2000 数字日期格式 如 4 15 1998 1998 04 15 未分隔的字符串格式 如 20001207 以下是时间常量的例子 14 30 24 04 24 PM 以下是日期时间常量的例子 April20 200014 30 24 5 1常量和变量 1 系统数据类型系统数据类型又称为基本数据类型 详细地介绍了系统数据类型 此处不再赘述 2 用户自定义数据类型用户自定义数据类型可看做系统数据类型的别名 用户自定义数据类型并不是真正的数据类型 它只是提供了一种提高数据库内部元素和基本数据类型之间一致性的机制 5 2数据类型 1 变量变量名必须是一个合法的标识符 1 标识符 在SQLServer中标识符分为两类 常规标识符 以ASCII字母 Unicode字母 下划线 或 开头 后续可跟一个或若干个ASCII字符 Unicode字符 下划线 美元符号 或 但不能全为下划线 或 注意 常规标识符不能是T SQL的保留字 常规标识符中不允许嵌入空格或其他特殊字符 5 3变量的声明及赋值 2 变量的分类全局变量 全局变量由系统提供且预先声明 通过在名称前加两个 来区别于局部变量 T SQL全局变量作为函数引用 例如 ERROR返回执行的上一个T SQL语句的错误号 CONNECTIONS返回自上次启动SQLServer以来连接或试图连接的次数 全局变量的意义及使用请参考附录B 局部变量 局部变量用于保存单个数据值 例如 保存运算的中间结果 作为循环变量等 当首字母为 时 表示该标识符为局部变量名 当首字母为 时 此标识符为一临时数据库对象名 若开头含一个 表示局部临时数据库对象名 若开头含两个 表示全局临时数据库对象名 5 3变量的声明及赋值 2 局部变量的使用 1 局部变量的定义与赋值 定义 DECLARE 变量名数据类型n 表示可定义多个变量 各变量间用逗号隔开 局部变量的赋值 当声明局部变量后 可用SET或SELECT语句为其赋值 5 3变量的声明及赋值 例5 2 创建局部变量 var1 var2并赋值 然后输出变量的值 DECLARE var1char 10 var2char 30 SET var1 中国 一个SET语句只能为一个变量赋值 SET var2 var1 是一个伟大的国家 SELECT var1 var2 5 3变量的声明及赋值 例5 3 创建一个名为sex的局部变量 并在SELECT语句中使用该局部变量查找表学生中所有男同学的学号 姓名 USEStuManagerCGODECLARE sexchar 2 SET sex 男 SELECT学号 姓名FROM学生WHERE性别 sex 5 3变量的声明及赋值 例5 4 使用查询为变量赋值 DECLARE studentchar 8 SET student SELECT姓名FROM学生WHERE学号 090015101 SELECT student 5 3变量的声明及赋值 用SELECT语句赋值 语法格式 SELECT 变量名 表达式或值注意事项SELECT 变量名通常用于将单个值返回到变量中 如果如果表达式返回多个值 此时将返回的最后一个值赋给变量 如果SELECT语句没有返回行 变量将保留当前值 如果表达式是不返回值的标量子查询 则将变量设为NULL 一个SELECT语句可以初始化多个局部变量 5 3变量的声明及赋值 例5 5 使用SELECT语句为局部变量赋值 DECLARE var1nvarchar 30 SELECT var1 刘丰 SELECT var1AS NAME 5 3变量的声明及赋值 例5 6 为局部变量赋空值 DECLARE var1nvarchar 30 SELECT var1 刘丰 SELECT var1 SELECT姓名FROM学生WHERE学号 089999 SELECT var1AS NAME 5 3变量的声明及赋值 例5 10 查询成绩高于 张伟 最高成绩的学生姓名 课程名称及成绩 selecta 学号 姓名 c 课程名称称 成绩from学生ainnerjoin学生成绩bona 学号 b 学号innerjoin课程conc 课程编号 b 课程编号where成绩 all select成绩from学生ainnerjoin学生成绩bona 学号 b 学号and姓名 张伟 5 4逻辑运算符的使用 练习1 查询成绩高于 大学英语 最高成绩的学生姓名 课程名称及成绩 5 4逻辑运算符的使用 4 EXISTS与NOTEXISTS的使用 语法格式 EXISTSsubquery用于检测一个子查询的结果是否不为空 若是则运算结果为真 否则为假 subquery用于代表一个受限的SELECT语句 EXISTS子句的功能有时可用IN 而NOTEXISTS的作用与EXISTS正相反 5 4逻辑运算符的使用 例5 14 查询上交日期为2010 03 17 交了作业的学生的姓名select姓名from学生awhereexists select from作业binnerjoin作业明细conb 作业id c 作业idwhere上交日期 2010 3 17 anda 学号 c 学号 5 4逻辑运算符的使用 5 4逻辑运算符的使用 练习1 查找同时选修程序设计基础和java基础的学生的学号和姓名 通过运算符 实现两个字符串的连接运算 例5 15 多个字符串的连接 SELECT 学号 姓名 AS学号及姓名FROM学生 5 4字符串连接运算符 5 5常用系统函数介绍 1 字符串函数 5 5常用系统函数介绍 2 数学函数 5 5常用系统函数介绍 3 日期函数及转换函数 5 5常用系统函数介绍 例 获得当前服务器时间Declare currentDatedatetimeSelect currentDate getdate Select currentDate 5 5常用系统函数介绍 例 获得当前服务器时间 并以YYYY MM DD形式显示Declare currentDatedatetimeSelect currentDate getdate Selectconvert char 10 currentdate 111 Selectconvert char 10 currentdate 121 Selectconvert char 10 currentdate 101 5 5常用系统函数介绍 例 将1 3转换为decimal 6 2 结果为0 33Selectconvert decimal 6 2 1 1 00 3 5 5常用系统函数介绍 例 计算距离软考还有多少天 软考日期为2010 5 23selectdatediff day getdate 2010 5 23 例 计算距离元旦还有多少个月selectdatediff month getdate 2011 1 1 例 计算毕业还有几年 2012 7 30 selectdatediff year getdate 2012 7 30 5 5常用系统函数介绍 例 计算昨天 明天 后天所对应的年月日selectdateadd day 1 getdate as昨天 dateadd day 1 getdate as明天 dateadd day 2 getdate as后天 5 5常用系统函数介绍 练习 1 计算当前月份的最后一天2 计算当前月份有多少天 实战演练 1 统计学生表中 姓氏排名前5位同学的姓氏 人数2 统计学生信息 按姓名的字数统计3 声明变量 str str chongQingZdsoft 分别转换为小写字符和大写字符4 声明变量 str str WWW 去掉首位空格5 声明变量 var var为当前日期加5天 显示 var 在设计程序时 常常需要利用各种流程控制语句 改变计算机的执行流程以满足程序设计的需要 在SQLServer中提供了如表5 11所示的流程控制语句 5 6流程控制语句 在T SQL中可以定义BEGIN END语句块 当要执行多条T SQL语句时 就需要使用BEGIN END将这些语句定义成一个语句块 作为一组语句来执行 语法格式如下 BEGIN sql statement statement block END关键字BEGIN是T SQL语句块的起始位置 END标识同一个T SQL语句块的结尾 sql statement是语句块中的T SQL语句 BEGIN END可以嵌套使用 statement block表示使用BEGIN END定义的另一个语句块 例如 USEStuManagerCGOBEGINSELECT FROM学生SELECT FROM课程END 5 61流程控制语句 BEGIN END 在程序中如果要对给定的条件进行判定 当条件为真或假时分别执行不同的T SQL语句 可用IF ELSE语句实现 语法格式 IFBoolean expression 条件表达式 sql statement statement block 条件表达式为真时执行 ELSE sql statement statement block 条件表达式为假时执行 由上述语法格式可看出 条件语句分带ELSE部分和不带ELSE部分两种使用形式 1 带ELSE部分 IF条件表达式A T SQL语句或语句块 ELSEB T SQL语句或语句块 当条件表达式的值为真时执行A 然后执行IF语句的下一语句 条件表达式的值为假时执行B 然后执行IF语句的下一语句 5 61流程控制语句 IF ELSE 2 不带ELSE部分 IF条件表达式A T SQL语句或语句块 当条件表达式的值为真时执行A 然后执行IF语句的下一条语句 当条件表达式的值为假时直接执行IF语句的下一条语句 IF语句的执行流程如图5 3所示 图5 3IF语句的执行流程 5 61流程控制语句 IF ELSE 例5 17 如果 程序设计基础 课程的平均成绩高于75分 则显示 平均成绩高于75分 IF SELECTAVG 成绩 FROM学生 学生成绩 课程WHERE学生 学号 学生成绩 学号AND学生成绩 课程编号 课程 课程编号AND课程 课程名称 程序设计基础 75SELECT 平均成绩低于75 ELSESELECT 平均成绩高于75 5 61流程控制语句 IF ELSE 例5 18 IF ELSE语句的嵌套使用 IF SELECTAVG 成绩 FROM学生 学生成绩 课程WHERE学生 学号 学生成绩 学号AND学生成绩 课程编号 课程 课程编号AND课程 课程名称 程序设计基础 75SELECT 平均成绩高于75 5 61流程控制语句 IF ELSE 5 61流程控制语句 IF ELSE 例 判断 学生 表是否存在 如果存在删除学生表 否则创建学生表ifexists select fromsysobjectswherename 学生 droptable学生createtable学生 学号intprimarykey 姓名varchar 10 CASE语句在4 2 1小节介绍选择列的时候已经涉及过 这里介绍CASE语句在流程控制中的用法 与之前略有不同 语法格式 CASEinput expressionWHENwhen expressionTHENresult expression n ELSEelse result expression END或者CASEWHENBoolean expressionTHENresult expression n ELSEelse result expression END 5 62流程控制语句 Case 第一种格式中input expression是要判断的值或表达式 接下来是一系列的WHEN THEN块 每一块的when expression参数指定要与input expression比较的值 如果为真 就执行result expression中的T SQL语句 如果前面的每一块都不匹配 就会执行ELSE块指定的语句 CASE语句最后以END关键字结束 第二种格式中CASE关键字后面没有参数 在WHEN THEN块中 Boolean expression指定了一个比较表达式 表达式为真时执行THEN后面的语句 与第一种格式相比 这种格式能够实现更为复杂的条件判断 使用起来更方便 例5 19 使用第一种格式的CASE语句 根据性别值输出 男 或 女 SELECT学号 姓名 专业 SEX CASE性别WHEN1THEN 男 WHEN0THEN 女 ELSE 无 ENDFROM学生WHERE总学分 48 5 62流程控制语句

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论