[精选]进销存系统的流程控制

上传人:我**** 文档编号:183382006 上传时间:2021-06-03 格式:PPTX 页数:46 大小:186.19KB
返回 下载 相关 举报
[精选]进销存系统的流程控制_第1页
第1页 / 共46页
[精选]进销存系统的流程控制_第2页
第2页 / 共46页
[精选]进销存系统的流程控制_第3页
第3页 / 共46页
[精选]进销存系统的流程控制_第4页
第4页 / 共46页
[精选]进销存系统的流程控制_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《[精选]进销存系统的流程控制》由会员分享,可在线阅读,更多相关《[精选]进销存系统的流程控制(46页珍藏版)》请在金锄头文库上搜索。

1、第五章 构建进销存管理系统的流程控制,计算机应用教研室,教学内容,1、变量和常量声明和赋值 2、用户自定义数据类型 3、逻辑运算符的使用 4、常用系统函数介绍,5.2.1 常量 根据常量值的不同类型,常量分为字符串常量、整型常量、实型常量、日期时间常量、货币常量、唯一标识常量。各类常量举例说明如下。 1字符串常量 字符串常量分为ASCII字符串常量和Unicode字符串常量。 (1)ASCII字符串常量。ASCII字符串常量是用单引号括起来,由ASCII字符构成的符号串。 ASCII字符串常量举例如下: China How do you! OBbaar /*如果单引号中的字符串包含引号,可以使

2、用两个单引号来表示嵌入的单引号。*/,5.1 常量和变量,(2)Unicode 字符串常量。Unicode 字符串常量与ASCII字符串常量相似,但它前面有一个N标识符(N代表 SQL-92标准中的国际语言National Language),N前缀必须为大写字母。 Unicode字符串常量举例如下: NChina NHow do you! Unicode 数据中的每个字符用两个字节存储,而每个ASCII字符用一个字节存储。,5.1 常量和变量,2整型常量 按照不同表示方式,整型常量又分为二进制整型常量、十六进制整型常量和十进制整型常量。 十六进制整型常量的表示:前辍 0 x 后跟十六进制数字

3、串。 十六进制常量举例: 0 xEBF 0 x69048AEFDD010E 0 x /*空十六进制常量*/ 二进制整型常量的表示:即数字 0 或1,并且不使用引号。如果使用一个大于 1 的数字,它将被转换为1。 十进制整型常量即不带小数点的十进制数,例如, 1894,2,+145345234,-2147483648,5.1 常量和变量,4日期时间常量 日期时间常量:用单引号将表示日期时间的字符串括起来构成。SQL Server可以识别如下格式的日期和时间。 字母日期格式,如April 20, 2000; 数字日期格式,如4/15/1998,1998-04-15; 未分隔的字符串格式,如2000

4、1207; 以下是时间常量的例子: 14:30:24 04:24:PM 以下是日期时间常量的例子: April 20, 2000 14:30:24,5.1 常量和变量,1系统数据类型 系统数据类型又称为基本数据类型。详细地介绍了系统数据类型,此处不再赘述。 2用户自定义数据类型 用户自定义数据类型可看做系统数据类型的别名。 用户自定义数据类型并不是真正的数据类型,它只是提供了一种提高数据库内部元素和基本数据类型之间一致性的机制。,5.2 数据类型,1变量 变量名必须是一个合法的标识符。 (1)标识符。在SQL Server中标识符分为两类。 常规标识符:以ASCII字母、Unicode字母、下

5、划线(_)、或#开头,后续可跟一个或若干个ASCII字符、Unicode字符、下划线(_)、美元符号($)、或#,但不能全为下划线(_)、或#。 注意:常规标识符不能是T-SQL的保留字。常规标识符中不允许嵌入空格或其他特殊字符。,5.3 变量的声明及赋值,(2)变量的分类 全局变量:全局变量由系统提供且预先声明,通过在名称前加两个“”来区别于局部变量。T-SQL全局变量作为函数引用。例如,ERROR返回执行的上一个T-SQL语句的错误号;CONNECTIONS返回自上次启动SQL Server以来连接或试图连接的次数。全局变量的意义及使用请参考附录B。 局部变量:局部变量用于保存单个数据值。

6、例如,保存运算的中间结果,作为循环变量等。 当首字母为“”时,表示该标识符为局部变量名;当首字母为“#”时,此标识符为一临时数据库对象名,若开头含一个“#”,表示局部临时数据库对象名;若开头含两个“#”,表示全局临时数据库对象名。,5.3 变量的声明及赋值,2局部变量的使用 (1)局部变量的定义与赋值。 定义: DECLARE 变量名 数据类型 n:表示可定义多个变量,各变量间用逗号隔开。 局部变量的赋值。当声明局部变量后, 可用SET或SELECT语句为其赋值。,5.3 变量的声明及赋值,【例5.2】 创建局部变量var1、var2并赋值,然后输出变量的值。 DECLARE var1 cha

7、r(10) ,var2 char(30) SET var1=中国/*一个SET语句只能为一个变量赋值*/ SET var2=var1+是一个伟大的国家 SELECT var1, var2,5.3 变量的声明及赋值,【例5.3】 创建一个名为sex的局部变量,并在SELECT语句中使用该局部变量查找表学生中所有男同学的学号、姓名。 USE StuManagerC GO DECLARE sex char(2) SET sex=男 SELECT 学号, 姓名 FROM 学生 WHERE 性别=sex,5.3 变量的声明及赋值,【例5.4】 使用查询为变量赋值。 DECLARE student cha

8、r(8) SET student= (SELECT 姓名 FROM 学生 WHERE 学号= 090015101) SELECT student,5.3 变量的声明及赋值,用SELECT语句赋值: 语法格式: SELECT 变量名=表达式或值 注意事项 SELECT 变量名 通常用于将单个值返回到变量中。如果如果表达式返回多个值,此时将返回的最后一个值赋给变量。 如果SELECT 语句没有返回行,变量将保留当前值。 如果表达式是不返回值的标量子查询,则将变量设为 NULL。 一个SELECT语句可以初始化多个局部变量。,5.3 变量的声明及赋值,【例5.5】 使用SELECT语句为局部变量赋值

9、。 DECLARE var1 nvarchar(30) SELECT var1 =刘丰 SELECT var1 AS NAME,5.3 变量的声明及赋值,【例5.6】 为局部变量赋空值。 DECLARE var1 nvarchar(30) SELECT var1 = 刘丰 SELECT var1 = ( SELECT 姓名 FROM 学生 WHERE 学号= 089999 ) SELECT var1 AS NAME,5.3 变量的声明及赋值,【例5.10】 查询成绩高于“张伟”最高成绩的学生姓名、课程名称及成绩。 select a.学号,姓名,c.课程名称称,成绩 from 学生 a inne

10、r join 学生成绩 b on a.学号=b.学号 inner join 课程 c on c.课程编号=b.课程编号 where 成绩all( select 成绩 from 学生 a inner join 学生成绩 b on a.学号=b.学号 and 姓名=张伟),5.4 逻辑运算符的使用,练习 1、查询成绩高于“大学英语”最高成绩的学生姓名、课程名称及成绩。,5.4 逻辑运算符的使用,(4)EXISTS与NOT EXISTS的使用。 语法格式: EXISTS subquery 用于检测一个子查询的结果是否不为空,若是则运算结果为真,否则为假。subquery用于代表一个受限的SELECT

11、语句。EXISTS子句的功能有时可用IN,而NOT EXISTS 的作用与EXISTS正相反。,5.4 逻辑运算符的使用,【例5.14】 查询上交日期为2010-03-17,交了作业的学生的姓名 select 姓名 from 学生 a where exists ( select * from 作业 b inner join 作业明细 c on b.作业id=c.作业id where 上交日期=2010-3-17 and a.学号=c.学号 ),5.4 逻辑运算符的使用,5.4 逻辑运算符的使用,练习 1、查找同时选修程序设计基础和java基础的学生的学号和姓名,通过运算符“+”实现两个字符串的

12、连接运算。 【例5.15】多个字符串的连接。 SELECT (学号+ , + 姓名) AS 学号及姓名 FROM 学生,5.4 字符串连接运算符,5.5 常用系统函数介绍,1、字符串函数,5.5 常用系统函数介绍,2、数学函数,5.5 常用系统函数介绍,3、日期函数及转换函数,5.5 常用系统函数介绍,【例】获得当前服务器时间 Declare currentDate datetime Select currentDate=getdate() Select currentDate,5.5 常用系统函数介绍,【例】获得当前服务器时间,并以YYYY-MM-DD形式显示 Declare current

13、Date datetime Select currentDate=getdate() Select convert(char(10),currentdate,111) Select convert(char(10),currentdate,121) Select convert(char(10),currentdate,101),5.5 常用系统函数介绍,【例】将1/3转换为decimal(6,2),结果为0.33 Select convert(decimal(6,2),1*1.00/3),5.5 常用系统函数介绍,【例】计算距离软考还有多少天,软考日期为2010-5-23 select da

14、tediff(day,getdate(),2010-5-23) 【例】计算距离元旦还有多少个月 select datediff(month,getdate(),2011-1-1) 【例】计算毕业还有几年(2012-7-30) select datediff(year,getdate(),2012-7-30),5.5 常用系统函数介绍,【例】计算昨天,明天,后天所对应的年月日 select dateadd(day,-1,getdate() as 昨天 ,dateadd(day,1,getdate() as 明天 ,dateadd(day,2,getdate() as 后天,5.5 常用系统函数介

15、绍,【练习】 1、计算当前月份的最后一天 2、计算当前月份有多少天,实战演练,在设计程序时,常常需要利用各种流程控制语句,改变计算机的执行流程以满足程序设计的需要。在SQL Server中提供了如表5.11所示的流程控制语句。,5.6 流程控制语句,在T-SQL中可以定义BEGINEND语句块。当要执行多条T-SQL语句时,就需要使用BEGINEND将这些语句定义成一个语句块,作为一组语句来执行。语法格式如下: BEGIN sql_statement | statement_block END 关键字BEGIN是T-SQL语句块的起始位置,END标识同一个T-SQL语句块的结尾。sql_sta

16、tement是语句块中的T-SQL语句。BEGINEND可以嵌套使用,statement_block表示使用BEGINEND定义的另一个语句块。例如, USE StuManagerC GO BEGIN SELECT * FROM 学生 SELECT * FROM 课程 END,5.61 流程控制语句- BEGINEND,在程序中如果要对给定的条件进行判定,当条件为真或假时分别执行不同的 T-SQL 语句,可用IFELSE语句实现。 语法格式: IF Boolean_expression /*条件表达式*/ sql_statement | statement_block /*条件表达式为真时执行*/ ELSE sql_statement | statement_block /*条件表达式为假时执行*/ 由上述语法格式可看出,条件语句分带ELSE部分和不带ELSE部分两种使用形式。 (1)带ELSE部分: IF 条件表达式 A /* T-SQL语句或语句块*/ ELSE B /*T-SQL语句或语句块*/ 当条件表达式的值为真时执行A,然后执行IF语句的下一语句;条件表达式的值为假时执行B

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号