日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

SQL 编程

發(fā)布時間:2025/7/14 数据库 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQL 编程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

用SQL編寫程序首先我們要了解SQL的一些編程方法

1.使用變量

變量:是可以存儲數(shù)據(jù)值的對象,可以使用局部變量向SQL語句專遞數(shù)據(jù).

(1)局部變量

T-SQL中,局部變量的名稱必須以標記@作為前綴.

聲明局部變量的語法如下:

語法

declare @variable_name DateType

其中,variable_name 為局部變量的名稱,DateType為數(shù)據(jù)類型.

例如:

Declare @name varchar(8)

Declare @number int

局部變量的賦值有兩種方法:使用SET語句和SELECT語句

語法

set @variable_name = value

或者

select @variable_name = value

/*--查找張三的信息--*/ declare @name varchar(8) set @name = '張三' select StudentNo, StudentName, BornDate,Address from Student where Studentname = @name/*--查找與張三學號相鄰的學生信息--*/ declare @StudentNo int --使用 select 賦值 selece @StudentNo = StudentNo from Student where StudentName = @name select StudentNo, StudentName, BornDate,Address from Student where (StudentNo = @StudentNo+1) or (StudentNo = @StudentNo-1) GO

在T-SQL語言中,為局部變量賦值的語句有SET語句和SELECT語句

下表是set語句和select語句的區(qū)別

?setselect
同時對多個變量賦值不支持支持
表達式返回多個時出錯將返回的最后一個值賦給變量
表達式未返回值時變量被賦值為null變量保持原值
下面代碼體現(xiàn)了set語句和select語句在使用上不同. Declare @Addr nvarchar(100), @name nvarchar(100)Set @addr='', @name='張三' Select @addr='北京', @name='張三'set@addr = (select address from Student) Select @addrc = address from StudentSet @addr = (Select address from Student where 1<0) --查詢無結(jié)果時,@addr被賦值為null select @addr='北京' select @address = Address from Student where 1<0 --查詢無結(jié)果時,@addr保持原值

?全局變量

SQL Server 中的所有全局變量都使用兩個@符號作為前綴

最重要的五個全局變量

變量含義
@@error最后一個T-SQL錯誤的錯誤號
@@identity最后一次插入的標識值
@@powcount受上一個SQL語句影響的行數(shù)
@@servername本地服務器名稱
@@versionSQL Server 版本信息

輸出語句

語法

print 局部變量或字符串

select 局部變量as自定義列名

print '服務器名稱:' + @@servername print 'SQL Server的版本' +@@version select @@servername as '服務器名稱' server @@version as 'SQL Server的版本'

局部變量

01.語法

Declare?@age?int

--賦值

Set?@age=20

?

邏輯控制語句

(1)begin-end語句

語法

begin

語句或語句塊

end

作用類似于C#中的 ‘{}‘

(2)if-else語句

語法

if(條件)

語句或語句塊1

else

語句或語句塊2

declare @avg int select @avg= AVG(studentresult) from Result,Subject where Result.SubjectId=Subject.SubjectId and ExamDate>='2013-08-09' and ExamDate<'2013-08-10' and Subject.SubjectName='oop'--02.判定:>=70 顯示優(yōu)秀,同時顯示分數(shù)最高的三個人的分數(shù)if(@avg>=70)beginprint '優(yōu)秀'--顯示前名成績 當天 oopselect top 3 * from Result,Subjectwhere result.SubjectId=Subject.SubjectIdand ExamDate>='2013-08-09'and ExamDate <'2013-08-10'and SubjectName='oop'--降序排列descorder by StudentResult descendelsebeginprint '較差'--顯示前名成績 當天 oopselect top 3 * from Result,Subjectwhere result.SubjectId=Subject.SubjectIdand ExamDate>='2013-08-09'and ExamDate <'2013-08-10'and SubjectName='oop'--降序排列descorder by StudentResult ascend

(3)while循環(huán)語句

語法

while(條件)

  begin

    語句或語句塊

  [brwak | continue]

end

(4)case多分支語句

?case

  when 條件1 then 結(jié)果 1

  when 條件2 then 結(jié)果2

  [else 其他結(jié)果]

end

declare @date datetime select @date = max(Examdate) from result inner join Subjiect on result.SubjectNo=Subjiect.SubjiectNo where SubjectName='java logic'select 學號=StudentNO, 成績=casewhen StudentResult >90 then 'A'when StudentResult >80 then 'B'when StudentResult >80 then 'C'when StudentResult >80 then 'D'else 'A' endfrom resultinner join Subjiect on result.SubjectNo=Subjiect.SubjiectNowhere SubjectName='java logic'

?

轉(zhuǎn)載于:https://www.cnblogs.com/baixingqiang/p/5236155.html

總結(jié)

以上是生活随笔為你收集整理的SQL 编程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。