一、什么是数据库:
数据库分类:
①关系型数据库
常见的有:
②非关系型数据库
常见的有:
二、数据库常用的操作命令:
①常用的命令:
showdatases; 返回数据库的一个列表。
mysql -h(ip) -u(user) -p(password) 使用命令行连接主机
create database database_name 创建数据库
drop database database_name 删除数据库
user database 使用数据库,并且后续命令仅对该数据库有效
②查询语句
语法形式:
Select 属性列表 from 表名 [where 条件表达式1] [group by 属性名1 [having 条件表达式2]] [order by 属性名2 [asc | desc]]
select * from table_name 表示查找该表全部内容
desc table_name 表示查看数据库中表结构
前言——sql注入
● 1.找到注入点 --服务器调用了数据库--参数可控
● 2.构造轮子 if(1,1,0)
● 3.变形 if(1=1,1,0) if(user()='root@localhost',1,0)
● 查询数据
● select 语法形式
● select 字段名 from 表名 where 条件表达式
● where
● order by union
● *
● %
● _
● in
● between
● like 后面接:‘王%’——表示查询以王字开头的所有数据,%表示匹配所有;接‘王_’————表示查询王某,_表示匹配单个字符。
● and
● or
正则表达式
● 使用regexp、rlike关键字来匹配查询正则表达式
● ^ 匹配输入字符串的开始位置。
● $ 匹配输入字符串的结束位置。
● . 匹配字符串中的任意一个字符。
● [...] 字符集合。匹配所包含的任意一个字符。例如, '[abc]' 可以匹配 "plain" 中的 'a'。
● [^...] 负值字符集合。匹配未包含的任意字符。例如, '[^abc]' 可以匹配 "plain" 中的'p'。
● p1|p2|p3 匹配 p1 或 p2 或 p3。例如,'z|food' 能匹配 "z" 或 "food"。'(z|f)ood' 则匹配 "zood" 或 "food"。
● * 匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。
● + 匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。
● {m} m是一个非负整数。匹配确定的 m 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。
● {m,n} m 和 n 均为非负整数,其中m <= n。最少匹配 m次且最多匹配 n次。
函数
系统函数
● version()--mysql版本
● user()--数据库用户名
● database()--数据库名
● @@datadir--数据库路径
● @@version_compile_os--操作系统版本
● @@hostname--当前机器的机器名
● Schema()——当前数据库
字符串连接函数
● concat(str1,str2,…)--没有分隔符地连接字符串
● concat_ws(separator,str1,str1,…)--含有分隔符地连接字符串
● group_concat(str1,str2,…)--连接一个组的所有字符串,并以逗号分隔每一条数据。
截取函数
● left(str,length);--指定将从左边返回的字符数。
● right(str,length);--指定将从右边返回的字符数。
● substr (str, pos, length)--指定str的起始位置pos截取length长度
● substring(str, pos, length)--指定str的起始位置pos截取length长度
● mid()(str, pos, length)--指定str的起始位置pos截取length长度
判断函数
● if() —— if(1,2,3) 1的值为true,则返回2 1的值为false,则返回3
● case when 条件 then 1(条件成立返回1)else 0(不成立为0)end
● 其它函数
● sleep()--时间函数 时间盲注
● hex()——编码
● ascii()——编码
● exp()
● updetexml()