数据库系统功能相关学习

第四周 任务名称:数据库系统功能相关学习

  1. 学习数据库自带函数的功能与用法(思考在什么情况下可以执行命令)
  2. 将所有涉及的函数进行测试并举例说明其用法并形成报告
  3. 扩展学习:针对自己所选数据库,尝试执行系统命令,自己构造所需环境

0x00 mysql的自带函数

1. 字符串连接函数

1.1. 字符串连接函数concat(s1,s2,s3,...,sN)

​ concat()将多个字符串连接起来形成一个长字符串。它会尝试将字符全部转换为字符型,如果存在null,则直接返回null。

mark

concat_ws(sep,s1,s2,...,sN)函数是concat()函数的特殊格式,它的第一个参数sep是用于连接s1,s2,…,sN的分隔符。分隔符可以是一个字符或一个字符串,只要合理即可。如果分隔符sep为null,则返回结果null,如果s1,s2,…,sN之间出现了null,则忽略null。

mark

1.2. lower(string)upper(string)left(string,x)right(string,x)

函数的功能分别为小写、变大写、从左取x长度字符、从右取x长度字符

mark

1.3. 填充函数 lpad(string,n,pad)rpad(string,n,pad)

mark

1.4. trim(string)ltrim(string)rtrim(sting)trim(substring from string)

函数功能分别为消除string行首和行尾、行首、行尾的空格以及行首行尾指定的字符串。可以从字符串长度看出有两个空格的字符串长6,trim去除了左右两边的空格后长度变为4,ltrim和rtrim的分别去除左右两边的空格后长度就变为5。

mark

mark

1.5. 重复字符串repeat(string,x)

mark

1.6. 字符串替换函数replace(string,a,b)

mark

1.7. 字符串插入替换函数insert(string,p1,len,instead_string)

将string从位置p1开始,len个长度的字符替换为instead_string。

mark

1.8. 字符串提取substring(string,x,y)

将string从位置X开启往后截取y个字符。

mark

1.9. 字符串长度函数length(string)char_length(string)

length()返回字符串的字节数,注意不是字符数,char_length()返回的才是字符数

mark

1.10. 字符串反转函数reverse(str)

反转字符串str的字符顺序。

mark

mark

1.11. 字符串位置函数locate(sub_str,string)position(sub_str in string)instr(str,sub_str)

三个函数的作用相同,都是返回sub_str在string中的开始位置

mark

1.12. 字符串位置函数find_in_set(sub_string,str_set)

返回子字符串sub_string在str_set中的位置,其中str_set是一个由逗号隔开的多个字符串集合。如果找不到位置(sub_str不在str_set中或者str_set为空串)则返回0,如果任意一个为null,则返回null。

mark

1.13. 字符串位置函数field(s,str1,str2,...,strN)

返回字符串s在字符串集合str1,str2,…,strN中的位置。如果找不到或者字符串s为null,则返回0,因为null无法进行比较,也就是找不到。

mark

1.14. 指定位置的字符串函数elt(n,str1,str2,…,strN)

elt表示从str中提取需要的东西。n是位置,n=1则返回str1,n=2则返回str2,依次类推。当n<1或者大于字符串的数量,则返回null。

mark

2.实用函数

2.1. sleep(N)

延迟N秒后执行后面的语句。

mark

2.2. 返回当前数据库名database(),返回当前数据库版本version(), 返回当前登录用户名user()

mark

2.3. 返回加密字符串password(str),返回字符串的MD5值md5(str)

mark

2.4. group_concat(str1,str2,...)

连接一个组的所有字符串 以逗号分隔每一条数据

mark

mark

2.5. connection_id()

返回当前mysql的连接数

mark

2.6. current_user()、session_user()和system_user()

返回当前用户

mark

2.6. 加解密 hex(str)和unhex(str),to_base64(str)和from_base64(str),

mark

mark

mark

2.7. @@datadir MySQL 的数据库文件存放路径和@@basedir MySQL 的安装路径

mark

0x01 mysql执行系统命令

syetem 系统命令

mark

Author: wayxz
Link: https://wayxz.github.io/2019/08/29/数据库系统功能相关学习/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.