SQL学习之T-SQL编程之标识符、变量、批处理与运算符

1、标识符:

(1)定义:就像每个人都要有个名字一样,在SQL Server中,每一项对象也都要有一个作为标识用的名称,这就是标识符。例如数据库名称、数据表名称、字段名称等等,这些名称统称为标识符。

(2)命名规则:

a、英文字符:A~Z或a~z,在SQL中是不用区分大小写的。

b、数字:0~9,但数字不得作为标识符的第一个字符。

c、特殊字符:_、#、@、$,但#、@、$ 不得作为标识符的第一个字符。

d、特殊语系的合法文字:例如中文文字也可作为标识符的合法字符。

特殊说明:若对象名称不符合上述规则,只要在名称的前后加上中括号,该名称就变成合法标识符了(但标识符的长度仍不能超过128个字符)

注意:标识符不能是SQL的关健词,例如“table”、“TABLE”、“select”、“SELECT”等都     不能作为标识符。

    标识符中不能有空格符,或_、#、@、$之外的特殊符号。

    标识符的长度不得超过128个字符长度

2、变量:

(1)分类:

SQL Server中存在两类变量:

全局变量: 由系统定义和维护,变量名前加“@@”

如:@@VERSION

局部变量:

由用户定义和使用,仅在声明它的批处理、存储过程或触发器中有效。变量名加“@”如:        @mystr

(2)局部变量的声明:

基本格式:

  declare @变量名称 数据类型


变量的赋值:

格式1:  定义变量的同时赋值

格式2:  set 赋值,(set @变量名 = 表达式)

select赋值,(select @变量名 as 表达式)

举例:

DECLARE    @A  CHAR(20)

DECLARE    @f  float,@cn  char(8)=‘aa’

注意事项:

一次可以声明多个变量,用逗号隔开

所有局部变量在声明后均初始化为NULL

声明的局部变量可以用set或select赋值

set语句一次只能给一个变量赋值,select语句可同时为多个变量赋值。

(3)局部变量的输出:

局部变量的输出可以通过print和select实现,区别在于,print一次只能输出一个变量的值,select一次可以输出多个变量的值

3、批处理与脚本:

(1)批处理:

批处理是由一条或多条T-SQL语句组成的语句集。这些语句被应用程序作为一个整体提交        给服务器,并在服务器端作为一个整体执行。可根据自己的编程习惯和编写批处理的要求使        用批处理

在查询分析器中,可以用GO命令标志一个批处理的结束。GO不是T-SQL语句,它的作用是        通知查询分析器有多少语句要包含在当前的批处理中。

查询分析器将第一个GO之前的语句或者两个GO之间的语句,或者最后一个GO之后的语句       分别作为一个批处理,分别组成一个字符串交给服务器去执行

使用批处理应注意的问题:

                a:不能在一个批处理中引用其他批处理中定义的变量

                b:不能将注释从一个批处理开始,在另一个批处理中结束

                c:不能在一个批处理中修改一个表的结构,然后在同一个批处理中引                  用刚修改的新列

                d:不能在一个批处理中创建一个数据库,然后在同一个批处理中选择                  该库

 e:大多数带CREATE关键字的语句不能与其他语句在同一个批处理中,如                   CREATE DEFAULT、CREATE PROCEDURE、CREATE RULE、CREATE                     TRIGGER与CREATE VIEW语句,但是CREATE TABLE、CREATE                       DATABASE、CREATE INDEX可以

   f:当需要执行存储过程时,需使用EXEC语句。如果存储过程是批处理                   中的第一条语句,那么省略EXEC关键字也可以执行该存储过程

                g:每个批处理都是独立执行的,并不会相互影响。即无论前一个批处                   理是否正确执行,下一个批处理仍会继续执行

(2)脚本:

脚本是一系列顺序提交的批处理。脚本可以直接在查询分析器等工具中输入并执行,也可以保       存在文件中,再由查询分析器等工具打开执行

一个脚本可以包含一个或多个批处理。脚本中的GO命令标志一个批处理的结束,如果一个脚本       中没有包含GO命令,那么它整个被视为是一个批处理

3、运算符:

(1)定义:运算符是一种符号,用来指定要在一个或多个表达式中执行的操作。SQL Server 使用下列几类运算符:算术运算符、赋值运算符、按位运算符、比较运算符、逻辑运算符、字符串连接运算符

(2)算术运算符:

算术运算符包括+(加)、-(减)、*(乘)、/(除)和%(整数相除的余数),用于数值和日期时间的运算。

上述一些运算符的作用大家已经清楚,在此不再赘述,这里仅对日期时间数据的运算作说明。日期时间与数值可做加或减运算,其意义分别为日期加几天或减几天,结果仍为日期时间数据。

(3)赋值运算符:

赋值运算符只有一个,那就是“=”(等号),用来将数值或字符串指定给字段或变量。

(4)按位运算符:

按位运算符包括&、|、^三种,用来对位进行逻辑运算。

&:为按位与(AND)运算符。当运算符前后的操作数都为1时,结果为1,只要有一个不为1,结果就是0。

|:为按位或(OR)运算符。此运算符前后的操作数只要有1个为1,结果就为1,只有两个都为0的时候,结果才为0。

^:为异或(Exclusive OR)运算符。只有当两个操作数的值不一样的时候才会是1,否则为0。

(5)比较运算符:

比较运算符又称关系运算符,用于测试两个表达式的值之间的关系,其运算结果为布尔类型的值TRUE或者FALSE。

除text、ntext 或image类型的数据外,比较运算符可以用于所有的表达式。

(6)逻辑运算符:

逻辑运算符用于对某个条件进行测试,以获得其真实情况。逻辑运算符和比较运算符一样,返回带有TRUE或FALSE的布尔数据类型。

(7)字符串连接运算符:

字符串连接运算符号为“+”,是用来连接字符串的。它可连接字符串变量、列及字符串表达式。若有其他数据类型的数据要与字符串相加,则必须转换为字符类型。

(8)运算符优先级:

当使用多个运算符来组成表达式,优先级较高的运算符会优先做运算。如果希望某部分能够优先运算,那么可用小括号括起来。如果有多层小括号,则在内层的算式优先。比如“3*(6/(4-2))”,结果为9。

下面将优先级从高到低依次列出: 

()括号

+(正)、-(负)、~(按位 NOT)

*(乘)、/(除)、%(模)

+(加)、(+ 串联)、-(减)

=,  >,  <,  >=,  <=,  <>,  !=,  !>,  !< 比较运算符

^(位异或)、&(位与)、|(位或)

NOT

AND

ALL、ANY、BETWEEN、IN、LIKE、OR、SOME

=(赋值) 

时间: 2024-10-31 13:07:07

SQL学习之T-SQL编程之标识符、变量、批处理与运算符的相关文章

04.JDBC编程之指定变量&amp;批处理

转载请标明出处:http://blog.csdn.net/u012637501 一.指定SQL语句中的变量 1.PreparedStatement接口 PreparedStatement接口继承Statement, PreparedStatement 实例包含已编译的 SQL 语句,所以其执行速度要快于 Statement 对象. 包含于 PreparedStatement 对象中的 SQL 语句可具有一个或多个 IN 参数.IN参数的值在 SQL 语句创建时未被指定.相反的,该语句为每个 IN

SQL学习笔记----更改SQL默认的端口号

1.SQLServer配置管理器----SQLServer网络配置----MSSQLSERVER的协议---TCP/IP(已启用)---IP地址 清空素有的IP,在IPALL下更改默认的端口: 2.  cmd命令,运行 cliconfg.exe,  常规--->按顺序启用协议--->TCP/IP--->属性---->端口    改默认端口 3,通过 telnet命令,检测端口是否开放 4,连接数据库,数据库格式为     IP地址,端口号\实例名称

ORACLE学习之PL/SQL编程——本地动态SQL

目录 读前注意与概述 动态SQL简介 使用EXCUTE IMMEDIATE语句 处理DDL和DCL语句 处理DML语句 处理单行查询 处理多行查询 在动态SQL中使用批量绑定 读前注意与概述 当编写PL/SQL块时,静态SQL语句只能完成一些固定任务.为了使得PL/SQL块可以灵活的处理SQL语句,需要使用动态SQL.动态SQL包括本地动态SQL和DBMS_SQL动态SQL两种实现方法,其中本地动态SQL只适用于oracle服务器端,而DBMS_SQL动态SQL不仅适用于oracle服务器端,而

VS2010连接SQL Server 2008操作与编程 (笔记)

实现VS2010连接SQL Server 2008操作与编程,主要记录的是一个学习的过程. 实现VS2010连接SQL Server 2008:逗逗飞的专栏 实现VS2010连接SQL Server 2008代码:点击打开链接 ADO的三个指针: _ConnectionPtr:用于建立数据库的连接. _RecordsetPtr:它是专门为通过记录集操作数据库而设立的指针,通过该接口可以对数据库的表内的记录.字段等进行各种操作. _CommandPtr:提交的sql查询字符串指针 目的:连接数据库

Oracle之PL/SQL学习笔记之数据类型(三)

Oracle之PL/SQL学习笔记之数据类型(三) 所有的编程语言中变量是使用最频繁的.PL/SQL作为一个面向过程的数据库编程语言同样少不了变量,利用变量可以把PL/SQL块需要的参数传递进来,做到动态执行程序,同时也可以利用变量在PL/SQL内部进行值得传递,甚至可以把值传递出去,最终返回给用户,由此可见,变量是PL/SQL不可或缺的一部分. 1. Oracle预定义的普通数据类型(常见的数据类型) 类型 子类 说明 Oracle中的范围 char Character,String Rowi

Oracle之PL/SQL学习笔记

自己在学习Oracle是做的笔记及实验代码记录,内容挺全的,也挺详细,发篇博文分享给需要的朋友,共有1w多字的学习笔记吧.是以前做的,一直在压箱底,今天拿出来整理了一下,给大家分享,有不足之处还望大家批评指正. PL/SQL定义:PL/SQL是由Oracle开发,专门用于Oracle的程序设计语言. PL---Procedural Language. SQL—Structure QueryLanguage.PL/SQL包括过程化语句和SQL语句     PL/SQL的单位:块. 一个块中可以嵌套

SQL 学习日志01

查看一个数据库的所有表: Select TABLE_NAME FROM 数据库名称.INFORMATION_SCHEMA.TABLES Where TABLE_TYPE='BASE TABLE' (select * from 表名 where 条件) 查看一张表的表结构: sp_help table_name(表名)  获取的信息比较全 sp_columns table_name(表名) 创建数据库: use master go create database test01(数据库名) 删除数据

SQL 学习日志02

SQL数据类型 1.字符类型 char   --定长字符数据   如 char(12)  这字段就会占用12字节的空间,无论这个字段只填写了2个字节.一般在可确定这字段长度时选用,如sex字段(因只有男和女两项可选)就可用 char(2). varvhar   --可变长字符数据  如varchar(50) 这字段最大只能填写50字节,按实际填写的字节存储.一般在不确定这字段长度时使用,如 Smail字段(因邮箱的长度不确定) 就可用varchar(50). text    --用来存储大量非统

TERADATA SQL学习随笔&lt;一&gt;

最近在TERADATA环境学习SQL.在这里记录一下学习中查过的知识点,作为备案. 目录: 关于SQL学习及所用在线数据库 表联合 (join) SQL子查询 在select时创建新字段 (as, case when) 数据分组 (group by + 聚合函数count, sum, avg等) 利用over (partition by)进行数据分组并创建新字段 样本选择 1.关于SQL学习及所用在线数据库 之前有看过一些SQL学习的书.但如果从学习效率来说,跟着书学习SQL,不如直接看生产环境