# 第二周和第三周—sql 基础学习—Lhaihai—243 ###### tags: `信安之路` 任务名称:认识 sql 并学习数据库的基础操作 任务介绍: 1、什么是关系型和非关系型数据库,两者都包含哪些种类的数据库(理解两者的区别) 2、选择一种关系型数据库进行学习(选择自己不熟悉的进行学习,因为不同的数据库,其特性也不同,所以可以选择不熟悉或者感兴趣进行研究学习) 3、学习数据库中的字段类型并创建库和用户表,需要包含所有字段类型(主要熟悉数据库的基本使用,可以自由创建、删除、修改数据库和表) 4、学习数据库的增删改查,记录学习过程(重点是 sql 语句的理解)并形成报告(最终结果) 任务名称:数据库系统表相关学习 1、如何利用数据库的功能读写文件,需要什么样的条件才可以读写 2、学习数据库系统表的功能,如何利用 sql 语句查询库名、表名、字段名、内容以及当前用户等基本信息,将学习过程中关键部分整理成报告 扩展学习:尝试查询出用户的 hash,并使用 hashcat 来对获取的 hash 进行暴力破解 ### 关系型数据库 关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。 **关系型数据库有:** Oracle、DB2、PostgreSQL、Microsoft SQL Server、Microsoft Access、MySQL ### 非关系型数据库 非关系型数据库是不同于传统的关系数据库的数据库管理系统。 非关系型模型比如有: 列模型:存储的数据是一列列的。关系型数据库以一行作为一个记录,列模型数据库以一列为一个记录。(这种模型,数据即索引,IO很快,主要是一些分布式数据库) 键值对模型:存储的数据是一个个“键值对”,比如name:liming,那么name这个键里面存的值就是liming 文档类模型:以一个个文档来存储数据,有点类似“键值对”。 **非关系型数据库有:** 列模型:Hbase,HadoopDB 键值对模型:redis,MemcacheDB 文档类模型:MongoDB,CouchDB ### MySQL 基础操作 mysql 数据类型:https://www.w3cschool.cn/mysql/mysql-data-types.html 数据库 ``` 显示数据库 show databases; 创建数据库 create databases test1; 使用数据库 use test1; ``` 创建表 ``` create table test ( id int not null auto_increment primary key, username varchar(100) not null, passwd varchar(100) not null, time timestamp default current_timestamp ); ``` 删除表 ``` drop table test: ``` 修改表 ``` 增 alter table test add i int; 删 alter table test drop i; 查 show columns from test; 改 alter table test modify i float; alter table test change i i varchar(10); ``` 修改表名 ``` alter table test rename to test_table; ``` 操作表 ``` 增 insert into test values (1,"test","test",current_timestamp); 删 delete from test where id=1; 查 select * from test; select id,username from test where time>"2019-10-05 22:03:00"; 改 update test set id=2 where id=1; ``` 参考链接 [1] 什么是数据库?什么是关系数据库?什么是非关系型数据库? https://www.cnblogs.com/progor/p/8729798.html [2] https://www.w3cschool.cn/ [3] https://www.runoob.com/mysql/mysql-tutorial.html