一篇关于数据库的操作

0x00了解数据库数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据库是以一定方式储存在一起、能与多个用户共享、

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

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拦截时候的代替函数。

 

 

 

 

 

一篇关于数据库的操作

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119978.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MySQL常用命令大全(完整)

    MySQL常用命令大全(完整)打开Linux或MacOS的Terminal(终端)直接在终端中输入windows快捷键win+R,输入cmd,直接在cmd上输入1、mysql服务的启动和停止netstopmysqlnetstartmysql启动失败可按快捷键win+R,输入services.msc,找到MySQL服务器的名称启动2、登陆mysqlmysql(…

    2022年6月30日
    22
  • android declare-styleable 和style,android – declare-styleable和style之间的区别

    android declare-styleable 和style,android – declare-styleable和style之间的区别我认为将属性声明为不是风格,只有以下区别。在attrs.xml中,您可以直接在“资源”部分内或在“declare-styleable”中声明自定义属性:所以现在我们将“attrib1”定义为不风格,“attrib2”为风格。在layout/someactivity.xml中,我们可以直接使用这些属性(不需要命名空间):您可以在style.xml声明中使用“styleable”属性“attrib…

    2022年7月14日
    15
  • 《C语言及程序设计》资料——C语言中数学函数

    《C语言及程序设计》资料——C语言中数学函数

    2021年9月3日
    56
  • pycharm注释快捷键无法注释html文本解决方法

    pycharm注释快捷键无法注释html文本解决方法解决pycharm注释快捷键无法注释html文本方法如图修改成值None以后,command+/快捷键,html注释的符号就是<!/–注释内容–>;为Jinja2的时候,注释符号就是{#注释内容#}。修改成None时,Html就没有办法使用Jinja2的快捷输入了…

    2022年6月5日
    71
  • cunit教程linux,linux下CUnit使用

    cunit教程linux,linux下CUnit使用4.C++Test1)简介C++Test是一个功能强大的自动化C/C++单元级测试工具,可以自动测试任何C/C++函数、类,自动生成测试用例、测试驱动函数或桩函数,在自动化的环境下极其容易快速的将单元级的测试覆盖率达到100%。2)功能特性即时测试类/函数支持极端编程模式下的代码测试自动建立类/函数的测试驱动程序和桩调用自动建立和执行类/函数的测试用例提供快速加入和执行说明和功能性测试的框架执行自…

    2022年6月17日
    20
  • Java中TypeReference用法说明

    Java中TypeReference用法说明用途在使用fastJson时,对于泛型的反序列化很多场景下都会使用到TypeReference,例如:voidtestTypeReference(){List<Integer>list=newArrayList<>();list.add(1);list.add(9);list.ad…

    2022年6月15日
    67

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号