第4章 t-sql语言基础

上传人:xins****2008 文档编号:116457767 上传时间:2019-11-16 格式:PPT 页数:43 大小:1.38MB
返回 下载 相关 举报
第4章 t-sql语言基础_第1页
第1页 / 共43页
第4章 t-sql语言基础_第2页
第2页 / 共43页
第4章 t-sql语言基础_第3页
第3页 / 共43页
第4章 t-sql语言基础_第4页
第4页 / 共43页
第4章 t-sql语言基础_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《第4章 t-sql语言基础》由会员分享,可在线阅读,更多相关《第4章 t-sql语言基础(43页珍藏版)》请在金锄头文库上搜索。

1、第四章 Transact-SQL编程基础 本章学习目标 掌握常量和变量的使用方法 掌握运算符和表达式的使用 掌握函数的定义和使用方法 掌握流程控制语句的使用 4.1 概述 SQL是结构化查询语言(Structured Query Language)的缩写 ,是一种数据库应用语言。目前大多数数据库供应商都支持 SQL语言作为查询语言。 美国国家标准局(ANSI)在1986年制定了SQL标准,称为ANSI SQL-86,并于1989年和1992年对其进行了扩充和完善,即 ANSI SQL-89和ANSI SQL-92。 Microsoft公司采用Transact-SQL作为SQL Server的核

2、心组件, 简称T-SQL。T-SQL遵循ANSI制定的 SQL-92标准,并对其进 行了扩展,加入了程序流程控制结构、变量和其它一些元素 ,增强了可编程性和灵活性。 4.1 概述 Transact-SQL语言包括以下四个部分: 数据定义语言(DDL): 定义和管理数据库及其对象,例如:Create、Alter和Drop等语句。 数据操作语言(DML): 操作数据库中各对象,例如:Insert、Update、Delete和Select语句。 数据控制语言(DCL): 进行安全管理和权限管理等,例如:Grant、Revoke、Deny等语句。 附加的语言元素: Transact-SQL语言的附加语

3、言元素,包括变量、运算符、函数、注释 和流程控制语句等。 4.2表达式 表达式是指将常量、变量、函数等,用运算符按一 定的规则连接起来的有意义的式子。 4.2.1 常量 常量,是表示一个特定数据值的符号,在程序运行 过程中其值保持不变,例如12,23,good luck等。 常量的格式取决于它所表示的值的数据类型。 1.字符串常量 字符串常量括在单引号内,并包含字母、数字字符(a-z、A-Z 和 0 -9)以及特殊字符,如!、 和#。 如果单引号中的字符串包含一个嵌入的引号,可以使用两个单 引号表示嵌入的单引号,空字符串用中间没有任何字符的两个 单引号表示。 2数值常量 数值常量以没有用引号括

4、起来的数字字符串来表示,包括Integer 常量、Decimal常量、Float和Real常量等,其中Integer常量没有 小数点,例如100,54等;Decimal常量包含小数点,例如123.45 ,5.6等;Float 和 Real 常量使用科学记数法来表示,例如123E2 ,0.3E-3等。 如果要表示一个数是正数还是负数,可以对数值常量应用 + 或 - 运算符。 3日期时间常量 日期时间 常量使用特定格式的字符日期时间值 来表示,并被 单引号括起来,例如12/8/2008,December 8, 2008, 21:14:20等。 4.空值 空值是一个特殊的量,表示值未知,不同于空白或

5、零值,用 Null来表示。 比较两个空值或将空值与任何其他值相比均返回未知,这是 因为每个空值均为未知。 若要在查询 中测试 是否为空值,应该 在Where语句中使用is Null 或is not Null,而不能使用=Null。 在往表中添加记录时 ,如果不对某一列赋值则 系统自动让 该列取空值,或者也可以在Insert语句或Update语句中显式地 对某列赋空值。 4.2.2 变量 变量是可以对其赋值并参与运算的一个实体,其值在运行过程中可 以发生改变。 变量可以分为全局变量和局部变量两类, 全局变量由系统定义并维护。 局部变量由用户定义并赋值。局部变量的用法非常广泛,除了可 以参加运算构

6、成表达式之外,还可以在程序中保存中间结果、控 制循环执行次数、保存存储过程的输出结果和函数的返回值等 1. 全局变量 全局变量由系统定义,通常用来跟踪服务器范围和特定会话期 间的信息,不能被用户显式地定义和赋值,但是我们可以通过 访问全局变量来了解系统目前的一些状态信息 SQL Server中较常用的全局变量 变量说明 error上一条SQL语句报告的错误号 rowcount上一条SQL语句处理的行数 identity最后插入的标识值 fetch_status上一条游标 Fetch 语句的状态 nestlevel当前存储过程或触发器的嵌套级别 servername本地服务器的名称 spid当前

7、用户进程的会话id cpu_busySQL Server 自上次启动后的工作时间 2. 声明局部变量 局部变量一般出现在批处理、存储过程和触发器中,必须在使 用前用Declare 语句声明。 指定局部变量名称。名称的第一个字符必须是。 指定变量的数据类型,可以是系统提供的数据类型或用户自定 义数据类型。对于字符型变量,还可以指定长度;数值型变量 ,指定精度和小数位数。赋初值Null Declare语句的语法如下: Declare 局部变量名 数据类型,n 第一次声明变量时,其值设为Null。 如果要为变量赋值,可以使用Set语句,赋给变量的值可以是常量 、变量、函数和表达式,还可以是子查询。

8、Declare num int, date datetime, name varchar(10) Set num=2 Set date=Getdate() Set name=(Select Ename From LegalEntityT Where Eno=E01) 为变量赋值 输出变量值的格式如下。 PRINT 局部变量名 SELECT 局部变量名 输出变量值 例交换a,b两个字符型变量的值 DECLARE a char(3),b char(3) DECLARE c char(3) SET a=YES SET b=NO PRINT 交换前:a=+a+ b=+b SET c=a SET a=b

9、 SET b=c PRINT 交换后:a=+a+ b=+b 4.2.3 运算符 Microsoft SQL Server 2008提供了7中类型的运算符, 分别是: 算术运算符 赋值运算符 位运算符 比较运算符 逻辑运算符 一元运算符 1. 算术运算符 算术运算符对两个表达式执行数 学运算,参与运算的表达式必须 是数值数据类型或能够进行算术 运算的其它数据类型。 SQL Server 2008提供的算术运算 符如下表所示。加 (+) 和减 (-) 运算符也可用于对 datetime 、 smalldatetime、money和 smallmoney 值执行算术运算。 运算符名称语法 +加 Ex

10、pression1 + Expression2 -减 Expression1 - Expression2 *乘 Expression1 * Expression2 /除 Expression1 / Expression2 %取余 Expression1 % Expression2 2. 赋值运算符 等号 (=) 是唯一的 Transact-SQL 赋值运算符。 3. 字符串串联运算符 加号 (+) 是字符串串联运算符,可以用它将字符串串联起来。其他所 有字符串操作都使用字符串函数进行处理。例如good + + luck的 结果是good luck。 4. 比较运算符 比较运算符用来比较两个表达

11、 式值之间的大小关系,可以用 于除了 text、ntext 或 image 数 据类型之外的所有数据类型。 运算的结果为True、False,通 常用来构造条件表达式。 运算符名称语法 =等于Expression1 = Expression2 大于Expression1 Expression2 =大于等于Expression1 = Expression2 不大于Expression1 ! Expression2 ! 、!(比较运算符) Not And All、Any、Between、In、Like、Or、Some =(赋值) 4.3 内置函数 函数是能够完成特定功能并返回处理结果的一组Tran

12、sact-SQL 语句,处理结果称为“返回值”,处理过程称为“函数体”。 函数可以用来构造表达式,可以出现在Select语句的选择列表中 ,也可以出现在Where子句的条件中。SQL Server提供了许多系 统内置函数,同时也允许用户根据需要自己定义函数。 SQL Serve提供的常用的内置函数主要有以下几类:数学 函数、字符串函数、日期函数、convert函数、聚合函数 等 。 4.3.1数学函数 数学函数: Abs ( numeric_expression ):返回指定数值表达式的绝对值 Round ( numeric_expression , length ,function ):返回

13、一个舍入到指定的长 度或精度的数值 Floor ( numeric_expression ):返回小于或等于指定数值表达式的最大整数 Ceiling ( numeric_expression ):返回大于或等于指定数值表达式的最小整数 Power ( float_expression , y ):返回指定表达式的指定幂的值 Sqrt ( float_expression ):返回指定表达式的平方根 Square ( float_expression ):返回指定表达式的平方 Exp ( float_expression ):返回指定的表达式的指数值 Log ( float_expression

14、 ):返回指定表达式的自然对数 Log10 ( float_expression ):返回指定表达式的以10为底的对数 Sin ( float_expression ):返回指定角度(以弧度为单位)的三角正弦值 Cos ( float_expression ):返回指定角度(以弧度为单位)的三角余弦值 4.3.2 字符串函数 字符串函数: ASCII ( character_expression ):返回字符表达式中最左侧的字符的 ASCII 代 码值 CHAR ( integer_expression ):将 int ASCII 代码转换为字符 SUBSTRING ( value_expre

15、ssion ,start_expression , length_expression ):返回字 符表达式的从start_expression位置开始的长度为length_expression的子 串 LEFT ( character_expression , integer_expression ):返回字符串中从左边开始 指定个数的字符 RIGHT ( character_expression , integer_expression ):返回字符串中从右边开始 指定个数的字符 LEN( string_expression ):返回指定字符串表达式的字符数,其中不包含尾随 空格 LTRIM( character_expression ):返回删除了前导空格之后的字符表达式 RTRIM ( character_expression ):截断所有尾随空格后返回一个字符串 STR ( float_expression , length , decimal ):返回由数字数据转换来的字符 数据 4.3.3 日期和时间函数 日期时间函数: GETDATE ( ):返回系统当前的日期和时间 YEAR ( date ):返回表示指定 date 的“年”部分的整数 MONTH ( dat

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

当前位置:首页 > 大杂烩/其它

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