插入
insert [into] 表名 [(列名列表)] values (值列表)
insert into 新表名 (列名列表) select 列名列表 from 表名
select 表名.列名 into 新表名 from 表名
insert 表名(列名列表) select 值列表1 union select 值列表2
修改
update 表名 set 列名 = 更新值 [where <更新條件>]
update 表名 set 列名1 = 更新值, 列名n = 更新值 [where <更新條件>]
刪除
delete [from] 表名 [where <刪除條件>]
truncate table 表名
查詢
select 列名 from 表名 where <查詢條件表達式>
order by <排序的列名> asc 或 desc
select * from 表名 //查詢所有數據
select 列名列表 from 表名 where 查詢條件 //查詢部分行或列
select 列名 as 列別名 from 表名 where 查詢條件 //使用列別名
select * from 表名 where 列名 is null //查詢空值
select 列別名 = 列名, 默認信息 as 列名 from 表名 //使用常量
select top 顯示的行數 列名 from 表名 where 查詢條件 //限制顯示行數
select top 數字 percent 列名 from 表名 where 查詢條件 //按百分比提取
模糊查詢
select * from 表名 where 列名 like '查詢的值%'
select * from 表名 where 列名 between 初值 and 終值
select * from 表名 where 列名 in(值1, 值2)
分組查詢
select 列名 from 表名 group by 列名
內連接
SELECT 表名1.列名, 表名2.列名 FROM 表名1, 表名2
WHERE 表名1.列名 = 表名2.列名
SELECT 表名1.列名, 表名2.列名 FROM 表名1
INNER JOIN 表名2 ON (表名1.列名 = 表名2.列名)
左外連接
SELECT 表名1.列名, 表名2.列名 FROM 表名1
LEFT OUTER JOIN 表名2 ON 表名1.列名 = 表名2.列名
右外連接
SELECT 表名1.列名, 表名2.列名 FROM 表名1
RIGHT OUTER JOIN 表名2 ON 表名1.列名 = 表名2.列名
通配符
-:一個字符
%:任意長度的字符串
[]:括號中所指定范圍內的一個字符
[^]:不在括號中所指定范圍內的任意一個字符
聚合函數
SUM() 總和
AVG() 平均值
MAX() 最大值
MIN() 最小值
COUNT() 計數
字符串函數
charindex 查找一個指定字符串在 select charindex('a','name')
另一個字符串中的起始位置 返回 2
len 字符串長度 select len('name') 返回 4
upper 轉大寫 select upper('name') 返回 NAME
ltrim 清除字符左邊的空格 select upper(' name ')
返回 "name "
rtrim 清除字符右邊的空格 select upper(' name ')
返回 " name"
right 從字符串右邊返回指定數目的字符 select right('name',2) 返回 me
replace 替換一個字符串中的字符 select replace('name','a','b')
返回 nbme
stuff 在一個字符串中, select stuff('name',2,3,'bsp')
刪除指定長度的字符, 返回 nbsp
並在該位置插入一個新的字符
日期函數
getdate 取得當前系統消息 select getdate() 返回當前的日期
dateadd 將指定的數值添加到指定的 select dateadd(mm,4,'01/01/2009')
日期部分后的日期 返回 05/01/2009
datediff 兩個日期之間的間隔 select datediff
(mm,'01/01/2009','05/01/2009')
返回 4
datename 日期中指定日期部分的 select datename(dw,'01/01/2000')
字符串形式 返回 Saturday 或 星期六
datepart 日期中指定日期部分的整數形式 select datepart(day,'01/15/2009')
返回 15
日期部分參數及縮寫
year yy,yyyy 年份
quarter qq,q 季節
month mm,m 月份
dayofyear dy,y 一年中的第幾天
day dd,d 天數
week wk,ww 第幾周
weekday dw,w 周幾
hour hh,h 小時
minute mi,n 分
second ss,s 秒
minllisecond ms 毫秒
數學函數
rand 從0-1之間的隨機float值 select rand() 返回 0.79854628433
abs 取數值表達式的絕對值 select abs(-43) 返回 43
ceiling 向上取整,取大於或等於 select ceiling(43.5) 返回 44
指定數值,表達式的最小整數
floor 向下取整,取小於或等於 select floor(43.5) 返回 43
指定表達式的最大整數
power 取數值表達式的冪值 select power(5,2) 返回 25
round 將數值表達式四舍五入為指定精度 select round(43.54,1) 返回 43.50
sign 正數返回+1,負數返回-1,0返回0 select round(-43) 返回 -1
sqrt 取浮點表達式的平方根 select sqrt(9) 返回 3
系統函數
convert 轉換數據類型 select convert(varchar(5),12345)
返回 12345
current_user 返回當前用戶的名字 select current_user()
返回 你登陸的用戶名
datalenght 返回指定表達式的字節數 select datalenght('name') 返回 4
host_name 返回當前用戶登錄的計算機名字 select host_name()
system_user 返回當前所登錄的用戶名稱 select system_user()
user_name 從給定的用戶ID返回用戶名 select user_name(1)
返回 從任意數據庫中返回“dbo”
數據類型
二進制 非字符和文本 binary 固定長度
varbinary 可變長度
image 圖片
字符 字母、符號、數字 char 固定長度非Unicode字符數據
varchar 可變長度非Unicode字符數據
nchar 固定長度Unicode字符數據
nvarchar 可變長度Unicode字符數據
text 長文本信息
ntext 可變長度長文本信息
日期和時間 日期、時間 datetime 1753-1-1到9999-12-31,准確度三百分之一秒或3.33毫秒
數字 正數、負數、分數 int 整數
smallint
tinyint
bigint
float 浮點數
real
貨幣 十進制貨幣值,精 money
確到小數點后4位
bit 表示 是/否 bit 布爾數據類型