第十章T-SOL语言程序设计10.1T-SQL语言程序设计基础(I)数据定义语言(DDL)(2)数据操纵语言(DMIL)语句功能说明CREATEA创建数据库或数据库对象不同数据库对象,其CREATE语句的语法形式不同ALTER+对数据库或数据库对象进行修改不同数据库对象,其ALTER语句的语法形式不同DROP册除数据库或数据库对象不同数据库对象,其DROP语句的语法形式不同-(2)数据操纵语言(DML)语句功能说明SELECT+从表或视图中检索数据+是使用最频繁的SQL语句之一将数据插入到表或视图中心INSERTUPDATE修改表或视图中的数据既可修改表或视图的一行数据,也可修改一组或全部数据从表或视图中册除数据DELETE可根据条件册除指定的数据(3)数据控制语言(DCL)语句功能+说明授予权限GRANT+可把语句许可或对象许可的权限授予其他用户和角色收回权限。REVOKE+与GRANT的功能相反,但不影响该用户或角色从其他角色中作为成员继承许可权限DENY+收回权限,并禁止从其他角色继承许可权限工功能与REVOKE相似,不同之处:除收回权限外,还禁止从其他角色继承许可权限10.1.1常量、变量与数据类型常量10.1.1.11.字符串常量
第十章 T-SQL语言程序设计 10.1 T-SQL 语言程序设计基础 (1) 数据定义语言(DDL)(2) 数据操纵语言(DML) (2) 数据操纵语言(DML) (3) 数据控制语言(DCL) 10.1.1 常量、变量与数据类型 10.1.1.1 常 量 1.字符串常量
ASCII字符串常堂萃例:China'、“Howdoyoul'、“O"Bbaar'、*如果单引号中的字符串包含引号,可以使用两个单引号表示嵌入的单引号。*4Unicode字符串常量举例:N'China'、N"Howdoyoul'、N'O"Bbaar"+Unicode数据中的每个字符用两个字节存储,而每个ASCII字符用一个字节存储。2.二进制常量二进制常量具有前辙Ox并且是十六进制数字字符串。这些常量不使用引号。二进制常量的示例为:OxAEOx12Ef0x69048AEFDD010EOx (empty binary string)3.bit常量■bit常量使用数字0或1表示,并且不使用引号。如果使用一个大于1的数字,它将被转换为1。4.integer常量■integer常量由没有用引号括起来且不含小数点的一串数字表示。integer常量必须是整数,不能包含小数点。下面是一些integer常量的示例:189425.实型常量实型常量有定点表示和浮点表示两种方式。举例如下:(I)定点表示:1894.1204、2.0、+145345234.2234、-2147483648.10+(2)浮点表示:101.5E5、0.5E-2、+123E-3、-12E5+6.日期时间常量日期时间常量:用单引号将表示日期时间的字符串括起来构成。SQLServer可以识别如下格式的日期和时间:字母日期格式,例如:"Apri120,2000数字日期格式,例如:4/15/1998、"April120,2000时间格式:'14:30:24''04:24PM
2.二进制常量 二进制常量具有前辍 0x 并且是十六进制数字字符串。这些常量不使用引号。二进制常量的 示例为: 0xAE 0x12Ef 0x69048AEFDD010E 0x (empty binary string) 3.bit 常量 ◼ bit 常量使用数字 0 或 1 表示,并且不使用引号。如果使用一个大于 1 的数字, 它将被转换为 1。 4. integer 常量 ◼ integer 常量由没有用引号括起来且不含小数点的一串数字表示。integer 常量必须 是整数,不能包含小数点。下面是一些 integer 常量的示例:1894 2 5. 实型常量 6. 日期时间常量 时间格式: '14:30:24' '04:24 PM
日期时间型:April20,200014:30:247.money常量10.1.1.2数据类型1.系统数据类型创建用户自定义数据类型时应考惠如下三个属性:(1)数据类型名称(2)新数据类型所依据的系统数据类型(又称为基类型)(3)为空性*下面介绍用户自定义数据类型的方法。1)利用企业管理器定义选择此项右击+选择此项,进入用户类型定义窗口用PEWRA名特选择所依赖的系统类型及+输入自定义定义允许的长度+D充NULL类型名称+RRIEI联U通汇-选择是否允许空值+M2)利用命令定义数据类型语法格式*自定义类型名称*+sp_addlype[@typename=]type,*自定义类型的基类型*/[@phystype=]system_data_type*为空性*[,[@nulltype] [nul type]*新类型的创建者或所有者*[,[@ower=] [owmer_name]
日期时间型:April 20,2000 14:30:24 7. money 常量 10.1.1.2 数据类型 1. 系统数据类型 1) 利用企业管理器定义 2) 利用命令定义数据类型 语法格式
3.自定义数据类型的删除sp_addtype'student_no','char(5)','not null'3.自定义数据类型的删除1)用企业管理器删除自定义数据类型UE2)利用命令删除自定义数据类型语法格式:sp_droptype.[@typename-]type+删除studentno类型的语句为:sp_droptype'student no'4.利用自定义类型定义字段m2设计表LJcEODXY品国国3%RC14t3CREATE TABLE studentSnostudent_noPRIMARYKEY,sname char(8)
3. 自定义数据类型的删除 sp_addtype 'student_no','char(5)','not null' 3. 自定义数据类型的删除 1)用企业管理器删除自定义数据类型 2)利用命令删除自定义数据类型 删除 student_no 类型的语句为: sp_droptype 'student_no' 4. 利用自定义类型定义字段 CREATE TABLE student ( sno student_no PRIMARY KEY, sname char(8)
ssex char(2),sbirthday smalldatetime,class char(5))10.1.2变量1.变量1)标识符(1)常规标识符以ASCII字母、Unicode字母、下划线()、@或#开头,可后续一个或若干个ASCII字符、Unicode字符、下划线(、美元符号(S)、@或#,但不能全为下划线()、@或#。(2)分隔标识符2)变量的分类(1)全局变量(2)局部变量2.局部变量的使用1)局部变量的定义与赋值(1)局部变量的定义语法格式:DECLAREm@local_variabledata_type][,..n](2)局部变量的赋值语法格式:4SET @local_variable=expression例如:创建局部变量@varl、@var2,并赋值,然后输出变量的值。DECLARE@varlvarchar(20),@var2varchar(20)SET@varl='中国SET@var2=@varl+是一个伟大的国家!SELECT@varl,@var2GO用SELECT语句赋值SELECT(@localvariable=expression)l,n]》如果SELECT语句没有返回值,变量将保留当前值》如果expression是不返回值的标量子查询,则将变量设为NULLDECLARE@varlnvarchar(30)SELECT@varl=刘丰SELECT @varl=snameFROM studentWHERE sn0=110'SELECT@varIASNAME例如:查询用于给@varl赋值。在student表中sno不存在,因此子查询不返回值,并将变量@varl设为NULL
ssex char(2), sbirthday smalldatetime, class char(5) ) 10.1.2 变 量 1. 变 量 1) 标识符 (1) 常规标识符 以 ASCII 字母、Unicode 字母、下划线 (_)、@或#开头,可后续一个或若干个 ASCII 字符、Unicode 字符、下划线 (_)、美元符号($)、@或#,但不能全为下划线(_)、@或#。 (2) 分隔标识符 2) 变量的分类 (1) 全局变量 (2) 局部变量 2. 局部变量的使用 1) 局部变量的定义与赋值 (1) 局部变量的定义 (2) 局部变量的赋值 例如:创建局部变量@var1、@var2,并赋值,然后输出变量的值。 DECLARE @var1 varchar(20),@var2 varchar(20) SET @var1='中国' SET @var2=@var1+'是一个伟大的国家!' SELECT @var1,@var2 GO 用 SELECT 语句赋值 SELECT {@local_variable=expression}[,.n] ➢ 如果 SELECT 语句没有返回值,变量将保留当前值 ➢ 如果 expression 是不返回值的标量子查询,则将变量设为 NULL DECLARE @var1 nvarchar(30) SELECT @var1='刘丰' SELECT @var1=sname FROM student WHERE sno='110' SELECT @var1 AS NAME 例如:查询用于给 @var1 赋值。在 student 表中 sno 不存在,因此子查询不返回值,并将 变量@var1 设为 NULL