第九章-T-SQL语言
- 格式:ppt
- 大小:128.00 KB
- 文档页数:46
T-SQL简介及基本语法⼀、T-SQL概述SQL Server⽤于操作数据库的编程语⾔为Transaction-SQL,简称T-SQL。
T-SQL与PL/SQL不同,并没有固定的程序结构。
T-SQL包括以下4个部分:DDL:定义和管理数据库及其对象,例如create、alter和drop等。
DML:实现对数据库表各对象的操作,例如insert、update等。
DCL:数据控制语⾔,实现对数据库进⾏安全管理和权限管理等控制,例如grant、revoke、deny等。
附加的语⾔元素。
T-SQL的附加语⾔元素,包括变量、运算符、函数、注释和流程控制语句等。
在T-SQL中,命令和语句的书写是不区分⼤⼩写的。
⼆、T-SQL编程基础1、标识符①T-SQL规则标识符由字母、数字、下划线、@、#、$符号组成,其中字母可以是a-z或A-Z,也可以是来⾃其他语⾔的字母字符。
⾸字符不能为数字和$。
标识符不允许是T-SQL保留字。
标识符内不允许有空格和特殊字符长度⼩于128②界定标识符 对于不符合标识符规则的标识符,则要使⽤界定符⽅括号([])或双引号(“”)将标识符括起来。
如标识符[My Table]、“select”内分别使⽤了空格和保留字select。
2、数据类型在SQL Server中提供了多种系统数据类型。
除了系统数据类型外,还可以⾃定义数据类型。
①系统数据类型(1)精确数字数据类型int 存储整型数值,存储数值范围为-231~231-1。
bigint bigint⽐int能存储更⼤的数值,存储数值范围为-263~263-1。
smallint 数据类型的范围数值⽐int更⼩,在-215~215-1之间。
定义这种数据类型的时候⼀定要⼩⼼,要确定存储的数据不会超过smallint所能存储的数值范围。
tinyint 数据类型的范围数值⽐smallint更⼩,存储从 0 到 255 的整型数据。
decimal/numeric decimal[(p,s)]和numeric[(p,s)]这两种数据类型⽤于存储相同精度和范围的数据(⼩数点的左、右两边存储的数值位数相同),所能存储的数值范围为-1038+1~1038-1。
数据库T-SQL语⾔操作(T-SQL语句、数据库、表、视图、索引)T-SQL语⾔按⽤途分四部分1. 数据定义语⾔(CREATE,DROP,ALTER)2. 数据操作语⾔(INSERT,DELETE,UPDATE)3. 数据查询语⾔(SELECT)4. 数据控制语⾔(GRANT,REVOKE,DENY)数据类型1. 系统数据类型2. ⽤户⾃定义数据类型(建⽴⽅式:a.图形化⽅式 b.命令⽅式)1use TEST2EXEC sp_addtype sno,'varchar(10)','nonull'3EXEC sp_droptype sno变量命名规则:字母、下划线、@或#开头,但不能全为下划线、@或#不能为“关键字”,不能嵌⼊空格及其他特殊字符,如需使⽤则需要双引号或⽅括号括起1.局部变量:由⽤户声明,必须以@开头,只在定义该变量的过程中有效,局部变量必须先声明后使⽤注意:第⼀次声明变量时,其值设置为NULL。
局部变量不能使⽤“变量=变量值”的格式进⾏初始化,必须使⽤SELECT或SET语句来设置其初始值。
如果声明字符型的局部变量,⼀定要在变量类型中指明其最⼤长度,否则系统默认其长度为1。
若要声明多个局部变量,请在定义的第⼀个局部变量后使⽤⼀个逗号,然后指定下⼀个局部变量名称和数据类型。
1USE student2DECLARE@var1char(10),@var2int3SET@var1='number'4select@var2=cgrade5from sc6where sno='201810010'78print@var1+"s"2.全局变量:由系统定义,供SQL server系统内部使⽤的变量,任何程序任何时间都可以调⽤。
通常以“@@”开头。
T-SQL语句1.注释语句(1) --(2) /*……*/2.批处理--GO3.控制流程语句(1) begin...end语句(相当于C语⾔中的{} )(2) if...else语句(可嵌套)(3)case语句(多条件选择语句)(4)print语句(屏幕输出语句)(5)while语句(有条件的循环语句)(6)goto语句(⽆条件跳转语句)(7)break语句(8)continue语句4.常⽤函数(系统函数、⽤户⾃定义函数)⼀些系统函数:(1)字符串函数(2)数学函数(3)⽇期和时间函数(4)聚合函数注意:⽤户⾃定义函数:1.分类:标量值函数:返回单个值内联表值函数:返回可更新的表多语句表值函数:返回不可更新的表2.标量值函数命令⽅式创建1CREATE FUNCTION f2(@a real,@b real) 2RETURNS real3AS4BEGIN5IF@a>=@b6RETURN@a7RETURN@b8END910PRINT'最⼤值为'11PRINT dbo.f2(77,56)1CREATE FUNCTION f3(@n real)2RETURNS real3AS4BEGIN5DECLARE@i real,@sum real6SET@i=07SET@sum=08WHILE@i<@n9BEGIN10SET@i=@i+111SET@sum=@sum+@i12END13RETURN@sum14END1516PRINT dbo.f3(10)3.⾃定义函数的调⽤(1)标量值函数可以使⽤select、print、exec调⽤(2)表值函数只能⽤select调⽤4.删除⽅式drop function 函数名数据库数据库概述1.数据库常⽤对象:表、数据类型、视图、索引、存储过程、触发器系统数据库:master、model、tempdb、msdb2.数据库存储结构(数据库⽂件、数据库⽂件组):数据库⽂件:存放数据库数据和数据库对象的⽂件。
t-sql 标准T-SQL(Transact-SQL)是一种面向关系数据库管理系统(RDBMS)的编程语言,主要用于Microsoft SQL Server。
下面是关于T-SQL标准的基本概念和特性的详细介绍:1. T-SQL基本概念:1.1 定义:T-SQL是Microsoft SQL Server上的一种SQL方言,它扩展了标准的SQL语言,提供了更丰富的功能,包括存储过程、触发器、视图、函数等。
1.2 特点:•过程性编程:T-SQL支持过程性编程,允许开发者创建存储过程、触发器等数据库对象。
•批量操作:提供了丰富的数据操作语句,支持批量处理,提高了效率。
•事务控制:支持事务控制,包括BEGIN TRANSACTION、COMMIT、ROLLBACK 等语句。
2. T-SQL语言特性:2.1 数据查询语言(DQL):T-SQL提供了丰富的查询语言,包括SELECT语句,用于检索数据库中的数据。
SELECT column1, column2 FROM table WHERE condition;2.2 数据操作语言(DML):T-SQL包括INSERT、UPDATE、DELETE等语句,用于对数据库中的数据进行增、删、改操作。
INSERT INTO table(column1, column2) VALUES(value1, value2);2.3 数据定义语言(DDL):T-SQL支持CREATE、ALTER、DROP等语句,用于定义数据库、表结构等。
CREATE TABLE table_name (column1 datatype, column2 datatype, ...);2.4 过程性编程:T-SQL允许创建存储过程、触发器、函数等,以实现更复杂的业务逻辑。
CREATE PROCEDURE procedure_name ASBEGIN--T-SQL statementsEND;2.5 事务控制:T-SQL提供了BEGIN TRANSACTION、COMMIT、ROLLBACK等语句,用于控制事务的开始、提交和回滚。
T-SQL语言一、数据库1.创建数据库CREATE DATABASE database_name[ON{[PRIMARY] (NAME=logical_file_name,FILENAME=’os_filename_name’,[,SIZE=size][,MAXSIZE={m ax_size︳UNLIMITED}][,FILEGROWTH=grow_increment])}[,……n]LOG ON(NAME=logical_file_name,FILENAME=’os_filename_name’,[,SIZE=size][,MAXSIZE={max_size︳UNLIMITED}][,FILEGROWTH=grow_increment])}[,……n]][COLLATE collation_name]2.使用T-SQL语句管理数据库(1)打来数据库USE database_name(2)查看数据库信息[EXEC[UTE]]sp_helpdb database_name(3)增长或减少数据库容量ALTER DATABASE database_nameADD FILE (NAME=logical_file_name,FILENAME=’os_filename_name’,[,SIZE=size][,MAXSIZE={max_size︳UNLIMITED}][,FILEGROWTH=grow_increment])ADD LOG FILE (NAME=logical_file_name,FILENAME=’os_filename_name’,[,SIZE=size][,MAXSIZE={max_size︳UNLIMITED}][,FILEGROWTH=grow_increment])MODIFY FILE (NAME=file_name,SIZE=newsize)REMOVE FILE logical_file_name(4)收缩数据库容量DBCC SHRINKDATABASE (database_name)(5)查看数据库选项EXEC sp_dboption (‘database_name’)二、数据表的基本操作1、创建数据表:create table table_name(列定义,计算列定义,表约束定义)2、表的修改与删除:alter table 表名alter column 列名修改表列属性add (列定义,计算列定义,表约束定义)drop column 列名删除列三、数据的基本操作1、数据的添加Insert into table_name (column1,column2,column3, …)Values (‘expression1’,’expression2’,’expression3’, …)2、数据的修改:update table_namesetcolumn_name=…where <search_conditions>3、数据的删除:1)使用DELETE语句删除数据:Delete talbe_nameWhere search_conditions2)使用TRUNCA TE清空表格:Truncate table table_name4、简单查询SELECT语句的基本语法格式:Select select_listInto new_table_nameFrom talbe_listWhere search_conditionsGroup by group_by_listHaving search_conditionsOrder by order_list[ASC | DESC]选择表中的若干列:1)输出表中的部分列:Select column1,column2,…From talbe_name2)输出表中的所有列:Select *From table_name3)输出计算列:(例)Select 姓名,year(getdate()) - year(出生日期)From 学生4)为结果集内的列指定别名:Select 列名(表达式)列别名FROM 数据源Select 列名(表达式)AS 类别名FROM 数据源Select 列别名=列名(表达式)FROM 数据源5、选择表中的若干记录(以实例为例)1)消除取值重复的行Select distinct 学号From 课程Go2)限制返回行数Select top 3 * 或select n percent *From 课程注册返回前三条记录或者表中前20%的记录Go3)查询满足条件的元组比较大小:Where + 条件表达式确定范围:列表达式【NOT】BETWEEN 起始值AND 终止值例:Where 出生日期between ‘1971-01-01’ and ’1980-12-31’确定集合:where [not] in (列表值1,列表值2……)字符匹配:[not] like ‘<匹配串>’【ESCAPE’<换码字符>’】涉及空值的查询:[not] column_name IS NULL多重条件查询:[not] 逻辑表达式and | or [not] 逻辑表达式6、对查询结果排序order by column1[ASC|DESC] , column[ASC|DESC] , …7、对数据进行统计1)使用集合函数Count ( [ distinct | all ] * ) 统计记录个数Count ( [ distinct | all ]<列名> )统计一列中值的个数Sum ( [ distinct | all ]<列名> )统计一列值的总和(此列必须是数值型)Avg ( [ distinct | all ]<列名> )统计一列值的平均值(此列必须是数值型)Max ( [ distinct | all ]<列名> )统计一列值的最大值Min ( [ distinct | all ]<列名> )统计一列值的最小值Distinct 是去掉制定列中的重复值,all是不取消重复值,默认状态下是all。