SQLsever数据库第二章Transact-SQL语法.ppt

上传人:小飞机 文档编号:6520860 上传时间:2023-11-08 格式:PPT 页数:46 大小:290.99KB
返回 下载 相关 举报
SQLsever数据库第二章Transact-SQL语法.ppt_第1页
第1页 / 共46页
SQLsever数据库第二章Transact-SQL语法.ppt_第2页
第2页 / 共46页
SQLsever数据库第二章Transact-SQL语法.ppt_第3页
第3页 / 共46页
SQLsever数据库第二章Transact-SQL语法.ppt_第4页
第4页 / 共46页
SQLsever数据库第二章Transact-SQL语法.ppt_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《SQLsever数据库第二章Transact-SQL语法.ppt》由会员分享,可在线阅读,更多相关《SQLsever数据库第二章Transact-SQL语法.ppt(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 manipulation language用于观察、添加、

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

4、用于单行注释;另一种是与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的数据类型,日期型示例:2009-10-15 10:36:20:778,SQL的数据类型,SQL的数据类型,常用类型字符型 char(

6、n),varchar(n),nchar(n),nvarchar(n)数字型 int,float,decimal(p,s)位型 bit文本型 text,ntext图形 image日期时间型 datatime,变量定义,Transact-SQL语言中有两种形式的变量,一种是用户自己定义的局部变量,另外一种是系统提供的全局变量。局部变量是用户可自定义的变量,它的作用范围仅在程序内部。在程序中通常用来储存从表中查询到的数据,或当作程序执行过程中暂存变量。局部变量定义:使用局部变量必须以开头,而且必须先用DECLARE 命令说明后才可使用。DECLARE 变量名 变量类型,变量名 变量类型,变量定义,局

7、部变量必须使用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系统内部使用的变量。任何程序都可以随时调用全局变量;全局变量通常存储一些SQL Server的配置设定值和统计数据。用户可以在程序中用全局变量来测试系统的设定值或者是Transact-SQL命令执行后的状态值;用户只能使用预先定义的全局变量;

8、引用全局变量时,必须以标记符“”开头;如:ERROR 返回最后执行的 Transact-SQL 语句的错误代码。SERVERNAME,VERSION,ROWCOUNT,运算符,算术运算算术运算符可以在两个表达式上执行数学运算,这两个表达式可以是数字数据类型分类的任何数据类型。算术运算符包括加(+)、减(-)、乘(*)、除(/)和取模(%);赋值运算只有一个赋值运算符,即等号(=)。另外等号还在关系运算中做比较用。位运算位运算符使我们能够在整型数据或者二进制数据(image 数据类型除外)之间执行位操作。两个数按位与&,按位或|,按位异或。关系运算用于比较两个表达式的大小或是否相同,其比较的结果

9、是布尔值,即TRUE(表示表达式的结果为真)、FALSE(表示表达式的结果为假)以及UNKNOWN。除了 text、ntext 或 image 数据类型的表达式外,比较运算符可以用于所有的表达式。,运算符,逻辑运算逻辑运算符可以把多个逻辑表达式连接起来。逻辑运算符包括AND、OR和NOT等运算符。逻辑运算符和比较运算符一样,返回带有 TRUE 或 FALSE 值的布尔数据类型。字符串运算连接运算符+用于连接两个或两个以上的字符或二进制串、列名或者串和列的混合体,将一个串加入到另一个串的末尾。示例:declare age char(10);set age=abc+123;print age;,运

10、算符,括号:()乘、除、求模运算符:*、/、%加减运算符:+、-比较运算符:=、=、!=、!、!位运算符:、&、|逻辑运算符:NOT逻辑运算符:AND逻辑运算符:OR,SQL Server常用函数,字符串函数日期和时间函数数学函数转换函数系统函数聚合函数其它函数,SQL Server常用函数,基本字符串函数Lower,Upper,Ltrim,RtrimReverse(char)返回字符表达式的反转。Replicate(char,int)以指定的次数重复字符表达式。STUFF(char1,int,int,char2)删除指定长度的字符并在指定的起始点插入另一组字符。Select stuff(ab

11、cdef,2,3,123456);结果:a123456ef,SQL Server常用函数,字符串查找函数:Charindex(char1,char2,int)返回字符串char2 中指定表达式 char1 的起始位置。Patindex(%pattern%,expression)返回指定表达式中某模式第一次出现的起始位置;长度和分析函数:Datalength(char),Left(char,int),Right(char,int)Substring(expression,start,length),SQL Server常用函数,示例:输出结果declare a varchar(10),b var

12、char(10);set a=123;set b=345123678;Print Patindex(%123%,b)print Charindex(a,b);,SQL Server常用函数,转换函数:Ascii(char)返回字符表达式最左端字符的 ASCII 代码值;Char(int)将 int ASCII 代码转换为字符的字符串函数;Str(float)把数字转换为字符数据。,SQL Server常用函数,聚合函数AVG 求平均值COUNT 统计数目MAX 求最大值MIN 求最小值SUM 求和,SQL Server常用函数,DATENAME 返回代表指定日期的指定日期部分的字符串。DATE

13、PART 返回代表指定日期的指定日期部分的整数。,Datepart取值,流程控制语句,流程控制语句是指那些用来控制程序执行和流程分支的命令,在SQL Server 中,流程控制语句主要用来控制SQL语句、语句块或者存储过程的执行流程。IFELSEBEGINENDCASEWHILECONTINUEBREAKGOTOWAITFORRETURN,流程控制语句,IFELSE语法:IF Boolean_expression sql_statement|statement_block ELSE sql_statement|statement_block 如果布尔表达式中含有 SELECT 语句,必须用圆括

14、号将 SELECT 语句括起来。建议始终使用圆括号。,流程控制语句,IFELSE语句示例:declare x int,y int,z int;select x=1,y=2,z=3;if x y print x y;-打印字符串x y else if y z print y z;else print z y;,流程控制语句,BEGINENDBEGINEND语句能够将多个SQL语句组合成一个语句块,并将它们视为一个单元处理。在条件语句和循环等控制流程语句中,当要执行的语句超过一个时,就需要使用BEGINEND语句。语法:BEGINsql_statement|statement_block END,

15、流程控制语句,BEGINEND语句示例declare SCORE FLOAT;if(select avg(成绩)from 学生信息)70begin print 平均分小于70;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_re

16、sult_expression END,流程控制语句,CASE 示例1Declare i int,str char(10);set str=b;set i=case str when a then 97 when b then 98 else 99end;print i;,流程控制语句,CASE 示例2Declare str1 char(10),str2 char(10);set str1=b;set str2=case when str1=a then A when str1=b then B else Cend;print str2;,流程控制语句,WHILECONTINUEBREAKWH

17、ILECONTINUEBREAK语句用于设置重复执行 SQL 语句或语句块的条件。只要指定的条件为真,就重复执行语句。CONTINUE语句可以使程序跳过CONTINUE语句后面的语句,回到WHILE循环的第一行命令;BREAK语句则使程序完全跳出循环,结束WHILE语句的执行。,流程控制语句,语法:WHILE BEGIN sql_statement|statement_block CONTINUE BREAK sql_statement|statement_block END,流程控制语句,WHILE 语句示例declare x int,y int,c int;select x=1,y=1;w

18、hile x3begin print x;-打印变量x 的值 while y3 begin select c=100*x+y;print c;-打印变量c 的值 select y=y+1;end;select x=x+1;select y=1;end;,流程控制语句,GOTO语法:Goto LabelGOTO 语句用来改变程序执行的流程,使程序跳到标有标识符的指定程序行,再继续往下执行。作为跳转目标的标识符可为数字与字符的组合,但必须以冒号结尾。如标签定义:Label:,流程控制语句,GOTO 示例declare sum int,count int;select sum=0,count=1;l

19、abel_1:select sum=sum+count;select count=count+1;if count=5 goto label_1;print count;print sum;,流程控制语句,WAITFOR语句WAITFOR语句用于暂时停止执行SQL语句、语句块或者存储过程等,直到所设定的时间已过或者所设定的时间已到才继续执行。语法:WAITFOR DELAY time|TIME time DELAY一直等到指定的时间过去,最长可达 24 小时。TIME 等待到指定时间time为日期时间型,只需指定时间,不指定日期,格式:hh:mm:ss,流程控制语句,WAITFOR 示例dec

20、lare i int;set i=10;waitfor DELAY 00:00:05print i;,流程控制语句,RETURN 语句RETURN语句用于无条件地终止一个查询、存储过程或者批处理,此时位于RETURN语句之后的程序将不会被执行。语法:RETURN integer_expression 参数integer_expression为返回的整型值。存储过程可以给调用过程或应用程序返回整型值。,流程控制语句,RETURN的返回值及其含义,0 程序执行成功-1 找不到对象-2 数据类型错误-3 死锁-4 违反权限原则-5 语法错误-6 用户造成的一般错误,-7 资源错误如磁盘空间不足-8

21、非致命的内部错误-9 已达到系统的极限-10-11 致命的内部不一致性错误-12 表或指针破坏-13 数据库破坏-14 硬件错误,与高级语言区别,SQL不提供建立程序界面的语句。SQL不提供从控制台获得变量值的语句,象C语言中的 Scanf。SQL中无数组定义语句。SQL语句不能被编译成可执行文件,执行方式:命令语句-SQL代理程序-RDBMS。SQL语句中具有针对RDBMS管理和维护的大量命令,是其它高级语言所不具备的。,掌握内容,SQL的数据类型char,varchar,int,float,bit,decimal,text,image,datetime变量定义declare,set,select运算符数学运算,关系运算,逻辑运算,位运算流程控制语句Beginend,ifelse,case,goto,waitfor,whilecontinuebreak,return,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号