定义:
存放数据的仓库(持久性)
分类
按照业务来分
1.关系型数据库:
每个表之间可以形成关联,就叫做关系型数据库
mysql(使用最多),pgsql,Oracle(并发最高的),oceanbase(分布式)
2.非关系型数据库:
每个表之间都没有联系。
redis(key-value),mongodb(存聊天记录),非关系型数据库天然具有分布式属性,性能优于关系型数据库
按照架构来分:
1.内存型数据库:
将数据库里的数据库存到内存里面,内存的一个特性(断电或者重启,数据就丢了),所以说内存型数据库,一般都要做好持久化策略
redis持久化策略:
1,记录日志:key的每次增删改都会在磁盘里记录一条日志。
2,快照:每隔一分钟将redis里存放的值打一个快照
(使用时会将这两种策略相结合)
优点:快
2.非内存型数据库:
mysql,mongodb,(存放到磁盘,都会选择机械硬盘)
下面复习一些简单的sql语句
-- 新增
insert t_user(user_name,password,status) values('wkx','123456',1), ('zhencong','123456',1);
-- 修改
update t_user set user_name = 'zhangsan',password = '1234567' where id = 1;
-- 删除
delete from t_user where id = 1;
-- 查询
-- or
select * from t_user where id = 2 or status = 0 and id = 3;
select * from t_user where id = 2 and id = 3 or status = 0;
-- like
select * from t_user where user_name like '%45%';
-- DISTINCT
select user_name from t_user;
-- in,msyql最大是5000个
select * from t_user where user_name in('zhangsan','123456');
-- group by 分组,和函数一起使用,求平均值,求最大值,算总和
select user_name,count(user_name),status from t_user GROUP BY user_name,status
-- order by 排序
-- limit
select * from t_user ORDER BY id desc limit 3,5;
-- join
-- left join
select * from t_user tu left join t_class tc on tu.id = tc.user_id
-- inner join
select * from t_user tu inner join t_class tc on tu.id = tc.user_id
-- right join
select * from t_user tu right join t_class tc on tu.id = tc.user_id
CREATE TABLE `t_user` (
`id` bigint NOT NULL AUTO_INCREMENT,
`user_name` varchar(32) DEFAULT NULL,
`password` varchar(32) DEFAULT NULL,
`status` int DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
CREATE TABLE `t_class` (
`user_id` int NOT NULL,
`class_name` varchar(32) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;