天天看點

SQL Serever學習13——資料庫程式設計語言程式設計基礎

程式設計基礎

注釋

注釋命名來對一些語句進行說明,便于日後維護或者其他使用者了解,注釋不會執行。

單行注釋

SELECT GETDATE() --查詢目前日期
      
SQL Serever學習13——資料庫程式設計語言程式設計基礎

多行注釋

/*
注釋有助于
了解操作的内容
查詢目前日期
*/
SELECT GETDATE() 
      

變量

在T-SQL執行指令時,可以申明變量臨時存儲各種資料,申明時被初始化為NULL,隻能代替數值,不能代替對象或關鍵字

局部變量

必須先用DECLARE 語句定義,局部變量在名稱前加@

SELECT 指派語句喲啊保證結果不超過一條資料,否則将會把最後一條資料賦予變量

/*申明變量*/
DECLARE @name VARCHAR(10)
/*指派變量*/
SET @name='LUCAS'
/*輸出變量*/
SELECT @name 
      

全局變量

sqlserver系統内部使用的變量,作用範圍是整個系統的任何程式,以@@開頭,常用的全局變量有:

@@ERROR,最後一個T-SQL錯誤代碼

@@IDENTITY,最後一個插入的标示值

@@LANGUAGE,目前使用的語言

@@ROWCOUNT,受上一個SQL語句影響的行數

@@SERVERNAME,本地伺服器名稱

@@VERSION,sqlserver版本資訊

PRINT @@ERROR
PRINT @@IDENTITY
PRINT @@LANGUAGE
PRINT @@ROWCOUNT
PRINT @@SERVERNAME
PRINT @@VERSION
      

輸出為

SQL Serever學習13——資料庫程式設計語言程式設計基礎

輸出語句

PRINT 使用中文方式輸出

SELECT 使用表格方式輸出

批處理語句

批處理是一個T-SQL語句集,集合中的語句一起送出給sqlserver作為一個整體執行。GO就是批處理标志。

sqlserver會将批處理編譯成一個可執行單元(執行計劃),提高執行效率。

一般情況,一些操作放在同一個批處理指令,但是如果是建立資料庫或其他對象的語句,則必須在結尾添加GO,便于與其他指令分開執行。

批處理有3種限制:

  • CREATE 語句不能與其他語句組合使用
  • 如果批處理指令有改字段名稱,則不能在同一個批進行中使用該字段新名稱
  • 如果EXECUTE 語句是批處理第一句,則可以省略EXECUTE關鍵字,否則不可以省略

IF...ELSE語句

統計商品平均價格,如果均價在2000元以上輸出“總體價格較貴”,并顯示最貴商品資訊;如果在2000以下,顯示“總體價格便宜”,并顯示最便宜商品資訊。

DECLARE @avgjg FLOAT
--擷取均價
SELECT @avgjg=AVG(進價) FROM 商品表
PRINT '所有商品的均價為:'+CONVERT(VARCHAR(5),@avgjg)

--進行判斷
IF(@avgjg>=2000)
	BEGIN
		PRINT '總體價格較貴,最貴商品是:'
		SELECT TOP 1 * FROM 商品表 ORDER BY 進價 DESC
	END
ELSE
	BEGIN
		PRINT '總體價格便宜,最便宜商品是:'
		SELECT TOP 1 * FROM 商品表 ORDER BY 進價
	END
      
SQL Serever學習13——資料庫程式設計語言程式設計基礎

  注意:如果需要将表格數與文本資料同時顯示,需要設定:工具-》選項-》查詢結果-》顯示結果的預設方式,選擇以文本格式顯示結果

SQL Serever學習13——資料庫程式設計語言程式設計基礎

WHILE語句

将所有銷售利潤在10%以下商品的銷售價格增加10元,如果仍有商品銷售利潤在10%以下的,在增加10元,直到所有商品價格利潤都在10%以上,最後顯示增加最多的商品增加的錢數。

PRINT '開始更新銷售額偏低商品的價格'
DECLARE @cs INT
SET @cs=0
WHILE ((SELECT COUNT(*) FROM 商品表 WHERE 銷售價/進價<1.1)>0)
	BEGIN
		UPDATE 商品表
		SET 銷售價=銷售價+10
		WHERE 銷售價/進價<1.1
		SET @cs=@cs+10
		IF((SELECT COUNT(*) FROM 商品表 WHERE 銷售價/進價<1.1)=0)
			BREAK
	END
PRINT '增加最多的商品,增加了:'+CONVERT(VARCHAR(8),@cs)+'元'
GO
      
SQL Serever學習13——資料庫程式設計語言程式設計基礎

多分支語句CASE

對A牌所有商品分類,進價高于3000元為高價商品,1000-3000元為中價商品,1000以下為低價商品

SELECT 商品名稱,型号,進價=
	CASE
		WHEN 進價>3000 THEN '高價商品'
		WHEN 進價 BETWEEN 1000 AND 3000 THEN '中價商品'
		WHEN 進價<1000 THEN '低價商品'
	END
FROM 商品表
      
SQL Serever學習13——資料庫程式設計語言程式設計基礎