每條SQL語句均由一個謂詞(Verb)開始,謂詞描述這條語句要產生的動作。謂詞後接着一個或多個子句(Clause),子句中給出了被謂詞作用的數據或提供謂詞動作的詳細信息,每條子句都由一個關鍵字開始。
1, 常量
(1)數字常量:包括整數 ,小數,11, -11,11.11 。及浮點常量,1.5e。
浮點使用符號e指定。讀作‘乘以10的幾次冪’。
(2)日期時間常量 : 如,‘2017-01-10’,‘10-01-2017’
(3)符號常量: CURRENT_DATE , CURRENT_TIME , CURRENT_TIMESTAMP
2, 變量
(1)局部變量
局部變量的聲明需要使用DECLARE語句,變量名須以“@”開頭。語法;
DECLARE
{
@varaible_name datatype [ ,...n ]
}
使用SELECT 或SET 爲局部變量賦值例;
DECLARE @a CHAR(10)
SELECT @a = '你好'
PRINT @a
DECLARE @A CHAR(10)
SET @a = '你好'
PRINT @a
DECLARE @a INT, @b INT, @c INT
SELECT @a=1, @b=2
SET @c= @a+@b
PRINT @c
3, 運算符
算術運算符 +, - , * , / , % (加減乘除,取餘)
賦值運算符 =
比較運算符 >, <, =, >=, <=, <> 比較運算符有 TRUE, FALUSE , UNKNOWN 3種。
邏輯運算符
AND 如果兩個布爾表達式爲TRUE,則爲TRUE
OR 任意一個布爾表達式爲TRUE,則值爲TRUE. 在 AND 運算符之後對 OR 運算符求值。
NOT 對布爾型輸入取反。 (當NOT, AND, OR 出現在同一表達式中,優先級是NOT>AND>OR)
BETWEEN 指定測試範圍。
EXISTS 指定一個子查詢,測試行是否存在。
IN 確定指定的值是否與子查詢或列表中的值相匹配
LIKE 確定特定字符串是否與指定模式相匹配。模式可以包含常規字符和通配符。模式匹配過程中,常規字符必須與字符串中指定的字符完全匹配。但是,通配符可以與字符串的任意部分相匹配。
ALL (所有) 比較標量值和單列集中的值
ANY (任何) 比較標量值和單列集中的值。SOME 和 ANY 是等效的
位運算符; &(位與) , | (位或), ^(位異或) , ~ (位非) (AND, OR, OR, NOT )
連接運算符;+
4. 運算優先級
(1) + (正), -(負), ~(反)
(2) *(乘), /(除),%(取餘)
(3) +(加), +(字符串串聯), -(減)
(4) = , >, < , >= , <= , <> (比較運算符)
(5) & (位與) , | (位或), ^(位異或)
(6) NOT
(7) AND
(8) ALL ANY BETWEEN IN LIKE OR SOME (邏輯運算符)
(9) = (賦值)
有相同則從左到右