常用符号
注释符
注释符 | 说明 |
---|---|
# url编码:%23 在URL中#表示锚点,也就是hash路由,带上#不会请求后端路由,而是刷新前端路由 |
单行注释 |
-- x x为任意字符,这里表示有一个空格 |
单行注释 |
/**/ | 多行(内联)注释 |
常用运算符
运算符 | 说明 |
---|---|
&& | 同 and |
|| | 同 or |
! | 同 not |
^ | 异或,同xor |
\ | 转义符 |
~ | 一元比特反转 |
+ | 加,可替代空格 |
常见全局变量
变量 | 说明 |
---|---|
@@VERSION | 返回版本信息 |
@@GLOBAL.VERSION | 同@@VERSION |
@@HOSTNAME | 返回安装的计算机名称 |
@@BASEDIR | 返回MYSQL绝对路径 |
常用函数
系统函数信息
函数 | 说明 |
---|---|
USER() | 获取当前操作句柄的用户名,同SESSION_USER()、CURRENT_USER(),有时也用SYSTEM_USER()。 |
DATABASE() | 获取当前选择的数据库名,同SCHEMA() |
VERSION() | 获取当前版本信息。 |
进制转换
函数 | 说明 |
---|---|
ORD(str) | 返回字符串第一个字符的ASCII值。 |
OCT(N) | 以字符串形式返回 N 的八进制数,N 是一个BIGINT 型数值,作用相当于CONV(N,10,8) 。 |
HEX(N_S) | 参数为字符串时,返回 N_or_S 的16进制字符串形式,为数字时,返回其16进制数形式。 |
UNHEX(str) | HEX(str) 的逆向函数。将参数中的每一对16进制数字都转换为10进制数字,然后再转换成 ASCII 码所对应的字符。 |
BIN(N) | 返回十进制数值 N 的二进制数值的字符串表现形式。 |
ASCII(str) | 同ORD(string) 。 |
CONV(N,from_base,to_base) | 将数值型参数 N 由初始进制 from_base 转换为目标进制 to_base 的形式并返回。 |
CHAR(N,... [USING charset_name]) | 将每一个参数 N 都解释为整数,返回由这些整数在 ASCII 码中所对应字符所组成的字符串。 |
字符串截取/拼接
函数 | 说明 |
---|---|
SUBSTR(str,N_start,N_length) | 对指定字符串进行截取,为SUBSTRING的简单版。 |
SUBSTRING() SUBSTRING(str FROM pos)、 SUBSTRING(str,pos,len)、 SUBSTRING(str FROM pos FOR len)。 |
多种格式SUBSTRING(str,pos)、 |
RIGHT(str,len) | 对指定字符串从最右边截取指定长度。 |
LEFT(str,len) | 对指定字符串从最左边截取指定长度。 |
RPAD(str,len,padstr) | 在 str 右方补齐 len 位的字符串 padstr,返回新字符串。如果 str 长度大于 len,则返回值的长度将缩减到 len 所指定的长度。 |
LPAD(str,len,padstr) | 与RPAD相似,在str左边补齐。 |
MID(str,pos,len) | 同于 SUBSTRING(str,pos,len)。 |
INSERT(str,pos,len,newstr) | 在原始字符串 str 中,将自左数第 pos 位开始,长度为 len 个字符的字符串替换为新字符串 newstr,然后返回经过替换后的字符串。INSERT(str,len,1,0x0)可当做截取函数。 |
CONCAT(str1,str2...) | 函数用于将多个字符串合并为一个字符串 |
GROUP_CONCAT(...) | 返回一个字符串结果,该结果由分组中的值连接组合而成。 |
MAKE_SET(bits,str1,str2,...) | 根据参数1,返回所输入其他的参数值。可用作布尔盲注,如:EXP(MAKE_SET((LENGTH(DATABASE())>8)+1,'1','710'))。 |
其他常见函数
函数/语句 | 说明 |
---|---|
IF(exp,state1,state2) | 条件语句,exp为true,执行state1,否则执行state2 |
CASE...WHEN exp THEN state1 ELSE state2 END | 同IF |
SLEEP(N) | 休眠N秒 |
BENCHMARK(count,exp): | 执行表达式exp,count次(消耗CPU) |
LENGTH(str) | 返回字符串的长度。 |
PI() | 返回π的具体数值。 |
REGEXP "statement" | 正则匹配数据,返回值为布尔值。 |
LIKE "statement" | 匹配数据,%代表任意内容。返回值为布尔值。 |
RLIKE "statement" | 与regexp相同。 |
LOCATE(substr,str,[pos]) | 返回子字符串第一次出现的位置。 |
POSITION(substr IN str) | 等同于 LOCATE()。 |
LOWER(str) | 将字符串的大写字母全部转成小写。同:LCASE(str)。 |
UPPER(str) | 将字符串的小写字母全部转成大写。同:UCASE(str)。 |
ELT(N,str1,str2,str3,...) | 与MAKE_SET(bit,str1,str2...)类似,根据N返回参数值。 |
NULLIF(expr1,expr2) | 若expr1与expr2相同,则返回expr1,否则返回NULL。 |
CHARSET(str) | 返回字符串使用的字符集。 |
DECODE(crypt_str,pass_str) | 使用 pass_str 作为密码,解密加密字符串 crypt_str。加密函数:ENCODE(str,pass_str)。 |
常用语句
获取数据库版本
select version();
获取当前用户
select user()
获取所有数据库
select schema_name from information_schema.schemata;
获取当前数据库
select database()
获取用户
desc mysql.user
select * from mysql.user
获取当前数据库的表名
select table_name from information_schema.tables where table_schema = database()
获取当前数据库的某表的列名
select column_name from information_schema.columns where table_name = 'users'
获取当前数据库某表的值
select id ,username,password from users;