SQL注入——MySQL

SQL注入——MySQL

1.前言

  由于数据库的类型中,MySQL类型数据库是比较主流的,所以需要了解一些MySQL的相关知识。

  (图片的蓝框部分打错了,懂意思就是,懒得改了)

  可以看到在MYSQL5.0以上版本中,存在着名为information_schema的库,在这个库中存储记录了所有数据库名,表名,列名。也就一般来说我们可以通过查询它获取指定数据库下面的表名或者列名信息。而在数据库中符号“.”代表下一级,譬如liaoyue.use代表的意思是liaoyue数据下名为user的表。这都是要掌握的相关知识。

2.MySQL 5.x结构

  1. 在MySQL 5.0以上版本中,为了方便管理,默认定义了information_schema数据 库,用来存储数据库元信息,其中具有表schemata(数据库名),table(表名),columns(列名或字段名)
  2. 在schemata表中,schema_name字段用来存储数据库名
  3. 在table表中,table_schema和table_name分别用来存储数据库名和表名
  4. 在column表中,table_schema(数据库名),table_name(表名),column_name(字段名)

3.常用的相关参数

  • information_schema.tables:记录所有表名信息的表
  • information_schema.columns:记录所有列名信息的表
  • table_name:表名
  • column_name:列名
  • table_schema:数据库名
  • user() 查看当前MySQL登录的用户名
  • database() 查看当前使用MySQL数据库名
  • version() 查看当前MySQL版本

4.对数据库的增删改查

  • 增 create database 数据库名

  • 删 drop database 数据库名

  • 改 rename database 旧名 to 新名

  • 查 show databases

  • 创建表 create table table_name( id1 int,id2 varcher)

  • 重新给表命名 alter table table_name_old rename as table_name_new

5.对数据表的增删改查

  • a. 增 insert into table_name(列1,列2 … ) values(值1,值2 … )
  • b. 删 delete from 表名 where 列名 = 值
  • c. 改 update 表名 set 列名=新值 where 列名=某值
  • d. 查 select * from 表名 where 字段1=‘条件一’and 字段2 =‘条件二’
  • e. 扩展 limitl  (imit m,n 从m行开始,到m+n行结束)
    select * from admin limit 2,1 指的是 从第二行开始,到第三行结束

(还有一些比较杂的内容,没想好怎么更新,晚点再回来写吧)


SQL注入——MySQL
https://one-null-pointer.github.io/2022/08/05/SQL注入——MySQL/
Author
liaoyue
Posted on
August 5, 2022
传送口