
专栏目录
专栏详情
MySQL
MySQL介绍
数据库(DataBase, 简称DB)
理解为电子存储系统, 相当于一个电子文件的箱子, 放了很多的信息或者文件在这个柜子里
与DB相关的还有 DBMS(数据库管理系统), DBS(数据库系统), DBA(数据库管理员) 等专业术语
MySQL是关系型数据库的典型, 映射的数据格式很类似于表格数据
而MySQL体现出卓越的性能高、成本低、可靠性好的特点应用于广大项目中
关系型数据库更加是建立在关系模型的基础上, 借助于集合代数等数学方法来处理的数据库
MySQL连接
mysql -u USER -h IP -p
MySQL查询
show databases
use DatabasesName
show tables
SELECT * FROM TableName
SELECT field1, field2 FROM TableName
SELECT * FROM TableName WHERE field1=1
SELECT * FROM TableName WHERE field1=1 AND field2=2
SELECT * FROM TableName WHERE field1=1 OR field2=2
MySQL更新
update tablName set name="Medusa"
update tablName set name="Medusa" where id=1
MySQL新增
# 增加指定字段指定值
insert info tablName(id,name) values(6,'medusa');
MySQL删除
delete from tablName where id=1
delete from tablName
Mongo
Mongo介绍
MongoDB是和MySQL不一样的非关系型数据库
那么也就意味着这个数据库每一条数据(文档)相互独立, 想存储什么样的JSON数据都可以
Mongo的数据类型类似于JSON数据
{
{
"_id": "",
'data': {
'key': 'value'
}
},
{
"_id": '',
'info': 1
}
}
Mongo查询
db.collection.find(query, projection)
db.collection.find().pretty()
db.collection.find({'_id': xxx})
Mongo删除
db.collection.remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>
}
)
db.collection.remove({})
Mongo更新
# query: update的过滤条件
# update: update的对象和一些更新的操作符(如$,$inc...)等
# upsert: (可选),如果不存在update的记录, true为插入新增数据,默认是false
# multi: (可选),默认是false只更新检索的第一条文档,否则为true, 更新检索的多条记录
# writeConcern: (可选),抛出异常的级别等级
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
Mongo新增
db.collection.insert({
name: 'Medusa',
description: '新增了一条MongoDB数据'
})
Mongo比较符
等于 {key:value}
小于 {key: {$lt :value}}
大于 {key: {$gt :value}}
小于等于 {key: {$lte :value}}
大于等于 {key: {$gte :value}}
不等于 {key: {$ne :value}}
Mongo关系符
AND {key1:value1, key2:value2}
OR {$or: [{key1: value1}, {key2:value2}]}
Mongo聚合
待更新
Mongo聚合后返回原始数据
db.getCollection("DBName").aggregate(
[
{$sort : {time : -1}},
{
$group: {
_id: {
"a": "$A",
"b": "$B",
},
doc: {$first: "?ROOT"}
}
}
]
)
Redis
Redis介绍
官网:https://redis.io/
Redis 是一个轻量级的存储数据库
一般情况会用Redis作为缓存DB的数据存储
# 优点
* 支持持久化在磁盘中
* 支持五种数据类型
* 支持数据备份
* 读写效率极高 (读约110000次/s, 写约81000次/s)
* 原子性, 要么成功要么失败
* 事务
* 存储有效期
Redis的存储方式
Redis是一个Key-Value的方式存储数据的
就类似与Python的字典一样
用Key获取Key对应的Value
Redis的存储类型
| 描述 | 说明 | 介绍 |
|---|
| String | 字符串 | Redis中最基础的数据类型,在Redis中是二进制安全存在的,这也说明了字符串可以接受任何格式的数据,如字符, Json数据, 图片文件, 数字等,是标准的K-V模式,一般来存字符和数据等, Value最大长度为512MB |
| Hash | 哈希值 | Redis中可以用一个name存储多个K-V的数据存储方式, 而一个name可以最大存储4294967295个K-V |
| List | 列表 | 列表允许从序列的两端加入或取出数据元素,列表由多个字符串组成的有序可重复的序列,和Python的列表是类似的, 列表包含最大元素数量是4294967295 |
| Set | 集合 | 集合是无序不重复的,和列表一样,在执行插入和删除和判断是否存在某元素时,效率是很高的。集合最大的优势在于可以进行交集并集差集操作。集合包含最大元素数量是4294967295 |
| Sorted Set | 有序集合 | 有序集合是在集合的基础上加上了 score 的权重参数, 这个参数可以将集合排序 |