Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation
Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement.Téléchargez la présentation en cliquant sur ce lien.Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.
create view 客户订单视图 as select a.编号,a.姓名,a.电话,b.货品编码,b.订货日期 from 客户信息 a inner join 订单信息 b on a.编号=b.客户编号 go select * from 客户订单视图 Go 由于CREATE VIEW 建立视图语句不能和其他使用语句放在同一个批处理中,所以需要GO命令将CREATE VIEW语句与其下的语句SELECT分成两个批处理。否则SQL Server将报错。
局部变量的初值为NULL,可以使用SELECT或SET语句对局部变量进行赋值。SET语句一次只能给一个局部变量赋值,而SELECT语句可以同时给一个或多个变量赋值。局部变量的初值为NULL,可以使用SELECT或SET语句对局部变量进行赋值。SET语句一次只能给一个局部变量赋值,而SELECT语句可以同时给一个或多个变量赋值。 例8-2:定义两个局部变量,用他们来显示当前的日期。 本例中给出了两种显示方式:PRINT显示在“消息”框,而SELECT显示在“网格”框。 declare @todayDate char(10),@dispStr varchar(20) set @todayDate=getdate() set @dispStr='今天的日期为:' print @dispstr+@todaydate select @dispstr+@todaydate
例题:通过SELECT语句来给多个变量赋值。 declare @name varchar(50),@lianxiren varchar(10),@address varchar(50) declare @msgstr varchar(80) --变量赋值 select @name=名称,@lianxiren=联系人,@address=地址 from 供应商信息 set @msgstr='供应商名:'+@name+' 联系人:'+@lianxiren+' 地址:'+@address --显示信息 select @msgstr Go
当返回的行数大于1时,仅最后一行的数据赋给变量。当返回的行数大于1时,仅最后一行的数据赋给变量。 Select 名称,联系人,地址 from 供应商信息 返回6条记录,仅最后一行赋给了变量值。如果要每一行一行地进行处理,则需要用到游标或循环的概念。 例8-3:利用例8-1给出的“客户订单视图”和“货品视图”,将客户编号为2的客户订货信息显示一条消息,该消息给出客户姓名、电话、订货日期、货品名称、供应商。
declare @uName varchar(10),@uTel varchar(10),@uOrder varchar(10) declare @goodN varchar(30),@company varchar(30) declare @MsgStr varchar(80) select @uName=a.姓名,@uTel=a.电话,@uOrder=a.订货日期, @goodN=b.货品名称,@Company=b.供应商名称 from 客户订单视图 a inner join 货品视图 b on a.货品编码=b.编码 and a.编号=2 set @MsgStr='客户'+@uName+'联系电话'+@uTel+'于'+@uOrder+'订购了'+@company+'的' +@goodN+'.' print @MsgStr go
例8-4:局部变量引用出错的演示。 局部变量的作用域,只能在声明它的批处理内部。一旦批处理消失,局部变量也将自动消失。 Declare @dispstr varchar(20) Set @dispstr='这是一个局部变量引用出错的演示' Go --批处理在这里结束,局部变量被清除。 Print @dispstr Go
Print 'Mary的年龄是'+cast(datediff(year,'1980/8/13',getdate()) as char(2))+'岁,核'+cast(datediff(day,'1980/8/13',getdate())as char(5))+'天' Go select 'Mary的年龄是'=datediff(year,'1980/8/13',getdate()) ,datediff(day,'1980/8/13',getdate()) Go
设置日期输入格式用 SET DATEFORMAT。它用于设置输入DATETIME或SMALLDATATIME 数据的日期部分的顺序。 格式为: SET FORMAT {格式|@格式变量} 格式的有效参数包括mdy(月日年)、dmy(日月年)、ymd(年月日)、ydm(年日月)、myd(月年日)、dym(日年月)。美国英语默认值是mdy。
例8-11:演示SET DATEFORMAT 和CONVERT函数的使用方法。 set dateformat mdy declare @dt datetime set @dt='03.03.03 03:03:03 PM' select 默认格式=@dt, 仅有日期=convert(varchar(30),@dt,102), 仅有时间=convert(varchar(30),@dt,108), 仅有日期=convert(varchar(30),@dt,111), 日期和时间=convert(varchar(30),@dt,120)
declare @rl REAL set @rl=2568 select 实数6位=convert(varchar(40),@rl,0), 实数8位=convert(varchar(40),@rl,1), 实数16位=convert(varchar(40),@rl,2) Declare @my money set @my=9635225.36 select 货币默认=convert(varchar(25),@my,0), 货币1=convert(varchar(25),@my,1), 货币2=convert(varchar(25),@my,2)