sqlsever数据库第二章transact-sql语法

上传人:tian****1990 文档编号:73390977 上传时间:2019-01-25 格式:PPT 页数:46 大小:559.50KB
返回 下载 相关 举报
sqlsever数据库第二章transact-sql语法_第1页
第1页 / 共46页
sqlsever数据库第二章transact-sql语法_第2页
第2页 / 共46页
sqlsever数据库第二章transact-sql语法_第3页
第3页 / 共46页
sqlsever数据库第二章transact-sql语法_第4页
第4页 / 共46页
sqlsever数据库第二章transact-sql语法_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《sqlsever数据库第二章transact-sql语法》由会员分享,可在线阅读,更多相关《sqlsever数据库第二章transact-sql语法(46页珍藏版)》请在金锄头文库上搜索。

1、第二章 Transact-SQL语法,Transact-SQL语言概述 SQL语句使用说明 SQL的数据类型 变量定义 运算符 SQL Server常用函数 流程控制语句 与高级语言区别 掌握内容,Transact-SQL语言概述,SQL发展 20世纪70年代,IBM公司开始开发可以用于实现关系模型的语言和数据库系统; 1975年在IBM公司的System R上首次实现。原型称为SEQUEL(Structured English Query Language) SQL-86是第一个SQL标准; SQL-89、SQL-92(SQL2)、SQL-99(SQL3); SQL是数据子语言,缺乏其它语言

2、具有的许多基本编程能力,必须与应用语言共同使用才能提供访问数据库的方法。 使用SQL 查询数据库时,只需要告诉它做什么而不用告诉它如何去做。 结构化语言与面向过程和面向对象语言区别 人性化,符合人们的思维方式,容易理解和掌握,Transact-SQL语言概述,数据定义语言 DDL data definition language 用于创建、修改或删除数据库对象 Create,Alter,Drop; 数据控制语言 DCL data control language 可以控制访问数据库中特定对象的用户, 通过Grant或Revoke语句授权或限制访问。 数据操纵语言 DML data manipu

3、lation language 用于观察、添加、修改或删除存储在数据库中对象的数据。Select,Insert,Update,Delete,SQL语句使用说明,每条SQL语句以分号结束; 每条SQL语句可以单独写成一行,也可以分成若干行; SQL语句对大小写不敏感,对于SQL语句的关键字、表名、列名等,可以大小写混合; SQL Server用三段式名字标识对象:,前两者可以省略,数据库的默认值是当前数据库,所有者名的默认值是数据库的所有者dbo。 如: pubs.dbo.authors,SQL语句使用说明,注释 注释是程序代码中不执行的文本字符串(也称为注解)。在SQL Server中,可以使

4、用两种类型的注释字符:一种是ANSI标准的注释符“-”,它用于单行注释;另一种是与C语言相同的程序注释符号,即“/* */”。 语句表示: CREATE GLOBAL|LOCAL TEMPORARY TABLE ( ,) ON COMMIT PRESERVE | DELETE ROWS ,SQL的数据类型,如果该列存储的数据长度相同,应该用char(n),否则用varchar(n); 如果长度差别不大,希望提高查询效率,可以使用char(n) 需要存储中文字符时,最好使用nchar(n)和nvarchar(n)(示例),SQL的数据类型,在选择整型数时,默认情况下使用int; 如果确认要存储的

5、数据很大或很小,可以考虑使用其它类型 如果提供的数据超过其允许的取值范围,将将发生数据溢出错误。 (示例),SQL的数据类型,在 = 和 运算符,应避免使用 float 或 real 参与科学计算的数据可以float 或 real Decimai和numeric相同,0 = s = p = 38 例如:decimal(6,2),可以存储精度为6,小数位为2的数据 (示例),SQL的数据类型,SQL的数据类型,注释 如果在数据定义或变量声明语句中没有指定 n,默认长度为 1。 当列数据项大小一致时应使用 binary。 当列数据项大小不一致时应使用 varbinary。,SQL的数据类型,日期型

6、示例:2009-10-15 10:36:20:778,SQL的数据类型,SQL的数据类型,常用类型 字符型 char(n),varchar(n),nchar(n) ,nvarchar(n) 数字型 int, float, decimal(p,s) 位型 bit 文本型 text,ntext 图形 image 日期时间型 datatime,变量定义,Transact-SQL语言中有两种形式的变量,一种是用户自己定义的局部变量,另外一种是系统提供的全局变量。 局部变量是用户可自定义的变量,它的作用范围仅在程序内部。在程序中通常用来储存从表中查询到的数据,或当作程序执行过程中暂存变量。 局部变量定义

7、: 使用局部变量必须以开头,而且必须先用DECLARE 命令说明后才可使用。 DECLARE 变量名 变量类型 ,变量名 变量类型,变量定义,局部变量必须使用SELECT 或SET 命令来设定变量的值,其语法如下: SELECT 变量名= 变量值 SET 变量名= 变量值 示例: declare age int , born datetime; Set age=21; Set born=1981-10-20 17:20:12:000; Print age ; Print born ;,变量定义,全局变量是SQL Server系统内部使用的变量。任何程序都可以随时调用全局变量; 全局变量通常存储

8、一些SQL Server的配置设定值和统计数据。用户可以在程序中用全局变量来测试系统的设定值或者是Transact-SQL命令执行后的状态值; 用户只能使用预先定义的全局变量; 引用全局变量时,必须以标记符“”开头; 如:ERROR 返回最后执行的 Transact-SQL 语句的错误代码。 SERVERNAME,VERSION,ROWCOUNT,运算符,算术运算 算术运算符可以在两个表达式上执行数学运算,这两个表达式可以是数字数据类型分类的任何数据类型。算术运算符包括加(+)、减(-)、乘(*)、除(/)和取模(%); 赋值运算 只有一个赋值运算符,即等号(=)。另外等号还在关系运算中做比较

9、用。 位运算 位运算符使我们能够在整型数据或者二进制数据(image 数据类型除外)之间执行位操作。两个数按位与 & ,按位或 |,按位异或 。 关系运算 用于比较两个表达式的大小或是否相同,其比较的结果是布尔值,即TRUE(表示表达式的结果为真)、FALSE(表示表达式的结果为假)以及UNKNOWN。除了 text、ntext 或 image 数据类型的表达式外,比较运算符可以用于所有的表达式。,运算符,逻辑运算 逻辑运算符可以把多个逻辑表达式连接起来。逻辑运算符包括AND、OR和NOT等运算符。逻辑运算符和比较运算符一样,返回带有 TRUE 或 FALSE 值的布尔数据类型。 字符串运算

10、连接运算符 + 用于连接两个或两个以上的字符或二进制串、列名或者串和列的混合体,将一个串加入到另一个串的末尾。 示例: declare age char(10); set age=abc+123; print age;,运算符,括号:() 乘、除、求模运算符:*、/、% 加减运算符:+、- 比较运算符:=、=、!=、!、! 位运算符:、&、| 逻辑运算符:NOT 逻辑运算符:AND 逻辑运算符:OR,SQL Server常用函数,字符串函数 日期和时间函数 数学函数 转换函数 系统函数 聚合函数 其它函数,SQL Server常用函数,基本字符串函数 Lower,Upper,Ltrim,Rtr

11、im Reverse(char) 返回字符表达式的反转。 Replicate(char,int) 以指定的次数重复字符表达式。 STUFF(char1,int,int,char2) 删除指定长度的字符并在指定的起始点插入另一组字符。 Select stuff(abcdef, 2, 3, 123456) ; 结果:a123456ef,SQL Server常用函数,字符串查找函数: Charindex(char1,char2 ,int) 返回字符串char2 中指定表达式 char1 的起始位置。 Patindex(%pattern% , expression ) 返回指定表达式中某模式第一次出现

12、的起始位置; 长度和分析函数: Datalength(char),Left(char,int),Right(char,int) Substring(expression , start , length ),SQL Server常用函数,示例:输出结果 declare a varchar(10),b varchar(10); set a=123; set b=345123678; Print Patindex(%123%,b) print Charindex( a,b);,SQL Server常用函数,转换函数: Ascii(char) 返回字符表达式最左端字符的 ASCII 代码值; Cha

13、r(int) 将 int ASCII 代码转换为字符的字符串函数; Str(float) 把数字转换为字符数据。,SQL Server常用函数,聚合函数 AVG 求平均值 COUNT 统计数目 MAX 求最大值 MIN 求最小值 SUM 求和,SQL Server常用函数,DATENAME 返回代表指定日期的指定日期部分的字符串。 DATEPART 返回代表指定日期的指定日期部分的整数。 。,Datepart取值,流程控制语句,流程控制语句是指那些用来控制程序执行和流程分支的命令,在SQL Server 中,流程控制语句主要用来控制SQL语句、语句块或者存储过程的执行流程。 IFELSE BE

14、GINEND CASE WHILECONTINUEBREAK GOTO WAITFOR RETURN,流程控制语句,IFELSE 语法: IF Boolean_expression sql_statement | statement_block ELSE sql_statement | statement_block 如果布尔表达式中含有 SELECT 语句,必须用圆括号将 SELECT 语句括起来。 建议始终使用圆括号。,流程控制语句,IFELSE语句示例: declare x int, y int, z int; select x = 1, y = 2, z=3; if x y print

15、 x y ; -打印字符串x y else if y z print y z; else print z y ;,流程控制语句,BEGINEND BEGINEND语句能够将多个SQL语句组合成一个语句块,并将它们视为一个单元处理。在条件语句和循环等控制流程语句中,当要执行的语句超过一个时,就需要使用BEGINEND语句。 语法: BEGIN sql_statement | statement_block END,流程控制语句,BEGINEND语句示例 declare SCORE FLOAT; if(select avg(成绩) from 学生信息)70 begin print 平均分小于70

16、; select score=min(成绩) from 学生信息; end; else select score=max(成绩) from 学生信息; print score;,流程控制语句,CASE CASE函数可以计算多个条件式,并将其中一个符合条件的结果表达式返回。 语法: CASE input_expression WHEN when_expression THEN result_expression .n ELSE else_result_expression END,流程控制语句,CASE 示例1 Declare i int,str char(10); set str=b; set i= case

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号