网站黄色在线观看视频,男人和女人操逼有免费的视频吗2018高清,91熟女丨老女人丨高潮丰满,丝袜高潮流白浆潮喷在线播放

中國站

中國站

國際版

聯(lián)系我們

400-002-9968

售前咨詢

售后服務(wù)

注冊 登錄

博客 > SQL知識:SQL變量定義、分類及應(yīng)用場景

SQL知識:SQL變量定義、分類及應(yīng)用場景

  • 標(biāo)簽:
  • 變量
  • SQL
  • SQL變量
  • 變量賦值

瀏覽量:1829次評論:0次

作者:銳成網(wǎng)絡(luò)整理時間:2024-05-30 15:58:32

在數(shù)據(jù)庫管理系統(tǒng)中,SQL語言是一種用于操作和管理數(shù)據(jù)的標(biāo)準(zhǔn)化語言,它通常被用于查詢、插入、更新和刪除數(shù)據(jù)庫中的數(shù)據(jù)。其中,變量是在SQL可以進(jìn)行賦值的參數(shù)。今天,我們將介紹在SQL中變量的定義、分類以及應(yīng)用場景

SQL知識:SQL變量定義、分類及應(yīng)用場景

一、變量的定義

SQL Server中的變量就是一個參數(shù),可以對這個參數(shù)進(jìn)行賦值。

二、變量的分類

變量分為局部變量和全局變量,局部變量用@來標(biāo)識,全局變量用@@來標(biāo)識(常用的全局變量一般都是已經(jīng)定義好的)

三、聲明變量

變量在使用前必須先聲明才能夠使用。

申明局部變量語法

DECLARE @變量名 數(shù)據(jù)類型;

例如:

DECLARE @A INT;

這樣就聲明了一個整數(shù)型的變量@A

四、局部變量賦值

聲明完了變量就可以給變量賦值了,變量賦值有兩種方式SET 或 SELECT

語法

SET 變量名=值
SELECT  變量名1=值1,變量名2=值2

從上面的語法大家可能已經(jīng)看出兩種賦值方式的區(qū)別了,SET只能給一個變量賦值,SELECT 可以給多個變量賦值。

例如

SET @A=3
SELECT @A=字段名1,@B=字段名2 FROM TABLE

五、變量常用場景

變量一般用作參數(shù)去給字段賦值,即將變量的值反過來賦值給字段。

我們以表Customers作為示例表

SQL知識:SQL變量定義、分類及應(yīng)用場景

Customers

DECLARE @ID INT
DECLARE @NAME VARCHAR2(50)
DECLARE @ADDRESS VARCHAR2(50)
--用SET方法給變量賦值 , 此方法一次只能給一個變量賦值
SET @ID=1
--將部門ID為1的客戶姓名和地址,賦值給@NAME和@ADDRESS變量 ,此方法能一次多個變量賦值
SELECT @NAME=姓名,@ADDRESS=地址 FROM Customers WHERE 客戶ID=@ID
--查詢變量里的結(jié)果
SELECT @NAME,@ADDRESS

結(jié)果如下:

SQL知識:SQL變量定義、分類及應(yīng)用場景

如果我們想查詢其他ID的姓名和地址,只需要更改一下@ID的值即可。

Q:可能有人會問,我直接把值寫在客戶ID后面不就可以了嗎?為什么寫這么長一段內(nèi)容來要使用變量呢?

這里有兩個原因

1、使用簡便

當(dāng)一個查詢里同一個字段需要修改的地方較多的時候,我們只需要修改這個字段對應(yīng)的變量內(nèi)容,那么所有的字段對應(yīng)的值都會一起跟著修改。

例如

要查詢學(xué)生們對應(yīng)的不同老師的信息:

DECLARE @ID INT
SET @ID=1
SELECT * FROM TEST 
WHERE Teacher=@ID AND Student='張三'
UNION ALL
SELECT * FROM TEST 
WHERE Teacher=@ID AND Student='李四'
UNION ALL
SELECT * FROM TEST 
WHERE Teacher=@ID AND Student='王五'
UNION ALL
SELECT * FROM TEST 
WHERE Teacher=@ID AND Student='馬六'
UNION ALL
SELECT * FROM TEST 
WHERE Teacher=@ID AND Student='趙七'

我們只需要修改@ID的值,下面的所有查詢的ID都會變更。

2、可以提高查詢效率。

當(dāng)我們使用查詢的使用,數(shù)據(jù)庫在執(zhí)行這個查詢語句的時候,如果不使用變量來修改值,實(shí)際上是兩個查詢。

例如:

SELECT * FROM TEST WHERE Student='張三';
SELECT * FROM TEST WHERE Student='李四'

執(zhí)行這兩個查詢,數(shù)據(jù)庫會制定兩個執(zhí)行計劃,而制定執(zhí)行計劃是需要消耗系統(tǒng)資源的。

而如果我們改成:

DECLARE @NAME VARCHAR(20)
SET @NAME='張三'
SELECT * FROM TEST WHERE Student=@NAME

當(dāng)我們修改@NAME的值為'李四'的時候,數(shù)據(jù)庫還是會使用之前的執(zhí)行計劃。這樣就節(jié)省了時間。

六、全局變量

全局變量使用@@來表示,一般都是系統(tǒng)預(yù)定義的一些全局變量。常用的全局變量有

@@ERROR ——最后一個SQL錯誤的錯誤號

@@IDENTITY —–最后一次插入的標(biāo)識值

@@LANGUAGE —–當(dāng)前使用的語言的名稱

@@MAX_CONNECTIONS – 可以創(chuàng)建的同時連接的最大數(shù)目

@@ROWCOUNT —-受上一個SQL語句影響的行數(shù)

@@SERVERNAME —-本地服務(wù)器的名稱

@@TRANSCOUNT —–當(dāng)前連接打開的事物數(shù)

@@VERSION —–SQL Server的版本信息

例如查詢數(shù)據(jù)庫的版本號

PRINT @@VERSION

結(jié)果:

查詢本地服務(wù)器的名稱

PRINT @@SERVERNAME

結(jié)果:

SQL知識:SQL變量定義、分類及應(yīng)用場景

這些信息都存儲在全局變量中,當(dāng)發(fā)生改變時,全局變量的值也會跟著改變。

重要聲明:本文來自SQL數(shù)據(jù)庫開發(fā),經(jīng)授權(quán)轉(zhuǎn)載,版權(quán)歸原作者所有,不代表銳成觀點(diǎn),轉(zhuǎn)載的目的在于傳遞更多知識和信息。

我的評論

還未登錄?點(diǎn)擊登錄

微信掃碼溝通
微信掃碼溝通

微信掃碼溝通

AI
return head