程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> SQL控制語句基礎,sql控制語句

SQL控制語句基礎,sql控制語句

編輯:MySQL綜合教程

SQL控制語句基礎,sql控制語句


SQL變量

全局變量:

全局變量是由系統定義和維護的使用兩個@作為前綴,不能由用戶聲明和賦值!

常用的全局變量如下

@@version :獲取當前使用的SQL Server版本號

EG:

select @@version

顯示信息:

-----------------------------------------------------------------------------------------------------------------------------------------Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64)
    Apr  2 2010 15:48:46
    Copyright (c) Microsoft Corporation
    Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: )

@@identity :上條SQL語句返回的標識列的值

EG:

insert into hous(name,price )
values('房間一',299)
select @@IDENTITY  as 標識列

顯示信息:

(1 行受影響)
標識列
---------------------------------------
5

(1 行受影響)
@@rowcount:返回上條SQL語句的受影響行數

insert into hous(name,price )
values('房間一',299)
select @@rowcount as 受影響行數

顯示信息:


(1 行受影響)
受影響行數
-----------
1

(1 行受影響)

@@servername:本地服務器的名稱

EG:

select @@servername

顯示信息:

--------------------------------------------------------------------------------------------------------------------------------
DESKTOP-M5OLTTN

(1 行受影響)

@@error:最後一條sql錯誤的錯誤號

EG:

insert into hous(name,price )
values('房間一')
select @@ERROR as 錯誤號

顯示結果:

消息 109,級別 15,狀態 1,第 1 行
INSERT 語句中列的數目大於 VALUES 子句中指定的值的數目。VALUES 子句中值的數目必須與 INSERT 語句中指定的列的數目匹配。

錯誤號
-----------
109

(1 行受影響)

@@servicename:該計算機上的SQL服務器的名稱

EG:

select @@servicename

顯示結果:

--------------------------------------------------------------------------------------------------------------------------------
MSSQLSERVER

(1 行受影響)

@@language:當前使用的語言的名稱

EG:

select @@language

顯示結果:

--------------------------------------------------------------------------------------------------------------------------------
簡體中文

(1 行受影響)

@@max_connections:可以創建的同時連接的最大數目

EG:

select @@MAX_CONNECTIONS

顯示結果:

-----------
32767

(1 行受影響)

@@timeticks:當前計算機上每刻度的微秒數

EG:

select @@timeticks

顯示結果:

-----------
31250

(1 行受影響)

@@trancount:當前連接打開的事務數

EG:

select @@TRANCOUNT

顯示結果:

-----------
0

(1 行受影響)

局部變量

聲明語法:

declare @variable datatype

其中,variable為局部變量的名稱,datatype為數據類型

賦值語法:

局部變量有兩種復制方式

1.set @variable  = value

2.select @variable=value

set和select的區別

select語句一般用於將表中的數據賦給變量

set語句不支持將表中的數據賦給變量

提示:

給一個變量賦值是set比select的效率更高。set不支持同時給多個變量賦值

SQL輸出語句

在sql server中有兩種輸出方式

1.print 局部變量或字符串

2.select 局部變量或字符串

其中select語句輸出數據是查詢語句的特殊用法

數據類型轉換

語法:

Cast(表達式 as 數據類型)

Convert(數據類型,表達式【,樣式】)

其中“【】”是可選部分。

邏輯控制語句

begin-end

語法:

Begin

語句或語句塊

end

與C#中的“{}”類似,表示語句快的開始和結束。在一個語句塊中可以包含另一個語句塊

IF-else和while與C#類似這裡不再一一說明

Case多分支語句

case 多分支語句也和C#中的是swith選擇結構類似也就語法不同

Case的語法:

Case

when 條件1 then 結果1

when 條件2 then 結果2

……

【else 其他結果】

end

其中“【】”是可選部分

值得注意的是:如果省略Else並且when的條件都不為true則返回的結果為null

批處理-go

它是一條或多條SQL語句的集合,也就是一個可執行單元,每個批處理可以編譯成單個可執行單元,從而提高可執行效率。如果批處理包含多條SQL語句,則執行這些語句的所有優化步驟將編譯在單個執行單元中

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved