T SQL簡介及基本語法

2021-09-02 14:26:13 字數 4100 閱讀 5701

sql server用於運算元據庫的程式語言為transaction-sql,簡稱t-sql。t-sql與pl/sql不同,並沒有固定的程式結構。

t-sql包括以下4個部分:

在t-sql中,命令和語句的書寫是不區分大小寫的。

1、識別符號

①t-sql規則識別符號

②界定識別符號

對於不符合識別符號規則的識別符號,則要使用界定符方括號()或雙引號(「」)將識別符號括起來。如識別符號[my table]、「select」內分別使用了空格和保留字select。

2、資料型別

在sql server中提供了多種系統資料型別。除了系統資料型別外,還可以自定義資料型別。

①系統資料型別

(1)精確數字資料型別

(2)近似數字資料型別

(3)貨幣資料型別

(4)字元資料型別

(3)日期和時間資料型別

(4)二進位制資料型別

(5)專用資料型別

②程式中的資料型別

(1)cursor

資料能夠以駐留記憶體的狀態進行儲存。游標,與表類似,有資料行和列,但它們的相似之處僅限於此。不同之處如:游標沒有索引。通過使用游標來建立資料集,以便一次處理一行資料。

(2)table

table資料型別與游標和表有幾分相似之處。該資料型別用於儲存行和列的資料,但不能在資料上建索引。此時,系統可以「一次處理乙個資料集」的資料,就想處理乙個標準的表那樣。

(3)sql_varint

可以根據儲存的資料改變資料型別,即用來儲存一些不同型別的資料型別。不過強烈不推薦使用這種資料型別。

3、表示式

表示式常指由常量、變數、函式等通過運算子按一定的規則連線起來的有意義的式子。

1.變數

t-sql的變數分為區域性變數和全域性變數。

(1)區域性變數

區域性變數由使用者定義,一般出現在批處理、儲存過程和觸發器中,其作用範圍僅在程式內部。

區域性變數必須先宣告,後使用。t-sql還為區域性變數提供了賦值語句。

①declare變數宣告語句,其語法格式為:

declare @變數1 [as] datatype,@變數2 [as] datatype...
區域性變數的賦值有三種方式:

①在變數定義的時候對其賦值:

declare @變數1 [as] datatype = value,@變數2 [as] datatype = value...
②select賦值語句,其語法格式為:

select @變數1 = 表示式1,@變數2 = 表示式2...
③set賦值語句,其語法格式為:

set @變數 = 表示式
【示例】

declare @sumsal as numeric(10,2),@dno as tinyint

select @dno = deptno,@sumsal = sum(sal)

from emp

where deptno = 10

group by deptno

print cast(@dno as varchar)+':'+cast(@sumsal as varchar)

(2)全域性變數

全域性變數由sql server系統定義,通常用來跟蹤伺服器範圍和特定會話期間的資訊,不能被使用者顯式地定義和賦值。可以通過訪問全域性變數來了解系統目前的一些狀態資訊。

全域性變數名以@@開頭。下面給出一些常用的全域性變數。

全域性變數

說明@@error

上一條sql語句報告的錯誤號

@@nestlevel

當前儲存過程或觸發器的巢狀級別

@@rowcount

上一條sql語句處理的行數

@@servername

本地伺服器名稱

@@identity

最後插入的標識值

@@spid

當前使用者程序的會話id

@@fetch_status

上一條游標fetch語句的狀態

@@cpu_busy

sql server自上次啟動後的時間狀態

2.函式

函式是用來完成某種特定功能,並返回處理結果的一組t-sql語句,處理結果成為「返回值」,處理過程成為「函式體」。

函式又分為系統內建函式和使用者自動以函式。sql server提供了大量系統內建函式,主要可以分為以下幾類:數學函式、字串函式、日期函式、convert函式、聚合函式。

(1)數學函式

t-sql中提供的常用的數學函式如下:

(2)字串函式

(3)日期和時間函式

首先列出日期時間函式中的重要引數。

日期時間元素

縮寫含義

year

yy,yyyy

年month

m,mm

月day

d,dd

日dayofyear

dy年的天數

week

wk星期數

weekday

dw星期幾

hourhh時

minutemi分

quarterqq刻

secondss秒

millisecond

ms毫秒

t-sql中提供下列日期函式:

涉及日期時間常量時,sql server建議使用與dateformat及語言環境設定無關的字串格式,通常這樣的字串常量符合下面兩種形式:

(4)資料型別轉換函式

轉換的方式有隱式轉換和顯式轉換兩種。

隱式轉換是sql server自動地將資料從一種資料型別轉換為另一種資料型別,使用者不可見。

顯式轉換使用convert函式,該函式可以將一種資料型別的表示式強制轉換為另一種資料型別的表示式。兩種資料型別必須能夠進行轉換,例如,char值可以轉換為binary,但不能轉換為image。該函式的主要作用是把數值型或日期型資料轉換為字串,而只包含數字的字串轉換為數值型資料一般隱式轉換。

格式:convert(資料型別(長度),表示式[,n])

函式的第4個引數n是可選的,用於日期時間型資料型別和字元資料型別轉換。引數取值如下表所示。

不帶世紀數字

帶世紀數字格式1

101mm/dd/yyyy

2102

yy.mm.dd

3103

dd/mm/yyyy

4104

dd.mm.yy

5105

dd-mm-yy

8108

hh:mi:ss

20或120

yyyy-mm-dd hh:mi::ss(24h)

【示例】

select ename+''''+'s sal is'+convert(char(7),sal) as 'employee's sal' from emp;
select cid as '客戶id',cname as '客戶名稱'

convert(char(10),cregisterationdate,102) as '註冊日期'

from customer;

最終顯示的日期格式就會如2006.12.02

3.運算子

算術運算子:+、-、*、/、%(求餘)

字串運算子:+(連線)

比較運算子:=、>、>=、<、<=、<>(不等於)、!>(不大於)、!<(不小於)

邏輯運算子:not、and、or、all(所有)、any(或some,任意乙個)、between...and、exists(存在)、in(在範圍內)、like(匹配)

按位運算子:&(位與)、|(位或)、^(按位異或)

一元運算子:+(正)、-(負)、~(按位取反)

賦值運算子:=(等於)

T SQL簡介及基本語法

sql server用於運算元據庫的程式語言為transaction sql,簡稱t sql。t sql與pl sql不同,並沒有固定的程式結構。t sql包括以下4個部分 在t sql中,命令和語句的書寫是不區分大小寫的。1 識別符號 t sql規則識別符號 界定識別符號 對於不符合識別符號規則的...

XML簡介及基本語法

目錄 一 xml的簡介 了解 二 xml的語法 1.文件宣告 2.元素 標籤定義 3.屬性 4.注釋 5.轉義字元 6.cdata區 7.pi指令 處理指令 三 xml的約束 四 dtd約束 五 dtd的三種引入方式 1.內部dtd 2.外部dtd 3.外部dtd 六 使用dtd定義元素 1.約束元...

OC簡介及基本語法 一

1.什麼是oc?objective c簡稱obj c或者oc,objective的意思就是物件導向的。oc其實就是在c語言的基礎之上,封裝了一層物件導向的語法,他並不是一門全新的程式語言。oc是mac os x系統和ios系統的主要開發程式語言。c程式的原始檔的字尾名為.c,oc程式的原始檔是字尾名...