当前位置:文档之家› SQL语言编程基础

SQL语言编程基础


(2)浮点数据类型 主要包括Real、Float、Decimal和numeric四种类型。
(3)字符数据类型 SQL Server提供了三种字符数据类型,分别是Char、 Varchar和Text。
(4)日期/时间数据类型 日期/时间数据类型可以分为datetime和smalldatetime两 类。
<标签> ::=
1. 识符
用于标识数据库对象的名称,这些对象包括服务器、数据库及相关对象 (如表、视图、列、索引、触发器、过程、约束、规则等)。标识符 在定义对象时进行命名,当需要使用某个对象时可以通过引用该对象 的名称来完成。 标识符可划分为常规标识符与分隔标识符两类,其中常规标识符的命名 规则如下: l 第一个字符必须由字母a-z 、A-Z,以及来自其他语言的字母字符 或者下划线_、@、#构成,其中@表示局部变量或参数,以##开头的 标识符表示全局临时对象,以@@开始的标识符表示全局变量,也称 为配置函数。 l 在定义标识符时,不能占用Transact-SQL 的保留字,例如不能将 Table、View、Index等定义为一个标识符。 l 在标识符中不能含有空格,并且标识符中的字符数量不能超过 128个。 如果定义的标识符不符合上述规则时,即被称为分隔标识符,需要使用 双引号””或方括号[]对其进行分割。例如:SELECT * FROM [my table]
3、函数
在SQL Server中包含了大量具有执行特定运算功能的内置 函数。函数的使用可以包含在SELECT查询语句的选择列 表中、WHERE子句搜索条件中、视图的搜索条件中、约 束或触发器中。 一般情况下,无论函数是否有参数,在调用函数时,函数 名称后都需要带有圆括号()。有时,用来指定数据库、计 算机、登录或数据库用户的参数是可选的,如果未指定这 些参数,就默认地将这些参数赋值为当前的数据库、主机、 登录或数据库用户。同时,SQL Server中的函数可以支持 嵌套。 SQL Server中函数的种类如表2-4所示:
l
Datetime:范围从1753年1月1日到9999年 12月31日,可以精确到千分之一秒,此类型的 数据占用8个字节的存储空间。 l Smalldatetime:数据范围从1900年1月1日 到2079年6月6日,可以精确到分,此类型的数 据占4个字节的存储空间。
(5)货币数据类型 SQL Server提供了Money和Smallmoney两种货币数据类 型。
斜体或小写字母
| (竖线)
Transact-SQL 语法中用户提供的 参数
分隔括号或大括号内的语法项目。 只能选择一个项目
[ ] (方括号)
{}(大括号) [ ,...n ]
可选语法项目。不必键入方括号
必选语法项目。不要键入大括号 表示前面的项可重复 n 次。每一 项由逗号分隔
[ ...n ] 加粗
2.2.2
变量Βιβλιοθήκη 变量对应内存中的一个存储空间,它与常量不同,变量的值 在程序运行过程中可以随时改变。有局部变量与全局变量两 种。变量采用先申明后使用的原则。
1.局部变量
局部变量是用户在程序中定义的变量,一次只能保存一个值, 它仅在定义的程序范围内有效。局部变量可以临时存储数值。 局部变量名以@符号开始,最长为128个字符。
2.2
函数、变量与表达式
2.2.1 常量 常量可以用来表示特定的数值,根据不同的数据类型, 常量的格式也会发生相应的变化。常量可以分为:字符串常 量、二进制常量、bit常量、datetime常量、integer常量、 decimal常量、float和real常量、uniqueidentifier常量等。
l
申明局部变量 可以通过DECLARE语句声明局部变量, 需要确定变量的名字、数据类型和长度。例如,定义一个 整数类型的变量@score以及字符串类型的变量@name,可 以表示为: DECLARE @score INT DECLARE @name CHAR(12)
l
对局部变量赋值 局部变量的初值为NULL(空), 可以使用SELECT语句或SET语句对变量进行赋值。SET语 句一次只能给一个局部变量赋值,SELECT语句则可以同时 给一个或多个变量赋值。
l l
Money:占据8字节存储空间。每4字节分别用于表 示货币值的整数部分及小数部分。Money的取值的范围为 -263到263-1,并且可以精确到万分之一货币单位。
Smallmoney:占据4字节存储空间。每2字节分别用 于表示货币值的整数部分以及小数部分。smallmoney的取 值范围为-214,748.3648到+214,748.3647,可以精确到万分 之一货币单位。
Ntext
image
nvarchar uniqueidentifier
int
real timestamp
Smallmoney text
Varbinary Varchar
(1)整型数据 整数数据类型是最常用的数据类型之一,由正整数和负整 数所组成,使用 bigint、int、smallint和tinyint数据类型进 行存储。bigint 数据类型可存储的数字范围比 int 数据类 型广。int 数据类型比 smallint 数据类型的存储范围大, 而 smallint 的数值范围又比 tinyint 类型大。
数据控制语言DCL
2.1.2 Transact-SQL语法规则 1.Transact-SQL语法规则
为方便用户更好地掌握与使用Transact-SQL语言,需要首先向读者介绍 Transact-SQL中涉及到的语法规则,如表2-2所示:
表2-2 Transact-SQL的语法规则
语法规则 大写 功能描述 Transact-SQL 关键字
表示前面的项可重复 n 次。每一项由 空格分隔 数据库名、表名、列名、索引名、存 储过程、实用工具、数据类型名以及 必须按所显示的原样键入的文本 语法块的名称。此规则用于对可在语 句中的多个位置使用的过长语法或语 法单元部分进行分组和标记。适合使 用语法块的每个位置由括在尖括号内 的标签表示:<标签>
1. 数据类型 Transact-SQL中的基本数据类型如表2-3表所示:
表2-3 Transact-SQL基本数据类型
bigint Binary Bit char cursor
datetime
money smalldatetime tinyint
Decimal
Nchar Smallint
Float
局部变量通常用于以下几种情况: ①作为计数器计算循环执行的次数或控制循环执行的次数。 ②保存数据值以供流控语句测试。 ③保存由存储过程返回代码的数据值。 在使用变量之前应该考虑到变量的作用域,只有在变量的作用范围以内 才能够正确的对变量进行操作。变量的作用域指从申明变量的开始位置到 含有该变量的批处理或存储过程的结束位置。 【例2-1】在数据库XSCJ中定义一个长度为12的字符串类型变量@student ,对该变量进行赋值,并且查询出“学生基本信息表“中该变量所指定姓名 的学生信息。 在查询分析器中运行如下命令: USE XSCJ GO DECLARE @student CHAR(12) SET @student = '王倩倩' SELECT * FROM 学生基本信息表 WHERE 姓名 = @student 运行结果如图2-1所示。
图2-2定义日期时间类型变量运行结果
2.2.3 表达式
在Transact-SQL语言中,表达式由标识赋、数值、运算符组成。可以对 表达式进行计算并且得到结果。表达式可以是一个常量、变量、字段名、 函数或子查询。可以通过运算符将两个或更多的简单表达式联接起来组成 复杂的表达式。 表达式中的运算符可以执行算术、比较、连接或赋值操作。运算符大致 可以划分为:算术运算符、位运算符、逻辑运算符、比较运算符、字符串 连接运算符等。 常用的算术运算符有+(加)、-(减)、*(乘)、/(除)、%(求 余)等;常用的比较运算符有=(等于)、>=(大于等于)、<=(小于等于 )、<>(不等于)或!=(不等于)等;常用的位运行符有&(按位与)、| (按位或)、^(按位异或)等;常用的逻辑运算符有AND(逻辑与)、 NOT(逻辑非)、OR(逻辑或)等。
表2-4 SQL Serverr的函数类型
函数种类
聚合函数 配置函数 游标函数 日期和时间函数
功能
对一组值进行计算并返回一个数值。如 COUNT、SUM、MIN 和 MAX 是一种标量函数,可返回有关配置设置的 信息 返回有关游标状态的信息 操作datetime和smalldatetime值
数学函数
图2-1定义一个长度为12的字符串类型变量
【例2-2】在数据库XSCJ中定义两个日期时间类型的变量@max_csrq、 @min_csrq,分别用于查询“学生基本信息表”中“出生日期”的最大值、 最小值。 可在查询分析器中运行如下命令: USE XSCJ GO DECLARE @max_csrq DATETIME , @min_csrq DATETIME SELECT @max_csrq=MAX(出生日期),@min_csrq=MIN(出生日期) FROM 学生基本信息表 PRINT @max_csrq PRINT @min_csrq 运行结果如图2-2所示:
第 2 章 SQL语言编程基础
本章学习目标
l l l 了解Transact-SQL语言起源、组成 掌握Transact-SQL编程基础知识 综合运用变量、表达式、函数及流控语 句等编写应用程序代码
2.1
Transact-SQL语言概论
2.1.1 Transact-SQL语言简介
SQL的含义为结构化查询语言,即Structured Query Language,是在关系 型数据库系统中被广泛采用的一种语言形式。SQL语言能够针对数据库完成 定义、查询、操纵和控制功能,是关系型数据库领域中的标准化查询语言。 但SQL语言本身不是独立的程序设计语言,不能进行屏幕界面设计和控制 打印等,因此通常将SQL语言嵌入到程序设计语言(如Visual Basic、C语言 、Delphi等)中使用。
相关主题