资源预览内容
第1页 / 共90页
第2页 / 共90页
第3页 / 共90页
第4页 / 共90页
第5页 / 共90页
第6页 / 共90页
第7页 / 共90页
第8页 / 共90页
第9页 / 共90页
第10页 / 共90页
亲,该文档总共90页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第三章 TranctSQL语语言基础础 本章学习目标了解SQL对象的命名规则和注释了解SQL语言中的数据类型了解SQL语言中的变量和运算符了解SQL语言中的各类函数及自定义函数的用 法了解批处理和控制语句3.1 概述 SQL(Structured Query Language)最早是IBM的圣约瑟研究实验室为 其关系数据库管理系统SYSTEM R开发的一种查询语言 按照功能分类,SQL语言主要包括:数据操作语句、数据定义语句和数据 控制语句。 数据操作语句(Data Manipulation Language,DML):主要包括对数据 库中数据的查询、插入、删除、修改操作 数据定义语句(Data Definition Language,DDL):可用于定义所存放数据 的结构和组织,以及数据项之间的关系,如表、视图、触发器和存储过程 等 数据控制语句(Data Control Language,DCL):主要包括数据的存储 控制和完整性控制,以防止非法用户对数据的使用和破坏 作为一种语言,Transact-SQL语言提供 了有关变量、标识符、数据类型、表达 式及控制流语句等语言元素,这些语言 元素被称为附加的语言元素。3.2.1 SQL对象的命名规则常规对象的标识符规则: 1)第一个字符必须是下列字符之一:字母az和 AZ,来自其他语言的字母字符,下划线_、或者 数字符号#。 以符号开始的标识符表示局部变量或参数;以 #符号开始的标识符表示临时表或过程;以双数字 符号(#)开始的标识符表示全局临时对象。 3.2.1 SQL对象的命名规则2)后续字符可以是:所有的字母、十进 制数字、符号、美元符号($)、数字 符号或下划线。3.2.1 SQL对象的命名规则 数据库对象的命名规则:完整的数据库对象名有4部分组成:连 接服务器名称或远程服务器名称、SQL Server数据库的名称、指定包含对象架 构的名称、对象的名称 。3.2.2 注释注释是程序代码中不执行的文本字符串 ,用于对代码进行说明或暂时仅用正在 进行诊断的部分语句 。在Microsoft SQL Server系统中支持两种 注释方式,即双连字符(-)注释方式和正 斜杠星号字符对(/*/)注释方式。3.2.2 注释双连字符(-)注释方式主要用于在一行中对代 码进行解释和描述 。在正斜杠星号字符对(/*/)注释方式中,既 可以用于多行注释,也可以与执行的代码处在 同一行,甚至还可以在可执行代码的内部。双连字符(-)注释和正斜杠星号字符对(/*/) 注释都没有注释长度的限制。一般地,行内注 释采用双连字符(-),多行注释采用正斜杠星 号字符对。3.3 数据类型3.3.1 数据类型系统数据类型整型数据类型 :整数数据类型表示可以存储整数精确 数据 。有4种整数数据类型即BIGINT、INT、 SMALLINT、TINYINT 。在选择整数数据类型时,默认情况下应该考虑使用 INT数据类型,如果确认将要存储的数据可能很大或 很小,那么可以考虑使用BIGINT数据类型或 SMALLINT数据类型。只有当将要存储的数据不超过 255且都是正数,那么才能使用TINYINT数据类型。3.3.1 数据类型系统数据类型浮点数据类型可以用来存储含小数的十进制数。浮 点数值的数据在SQL Server中采用只入不舍的方式 进行存储。 DECIMAL数据类型的语法如下所示:DECIMAL (p, s)在上面的语法中,p表示数字的精度,s表示数字的 小数位数。精度p的取值范围是1至38,默认值是18 。小数位数s的取值范围必须是0至p之间的数值(包 括0和p)。 3.3.1 数据类型系统数据类型 字符数据类型可以用来存储各种含字母、数字和符 号组成的字符串。在SQL中输入字符数据时,必须 将数据引在单引号中,否则SQL不能接受该字符数 据。提供了CHAR、VARCHAR、TEXT、NCHAR、 NVARCHAR和NTEXT 6种数据类型。前3种数据类 型是非Unicode字符数据,后3种是Unicode字符数 据。3.3.1 数据类型系统数据类型日期和时间数据类型用于存储日期和时间数据。它 有下面两种形式,区别在于存储长度所代表的时间 范围和存储精确度的不同。 Datetime: 用于存储日期和时间的结合体。 Smalldatetime:与datetime数据类型类似,但其日 期时间范围较小,表示的范围是1900年1月1日至 2079年12月31日,时间精确度是1分钟。3.3.1 数据类型系统数据类型 Text: 文本类型数据类型是用来存储可变长度的文本数据。 Text存储大量文本数据时,其容量理论上为231-1(2 147 483 647)个字节。在实际应用时需要视硬盘的存储空间而定。 NText:与Text数据类型类似,存储在其中的数据通常是直 接能输出到显示设备上的字符,显示设备可以是显示器、窗 口或者打印机。 Image:用于存储照片、目录图片或者图画,其理论容量为 231-1 (2 147 483 647)个字节。3.3.1 数据类型系统数据类型 货币数据类型用于存储货币或现金值,包括money型和 smallmoney型。在使用货币数据类型时,应在数据前加上货 币符号,以便系统辨识其为哪国的货币,如果不加货币符号 ,则系统默认为“¥”。位数据类型:是可以存储1、0或NULL数据的数据类型。这些 数据主要是用于一些条件逻辑判断。也可以把TRUE和 FALSE数据存储到BIT数据类型中,这时需要按照字符格式存 储TRUE和FALSE数据二进制数据类型分为: Binary 和Varbinary 。3.3.1 数据类型系统数据类型 除 了前面介绍的数据类型之外,Microsoft SQL Server 2008系统还提供了Cursor、SQL_Variant、 Table、Timestamp、Uniqueidentifier及Xml等数据 类型。使用这些数据类型可以完成特殊数据对象的 定义、存储和使用。3.3.2 数据类型用户自定义数据类 型 SQl Server的用户自定义数据类型并非是除了前面所述的基 本类型以外的其他新的数据类型,而是在SQL Server的基本 数据类型的基础上,将某个数据类型加上用户自定义的一些 实际限制,成为用户在实际工作中根据自己的实际需要使用 的特殊的、专门的一种数据类型。3.4.1局部变量和全局变量用户自己定义的变量称为局部变量。局部变 量是用于保存特定类型的单个数据值的变量。 在TransactSQL中,局部变量必须先定义然 后再使用。在Transact-SQL语言中,可以使用DECLARE 语句声明变量。在声明变量时需要注意:第一 ,为变量指定名称,且名称的第一个字符必须 是;第二,指定该变量的数据类型和长度; 第三,默认情况下将该变量值设置为NULL。3.4.1局部变量和全局变量格式如下:DECLARE 局部变量名 数据类型 ,.可以在一个DECLARE语句中声明多个变 量,多个变量之间使用逗号分割开。 3.4.1局部变量和全局变量【例3.2】 定义三个varchar类型变量和1个整型变量/* 定义可变长度字符型变量name ,长度为8可变长度的字符型变量sex,长度为2,小整型变量age可变长度的字符型变量address,长度为50*/DECLARE name varchar(8),sex varchar (2),age smallintDECLARE address varchar(50)3.4.1局部变量和全局变量局部变量的赋值:使用SET语句为变量赋值和使用 SELECT语句选择列表中当前所引用值来为变 量赋值。SET 局部变量名=表达式,.nSELECT 局部变量名=表达式 ,.nfrom 子句WHERE 子句3.4.1局部变量和全局变量【例3.3】创建一个局部变量,并赋一个任意 字符串作为局部变量的值DECLAREchar_var char(20)SETchar_var=James GreenSELECT char_var AS char_var的变量 值为3.4.1局部变量和全局变量执行结果如下图所示:3.4.1局部变量和全局变量全局变量是由系统定义和维护的变量, 是用于记录服务器活动状态的一组数据 。全局变量名由符号开始 。用户不能建立全局变量,也不可能使用 SET语句去修改全局变量的值。 3.4.2运算符和表达式运算符运算符是一种符号,用来指定要在一个 或多个表达式中执行的操作。 运算符可以分为算术运算符、逻辑运算 符、赋值运算符、字符串串联运算符、 按位运算符、一元运算符及比较运算符 等。 3.4.2运算符和表达式运算符算术运算符:用于两个表达式执行数学运算 。3.4.2运算符和表达式运算符赋值运算符赋值运算符只有一个,这就是等号(=) 。赋值运算符有两个主要用途,第一, 可以给变量赋值,这是最主要的用途; 第二可以为表中的列改变列标题。3.4.2运算符和表达式运算符位运算符用于在两个表达式之间执行位操作 。 3.4.2运算符和表达式运算符 比较运算符用于测试两个表达式是否相同 。比较运算符的结果有3个值: TRUE(真)、FALSE(假)和(未知)。 3.4.2运算符和表达式运算符逻辑运算符用于对某些条件进行测试,以获得其真 实情况。逻辑运算符和比较运算符一样,返回TRUE 或FLASE值。 3.4.2运算符和表达式运算符字符串串联运算符加号(+)是字符串串联运算符,将 字符串串联起来。例如,购部主管:+张 立的结果就是采购部主管:张立。3.4.2运算符和表达式运算符一元运算符表示只对一个表达式执行操作。 该表达式可以是numeric数据类型类别中的任 何一种数据类型。 3.4.2运算符和表达式运算符运算符优先级决定执行运算的先后顺序。当运算符的级别不同时,先对较高级别的运 算符进行运算,然后对较低级别的运算符进行 运算。当运算符的级别相同时,按照它们在表 达式中的位置从左到右进行运算。需要强调的 是,使用括号可以改变运算符的运算顺序,运 算时先计算括号中的表达式的值。算符的优先级别如表3-6所示。 3.4.2运算符和表达式表达式表达式是由标识符、变量、常量、标量函数 、子查询、运算符等的组合。 表达式可以分为简单表达式和复杂表达式两 种类型。简单表达式只是一个变量、常量、列 名或标量函数,复杂表达式由两个或更多个简 单表达式通过使用运算符连接起来的表达式。 3.5 函数系统函数内置函数分为14种类型,这些类型的函数名称和主 要功能如下图所示: 3.5 函数系统函数内置函数分为确定性函数和非确定函数。如果对于一组特定的输入值,函数始终可以 返回相同的结果,那么这种函数就是确定的。 如果对于一组特定的输入值,函数的结果可能 会不同,那么这种函数就是非确定性的函数。 3.5 函数系统函数聚合函数用于对一组数据执行某种计算并返 回一个结果。 3.5 函数系统函数配置函数用于返回当前配置选项的信息 。 3.5 函数系统函数 聚合函数示例: 如下图所示:分别计算出了在酒店信息管理系统中客房类型表,查出其中 共有4种房间类型,最高客房价格为580,最低客房价格为280,平均客房 价格为390.3.5 函数系统函数 配置函数示例: 使用配置函数查看了当前一些配置选项的信息。这些信息包括当前使用语 言的标识符、语言名称、数据库时戳、版本等信息、服务名称及当前的服 务器名称 。3.5 函数系统函数数学函数用于对数字表达式进行数学运算并返回运 算结果。 3.5 函数系统函数
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号