第6章 Transact-SQL程序设计 6.1 注释 6.2 变量 6.3 运算符 6.4 函数 6.5 流程控制语句.

Slides:



Advertisements
Similar presentations
第5章 T-SQL语言 5.1 T-SQL语言简介 5.2 常量、变量与数据类型 5.3 运算符与表达式 5.4 流程控制语句
Advertisements

SQL Server数据库设计基础 ——基于SQL Server 2000 陈志煌 集美大学教务处.
第5章 T-SQL语言 5.1 SQL语言与T-SQL语言 5.2 常量、变量与数据类型 5.3 运算符与表达式 5.4 流程控制语句
数据库原理及应用 第8章 函数 8.1 系统内置函数 8.2 自定义函数.
目 录 第 1 章 数据库技术基础 第 2 章 SQL Server基础 第 3 章 数据库管理 第 4 章 查询和视图
SQL的简单查询.
第5章 关系数据库标准语言SQL 主讲:张丽芳.
第4章 條件判斷與迴圈 Java 2 程式設計入門與應用.
第5章 索引及视图操作 数据库原理应用与实践 SQL SERver2014(第2版) 主编 贾铁军 科学出版社 编著 陈国秦 万程 邢一鸣
数据库技术 实践.
第8章 SELECT敘述的基本查詢 8-1 SELECT查詢指令 8-2 SELECT子句 8-3 FROM子句 8-4 WHERE子句
Tool Command Language --11级ACM班 金天行.
第14章 預存程序 14-1 預存程序的基礎 14-2 建立與執行預存程序 14-3 預存程序的參數傳遞 14-4 預存程序的傳回值
Chap 13 視界與資料庫程式設計.
Oracle数据库 Oracle 子程序.
第五讲 利用视图进行查询优化.
9 SELECT敘述的進階查詢 9-1 SQL的多資料表查詢 9-2 合併查詢 9-3 集合運算查詢 9-4 子查詢
第 8 章 資料的 新增、修改與刪除.
第 14 章 預存程序.
EBNF 请用扩展的 BNF 描述 C语言里语句的结构; 请用扩展的 BNF 描述 C++语言里类声明的结构;
C 程式設計— 控制敘述 台大資訊工程學系 資訊系統訓練班.
Transact-SQL 語言設計教學.
課程名稱:資料庫系統 授課老師:李春雄 博士
第八章 菜单设计 §8.1 Visual FoxPro 系统菜单 §8.2 为自己的程序添加菜单 §8.3 创建快捷菜单.
SQL Injection.
走进编程 程序的顺序结构(二).
SQL SERVER 一些经典语句 1.
实验4:PL-SQL编程 1.实验目的 2.实验原理 PL/SQL是一种过程化语言,属于第三代语言,本实验在与熟悉使用PL/SQL编程.
医院职工公费医疗系统.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第3章 关系数据库标准语言SQL.
1.2 MATLAB变量表达式与数据格式 MATLAB变量与表达式 MATLAB的数据显示格式
第7章 Transact-SQL程序设计 本章导读:
iRepor报表设计基础 IReport安装 普通实体报表 数据结果集报表 工作流主从报表 饼状图报表 柱状图,曲线图报表 条形码报表
第二章 Java语言基础.
数据库应用技术 SQL Server 2005.
第4章 PHP流程控制语句.
1.3 C语言的语句和关键字 一、C语言的语句 与其它高级语言一样,C语言也是利用函数体中的可执行 语句,向计算机系统发出操作命令。按照语句功能或构成的不 同,可将C语言的语句分为五类。 goto, return.
資料庫系統 李翊豪 2017/12/21 Reference
程式結構&語法.
4.2 视图 (1) 视图是一个虚拟表,其内容来自对表查询的基础上。
第 15 章 自訂函數與順序物件.
SQL查询语句 蔡海洋.
第10章 触发器的创建和使用 10.1 触发器概述 10.2 创建触发器 10.3 修改触发器 10.4 删除触发器.
17 交易處理與鎖定 17-1 交易的基礎 17-2 交易處理 17-3 並行控制 17-4 資料鎖定 17-5 死結問題.
姚金宇 MIT SCHEME 使用说明 姚金宇
第三章 SQL Server数据管理.
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
第4章 表的创建与维护 4.1 数据类型 4.2 数据完整性约束 4.3 创建数据表 4.4 修改数据表 4.5 删除数据表.
第3章 JavaScript基本语句.
第4章 Excel电子表格制作软件 4.4 函数(一).
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
第九节 赋值运算符和赋值表达式.
第9章 存储过程的创建和使用 9.1 存储过程简介 9.2 创建存储过程 9.3 修改存储过程 9.4 删除存储过程 9.5 执行存储过程.
3.16 枚举算法及其程序实现 ——数组的作用.
8 SELECT敘述的基本查詢 8-1 SELECT查詢指令 8-2 SELECT子句 8-3 FROM子句 8-4 WHERE子句
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
ASP.NET实用教程 清华大学出版社 第4章 C#编程语言 教学目标 教学重点 教学过程 2019年5月5日.
第9章 视 图 教学提示:用户在查询数据库中的数据时,除了直接查看数据库中的表中的数据以外,还可以通过视图来查看表中的数据,也就是说,视图为用户提供了另外一种查看表中的数据的方式。 视图是一种虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自于定义视图的查询所引用的表,并且在引用视图时动态生成。
問題解決與流程圖 高慧君 台北市立南港高中 2006年12月22日.
学习目标 1、了解基本运算符 2、运算符优先级.
第二章 Java基本语法 讲师:复凡.
第二章 Java基本语法 讲师:复凡.
11 檢視表的建立 11-1 檢視表的基礎 11-2 建立檢視表 11-3 修改與刪除檢視表 11-4 編輯檢視表的內容.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
WEB程序设计技术 数据库操作.
第4章 数据查询.
C语言基本语句 判断循环.
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
顺序结构程序设计 ——关于“字符串”和数值.
Presentation transcript:

第6章 Transact-SQL程序设计 6.1 注释 6.2 变量 6.3 运算符 6.4 函数 6.5 流程控制语句

掌握Transact-SQL的语法结构; 学会Transact-SQL变量和函数的用法; 了解Transact-SQL各种控制结构的区别 能力目标   掌握Transact-SQL的语法结构;   学会Transact-SQL变量和函数的用法;   了解Transact-SQL各种控制结构的区别 和用法。

态度目标   团队精神;   态度积极;   任务按时完成;   出勤。

掌握Transact-SQL的语法结构。 难点: 学会使用Transact-SQL语言编写程序。 重点难点   重点:   掌握Transact-SQL的语法结构。   难点:   学会使用Transact-SQL语言编写程序。

6.1 注释 注释是表示用户提供的说明内容。有两种格式: 单行注释:使用两个联在一起的减号“--”作为注 释内容标记,其后为注释内容。 6.1 注释   注释是表示用户提供的说明内容。有两种格式:   单行注释:使用两个联在一起的减号“--”作为注 释内容标记,其后为注释内容。   多行注释:使用“/*注释内容*/”格式。可以将注 释插入单独行中或嵌套(只限“--”)在 Transact-SQL 命令行的末端或者Transact-SQL语句中。服务器不对 注释进行解释。   注意:不要将GO命令包含在注释中。

6.2 变量 1. 局部变量定义 DECLAER {@变量名称 数据类型}|{@游标变量名称 CURSOR} {,…n} 6.2 变量   1. 局部变量定义 DECLAER {@变量名称 数据类型}|{@游标变量名称 CURSOR} {,…n}   2. 局部变量的赋值   使用SET命令或SELECT命令对局部变量赋值。 SET {@变量名称=表达式} 或 SELECT {@变量名称=表达式} [,…n]   3. 系统全局变量   全局变量是由系统提供且预先声明的变量,通过 在名称前保留两个@@符号区别于局部变量(@@IDENTITY , @@ERROR )

6.3 运算符 1. 算术运算符 +,-,*,/,%(模余) 2. 赋值运算符 = 3. 按位运算符 6.3 运算符   1. 算术运算符   +,-,*,/,%(模余)   2. 赋值运算符   =   3. 按位运算符   &(按位与运算)、|(按位或运算)和^(按位异或运算   4. 比较运算符   =、>、<、>=、<=、<>、!=、!<、!>

6.3 运算符   5. 逻辑运算符

6.3 运算符 6. 字符串串联运算符 字符串串联运算符允许通过加号(+)进行字 符串串联。 6.3 运算符   6. 字符串串联运算符   字符串串联运算符允许通过加号(+)进行字 符串串联。   例如:print ‘abc’+‘123’的输出结果是abc123。   7. 一元运算符   +(数值为正)、-(数值为负)和~(返回数 值的补数即按位NOT)

6.4 函数 1. 聚合函数 AVG([ ALL | DISTINCT ] expression) ——返回平均值 6.4 函数   1. 聚合函数 AVG([ ALL | DISTINCT ] expression) ——返回平均值 COUNT ( { [ ALL | DISTINCT ] expression } | * ) ) ——返回统计记录行数 MAX|MIN( [ ALL | DISTINCT ] expression ) ——返回最大|最小值 SUM ( [ ALL | DISTINCT ] expression ) ——返回汇总和

6.4 函数 2. 标量函数 GETDATE ( ) ——获取服务器系统日期时间 3. 数学函数 6.4 函数   2. 标量函数 GETDATE ( ) ——获取服务器系统日期时间   3. 数学函数 ROUND( numeric_expression , length [ , function ] )   4. 字符串函数 SUBSTRING ( expression , start , length )

6.4 函数 5. 系统函数 CAST ( expression AS data_type ) ——类型转换 6.4 函数   5. 系统函数 CAST ( expression AS data_type ) ——类型转换 CONVERT ( data_type [ ( length ) ] , expression [ , style ] ) CURRENT_USER ——返回当前数据库用户 HOST_NAME() ——返回工作站名称

6.4 函数 【案例6.1】数据类型转换函数CAST和CONVERT 的用法,将整数转换为字符串。 ——使用CAST 6.4 函数 【案例6.1】数据类型转换函数CAST和CONVERT 的用法,将整数转换为字符串。 ——使用CAST SELECT SUBSTRING(emp_title, 1, 10) AS 职位, emp_salary AS 薪水 FROM employees WHERE CAST(emp_salary AS char(8)) LIKE '3%‘ ——使用 CONVERT WHERE CONVERT(char(20), emp_salary) LIKE '3%'

6.4 函数 6. 用户自定义函数 语法格式1:标量函数(Scalar Functions) 6.4 函数   6. 用户自定义函数 语法格式1:标量函数(Scalar Functions) CREATE FUNCTION [ schema_name. ] function_name ( [ { @parameter_name [ AS ][ type_schema_name. ]  parameter_data_type     [ = default ] }     [ ,...n ]  ]) RETURNS return_data_type     [ WITH <function_option> [ ,...n ] ]     [ AS ]     BEGIN                 function_body         RETURN scalar_expression     END[ ; ]

6.4 函数 6. 用户自定义函数 语法格式2:内嵌表值函数 (Inline Table-Valued Functions) 6.4 函数   6. 用户自定义函数 语法格式2:内嵌表值函数 (Inline Table-Valued Functions) CREATE FUNCTION [ schema_name. ] function_name ( [ { @parameter_name [ AS ] [ type_schema_name. ]  parameter_data_type    [ = default ] }    [ ,...n ]  ]) RETURNS TABLE     [ WITH <function_option> [ ,...n ] ]     [ AS ]     RETURN [ ( ] select_stmt [ ) ] [ ; ]

6.4 函数 6. 用户自定义函数 语法格式3:多语句表值函数 6.4 函数   6. 用户自定义函数 语法格式3:多语句表值函数 (Multistatement Table-Valued Functions) REATE FUNCTION [ schema_name. ] function_name ( [ { @parameter_name [ AS ] [ type_schema_name. ]  parameter_data_type   [ = default ] }    [ ,...n ]  ]) RETURNS @return_variable TABLE < table_type_definition >     [ WITH <function_option> [ ,...n ] ]     [ AS ]     BEGIN                 function_body         RETURN     END[ ; ]

6.5 流程控制语句 1. BEGIN...END语句 【案例6.2】 从 employees 表中, 判断员工平均工资是否大 6.5 流程控制语句   1. BEGIN...END语句 【案例6.2】   从 employees 表中, 判断员工平均工资是否大 于2800,并显示工资大于 2800的员工姓名和实际工 资数量。 IF (SELECT AVG(emp_salary) FROM employees) >= 2800 BEGIN PRINT '下面列出的是工资大于2800的客户名称和实际工资数量。' PRINT ' ' SELECT emp_name AS 员工姓名, emp_salary AS 员工工资 FROM employees WHERE emp_salary >= 2800 END ELSE PRINT '员工平均工资不到2800元。 BEGIN { sql_statement | statement_block } END

6.5 流程控制语句 2. IF…ELSE语句 【案例6.3】 使用多个 IF ... ELSE 块,对产品型号为 6.5 流程控制语句   2. IF…ELSE语句 【案例6.3】   使用多个 IF ... ELSE 块,对产品型号为 “MAC重型机械”的产品平均价格和 2800000 比较,分别显示在 2800000上下的该类产品 的名称。   IF Boolean_expression    { sql_statement | statement_block }   [ ELSE   { sql_statement | statement_block } ]

6.5 流程控制语句   2. IF…ELSE语句 IF (SELECT AVG(unitprice) FROM products WHERE ProType = 'MAC重型机械') < 2800000 BEGIN PRINT '下面列出平均价低于280万元的重型机械产品:' PRINT ' ' SELECT product AS 产品名称 FROM products WHERE ProType = 'MAC重型机械' END ELSE IF (SELECT AVG(unitprice) FROM products WHERE unittype = ' MAC重型机械') > 2800000 PRINT '下面列出的是平均价高于280万元的重型机械产品:' PRINT '平均价等于280万元的重型机械产品。'

6.5 流程控制语句 3. CASE语句 格式1:简单CASE函数 格式2:CASE搜索函数 CASE input_expression 6.5 流程控制语句   3. CASE语句 格式1:简单CASE函数 CASE input_expression      WHEN when_expression THEN result_expression [ ...n ]      [ELSE else_result_expression  ] END 格式2:CASE搜索函数 CASE    WHEN Boolean_expression THEN result_expression [ ...n ]    [ELSE else_result_expression ]

6.5 流程控制语句 4. WHILE语句 【案例6.4】 如果产品平均价格少于30元,WHILE循环就将 6.5 流程控制语句   4. WHILE语句 【案例6.4】   如果产品平均价格少于30元,WHILE循环就将 价格加倍,然后选择最高价。如果最高价少于或等 于 50 元,WHILE 循环重新启动并再次将价格加倍。 该循环就不断地将价格加倍直到最高价格超过50元, 然后退出 WHILE 循环。 WHILE Boolean_expression      { sql_statement | statement_block }      [ BREAK ]      [ CONTINUE ]

6.5 流程控制语句   4. WHILE语句 WHILE (SELECT AVG(unitprice) FROM products) < 30 BEGIN UPDATE products SET unitprice = unitprice * 2 SELECT MAX(unitprice) FROM products IF (SELECT MAX(unitprice) FROM products) > 50 BREAK ELSE CONTINUE END

6.5 流程控制语句 5. GOTO语句 【案例6.5】 用GOTO循环 代替WHILE循环 。 语法: 首先定义标签: label: 6.5 流程控制语句 DECLARE @empsalary MONEY, @empid INT, @empcount INT SET @empid = 100 SET @empcount = 0 LOOP_COUNT: WHILE @empid > 0 BEGIN SELECT @empsalary = emp_salary FROM employees WHERE emp_id = @empid IF @empsalary >= 10000 SET @empcount = @empcount + 1 SET @empid = @empid - 1 GOTO LOOP_COUNT END ELSE PRINT (CONVERT(char(10),@empcount))   5. GOTO语句 【案例6.5】   用GOTO循环 代替WHILE循环 。 语法: 首先定义标签: label: 使用GOTO跳转 执行: GOTO label

使用案例数据库eTradeInfo,在“SQL Server Management Studio”管理窗口中,完成以下题目对象 案例分析   使用案例数据库eTradeInfo,在“SQL Server Management Studio”管理窗口中,完成以下题目对象 创建和Transact-SQL代码调试。   1. 编写一个函数,返回所有价格在80至630元的U盘的生 产数量。   2. 编写一个函数,返回员工“李小鹏”在2007年第2季度销 售的产品名称、数量。   3. 编写一个函数,返回“生产部”所有员工销售产品的员 工姓名、职位以及客户姓名、地址等信息。   4. 编写一段代码,根据商品库存数量显示相应的提示, 如果库存量小于500,显示“库存已到临界,需进货”;如果库 存书量大于5000,显示“库存量太大,是否降价促销?”。   5. 编写一段代码,自2000年以来,销售数量超过50000 的员工和所在部门员工分别提高薪水10%和5%。

1. 正确用T-SQL语句编写三种格式的自定义 函数,并在“SQL编辑器”窗口中调试; 2. 正确调用自定义函数; 案例分析 要求:   1. 正确用T-SQL语句编写三种格式的自定义 函数,并在“SQL编辑器”窗口中调试;   2. 正确调用自定义函数;   3. 熟练掌握自定义函数的代码调试技术。 问题:   1. 不带传递参数的自定义函数有何要求格式?   2. 为何调用自定义函数需要用户名? 讨论:   当查询返回多个值时,使用第 2 种格式与第 3 种格式有何异同?

从语言体系结构出发,介绍Transact-SQL 语言元 素的构成、语法和用法,讲解了Transact-SQL 的各种 本章小结   从语言体系结构出发,介绍Transact-SQL 语言元 素的构成、语法和用法,讲解了Transact-SQL 的各种 系统函数及其调用方法。 系统函数是实现数据库操作和编程的重要组成部 分,正确理解和使用这些系统函数具有重要意义。   SQL Server 2005支持用户自定义的函数,为用户 编写私有的专用函数提供了手段,从而增强了编程的 灵活性。