zoukankan      html  css  js  c++  java
  • 一篇关于数据库的另类操作

    0x00 了解数据库

    数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
    数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合,可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。

    那么简单点来说,数据库呢就是存在网站数据的地方,例如网站的一些用户信息,后台密码,都会存放在我们的数据库里面。

    那么数据库又分为关系型数据库和非关系型数据库。

    0x01 关系型数据库与非关系型数据库

    关系型数据库的数据库有mysql、sqlserver、db2、access 、Oracle

    非关系型数据库: nosql、MongoDB、Redis

    关系型数据库和非关系型数据库的区别:

    非关系型数据库优点:

    1、格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。
    
    2、速度快:nosql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘;
    
    3、高扩展性;
    
    4、成本低:nosql数据库部署简单,基本都是开源软件。

    缺点:

    1、不提供sql支持,学习和使用成本较高;
    2、无事务处理;
    3、数据结构相对复杂,复杂查询方面稍欠。

    关系型数据库优点:

    1、容易理解
    2、使用方便:通用的SQL语言使得操作关系型数据库非常方便;
    3、维护简单
    4、支持SQL,可用于复杂的查询。

    缺点:

    1、读写性能比较差;3、高并发读写需求;
    4、海量数据的高效率读写;

    0x02  sql语句

    这里拿mysql,来操作。

    mysql -uroot -p 123456

    先来登录到mysql里面,再使用sql语句进行操作数据库。

    show databases;

    查看所有的数据库名。

    先来介绍一些几个mysql自带的数据库。

    information_schema:

    mysqlinformation_schema库中提供了访问数据库元数据的方式。 元数据是关于数据的数据,如数据库名或表名,列的数据类型,
    或访问权限等。 information_schema是一个信息数据库,
    它保存着关于 MySQL 服务器所维护的所有其他 数据库的信息。
    (如数据库名,数据库的表,表栏的数据类型与访问权 限等。)
    该数据库里面记录了所有的数据库名称,所有的表,以及所有的字段。
    这是mysql 4.0与5.0版本最大的区别,在sql注入当中可以利用到information的数据库信息来查找他的表名 字段,再去爆出数据,
    省去了枚举字段和表名的麻烦,而在5.0以下的版本就没有这个元数据库 需要枚举。

    mysql:

    mysql库是MySQL的核心库,内部存储着大量有关数据库用户,关于权限控制,管理信息 等都在这里,
    (数据库管理账号密码等)与配置息息相关,常用的,修改数据库用户的密码,在user表中修改相应数据的信息。

    现在我们来先进入到数据库里面,才能进行查询。

    use security;

    进入到security这个数据库下面来,然后进行查询。

    show tables

    查看该数据库下所有的表名。

     查看到这里有emails,referers,uagents,users的表

    select * from users;

    查询users用户下面所有的字段内容,星号是通配符代表所有的意思。

    如果我们想查询单条数据,可以指定一个条件。

    select * from users where id=1;

    指定查询一个id为1的数据

    或者是

    select * from users where username = 'Dumb';

    指定查询username 为dumb的数据。

    这是个简单的查询,下面我们来看看怎么创建数据库。

    create database table_name;

    创建一个名为table_name的数据库。

    DROP DATABASE table_name;

    删除名为table_name的数据库。

    数据库创建完成后,再来在该数据库下面创建表

     create table users (id int(10), username varchar(10), password varchar(50) );

    创建表并设置id ,username,password 3个字段 。

    desc users;

    查看users表的结构。

    添加完表后插入字段

     alter table users add root varchar(10);

    从users表里面添加一个名为root的字段

     删除字段内容:

     ALTER TABLE username  DROP COLUMN root;

    字段内插入数据

    insert into users (id,username,password)values(1,'root','root');

    id,username ,password 分别写入数据。

    select * from users;

    查询users表里面所有信息,看到数据已经被插进来了。

    删除字段数据:

    delete from username where id=1;

    删除id为1的字段。

    0x03  结尾

    想学好sql注入还得多熟悉sql语句,这里只是介绍了sql语句的简单用法,下篇文章给大家更新sql注入时候常用到的函数以及一些在waf拦截时候的代替函数。

  • 相关阅读:
    新东方总裁俞敏洪—度过有意义的生命
    [导入]【翻译】WF从入门到精通(第九章):逻辑流活动
    [导入]【翻译】WF从入门到精通(第十一章):并行活动
    [导入]【翻译】WF从入门到精通(第五章):workflow跟踪
    收集的连接
    [导入]【翻译】WF从入门到精通(第二章):workflow运行时
    重温SQL——行转列,列转行 3333
    转载] 重新整理高手的win2003+asp+php+mysql+zend+phpmyadmin服务器环境
    [导入]【翻译】WF从入门到精通(第十二章):策略和规则
    (转)Windows 批处理实现 定时打开IE 延时一段时间后 关闭IE
  • 原文地址:https://www.cnblogs.com/nice0e3/p/12664203.html
Copyright © 2011-2022 走看看