day_03 数据库基础

149 阅读3分钟

一、什么是数据库:

image.png

数据库分类:

①关系型数据库

常见的有:image.png

②非关系型数据库

常见的有: image.png

二、数据库常用的操作命令:

①常用的命令:

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()