---
# System prepended metadata

title: 第二周和第三周—sql 基础学习—Lhaihai—243
tags: [信安之路]

---

# 第二周和第三周—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