符号
注释符
| 注释符 | 
释义 | 
| — | 
SQL注释风格 | 
| ;%00 | 
空字节 | 
| /* | 
C注释风格 | 
常用运算符
| 运算符 | 
释义 | 
| + | 
加法运算 | 
| - | 
减法运算 | 
| * | 
乘法运算 | 
| / | 
除法运算 | 
| % | 
取模运算 | 
| & | 
位与逻辑运算 | 
| | | 
位或逻辑运算 | 
| … | 
… | 
常见全局变量
| 变量 | 
释义 | 
| @@VERSION | 
SQL Server 版本 | 
| @@SEVERNAME | 
运行SQL Server 的本地服务器名称 | 
函数
系统函数信息
| 函数 | 
释义 | 
| DB_NAME() | 
获取当前数据库名 | 
| USER_NAME() / USER | 
获取用户在数据库中的名字 | 
is_srvrolemember(‘sysadmin’) is_srvrolemember(‘db_owner’) is_srvrolemember(‘public’) | 
判断当前用户权限 | 
进制转换
| 函数 | 
释义 | 
| ASCII(str) | 
返回字符表达式最左端字符的ASCII 码值 | 
| CHAR(str) | 
将ASCII 码转换为字符 | 
| cast(16 as VARBINARY(50)) | 
将16转换为16进制 | 
| CONVERT(VARBINARY(50),16) | 
将16转换为16进制 | 
| master.dbo.fn_varbintohexstr(16) | 
将16转换为16进制 | 
| STR(n) | 
将数值型数据转为字符型数据 | 
字符串操作函数
| 函数 | 
释义 | 
| SUBSTRING (, , length) | 
返回从字符串左边第starting_ position 个字符起length个字符的部分。 | 
| LEFT (, ) | 
返回character_expression 左起 integer_expression 个字符。 | 
| RIGHT (, ) | 
返回character_expression 右起 integer_expression 个字符 | 
| QUOTENAME (<’characterexpression’>[, quote character]) | 
返回被特定字符括起来的字符串。 | 
| REPLICATE (character_expression,integer_expression) | 
返回一个重复character_expression 指定次数的字符串。 | 
| REVERSE () | 
将指定的字符串的字符排列顺序颠倒 | 
| REPLACE (, , ) | 
用string_expression3 替换在string_expression1 中的子串string_expression2。 | 
| SPACE () | 
返回一个有指定长度的空白字符串。 | 
| STUFF (, , ,) | 
用另一子串替换字符串指定位置、长度的子串。 | 
| LEFT (, ) | 
返回character_expression 左起 integer_expression 个字符。 | 
| RIGHT (, ) | 
返回character_expression 右起 integer_expression 个字符。 | 
| CHARINDEX (<’substring_expression’>, ) | 
返回字符串中某个指定的子串出现的开始位置 其中substring _expression 是所要查找的字符表达式,expression 可为字符串也可为列名表达式。如果没有发现子串,则返回0 值。 此函数不能用于TEXT 和IMAGE 数据类型。 | 
| PATINDEX (<’%substring expression%’>, <column name>) | 
其中子串表达式前后必须有百分号“%”否则返回值为0。 返回字符串中某个指定的子串出现的开始位置。 与CHARINDEX 函数不同的是,PATINDEX函数的子串中可以使用通配符,且此函数可用于CHAR、 VARCHAR 和TEXT 数据类型。 | 
| CONCAT | 
连接字符串函数,MSSQL 2012+ 支持 | 
其他函数/语句
| 函数/语句 | 
释义 | 
| IF…ELSE… | 
条件语句 | 
| case when exp then state1 ELSE state2 end | 
条件语句 | 
| WAITFOR DELAY ‘0:0:n’ | 
延迟n s | 
| LEN(str) | 
计算字符串长度 | 
| LOWER(str) | 
将字符串的大写字母全部转成小写 | 
| UPPER(str) | 
将字符串的小写字母全部转成大写 | 
| LTRIM() | 
字符串头部的空格去掉 | 
| RTRIM() | 
把字符串尾部的空格去掉 | 
常见SQL语句
获取数据库权限
select is_srvrolemember('sysadmin')select is_srvrolemember('db_owner')select is_srvrolemember('public')
获取系统相关信息
-- 获取版本select @@version;-- 获取用户名select user;-- 获取服务器主机名select @@servername;
获取数据库
-- 当前数据库select db_name();-- 其他数据库,n为number类型select db_name(n);-- 所有数据库select name from master..sysdatabases;
获取表
select name from test..sysobjects where xtype = 'u'-- 或者-- 每个库都有information_schema,可以不用加test,也支持跨库查,需要注意这样查询出来使用视图的select table_name from test.information_schema.tables-- 从当前库获取表,去除视图select table_name from information_schema.tables where table_type not in ('view');
获取字段
select name from test..syscolumns where id = (select id from test..sysobjects where name = 'users')-- 或者select column_name from test.information_schema.columns where table_name = 'users';--或者,以下不支持跨库查询select top 1 col_name(object_id('users'),1) from sysobjects;-- i 为第几个字段,int型select top 1 col_name(object_id('users'),i) from sysobjects;
获取值
select username, password from users;