常用符号
注释符
| 注释符 |
说明 |
# 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,pos)、 SUBSTRING(str FROM pos)、SUBSTRING(str,pos,len)、 SUBSTRING(str FROM pos FOR len)。 |
| 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.userselect * 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;