数据库基础语句解析

目录

一、数据库分类

1.1、按照业务来划分

1.2、按照架构来划分

二、基础sql语句解析


一、数据库分类

1.1、按照业务来划分

1:关系型数据库:mysql(最多),pgsql,oracle(并发最高的),OceanBase(分布式)

每个表之前可以形成关联,叫做关系型数据库。

2:非关系型数据库:每个表之间都没有联系。redis(key-value),mongoDb(存聊天记录),非关系型数据库天然具有分布式属性,性能也优于关系型数据库。

1.2、按照架构来划分

按照架构来分:

内存型数据库:将数据库里的数据存到内存里面,内存一个特性(断电或者重启,数据就丢了),所以说内存型数据库,一般都要做好持久化措施。

redis持久化策略:(都会将这个方案结合)

1,记录日志:key的每次增删改都会在磁盘里面记录一条日志。

2,快照:每隔一分钟,将redis里存放的值打一个快照。

优点:快

非内存性数据库:mysql,mongoDb:存放到磁盘(都会选择机械硬盘)

二、基础sql语句解析

2.1、首先在数据库中先建表

CREATE TABLE `t_user` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `user_name` varchar(255) COLLATE utf8_bin NOT NULL,
  `password` varchar(255) COLLATE utf8_bin NOT NULL,
  `status` int(10) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;


CREATE TABLE `t_class` (
  `user_id` int NOT NULL,
  `class_name` varchar(32) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

2.2、语句分析

1、插入语句关键字是insert,如下values后括号的内容与前面的列一一对应。

insert t_user(user_name,password,status) values("张三","123","1"),("李四","223","0");

结果是:

 2、修改语句关键字是update,如下

set后面需要写修改哪个属性

update t_user set user_name = "王五",password = "456" where id = 1;

结果是

 3、删除语句关键字是delete,如下

delete from t_user where id = 1;

结果是

 4、查询和or关键字

表里字段

select * from t_user where id = 2  or status = 0 and id = 4;

结果是下图所示,原因是and的优先级更高,实际执行的是id=2 or(status=0and id=4)

 5、like关键字:模糊查询,字段记得一部分的时候用此关键字查询

如果引号里不加%,like相当于等号的作用

select * from t_user where user_name like '%四%';

6、distinct是去重关键字,在查询类别是可以去掉重复的类别。

7、in关键字

在某个范围内查询,mysql最大查询5000个以内的数据。

select * from t_user where user_name in("李四"); 

8、group by 分组,和函数一起使用,求平均值,求最大值,算总和

group by 是根据某一列或多列属性进行分组

select user_name,count(user_name),status from t_user GROUP BY user_name,status

结果是

 9、order by 和limit

order by是对数据进行升序或降序排列,limit是对数据的显示做限制

如下图是根据id降序排列,不写desc默认是升序,

limit 3,5 是从索引为三开始拿出5条数据展示。

select * from t_user ORDER BY  id desc limit 3,5;

10、join关键字是连接多个表的时候使用的

①left 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:右关联,以right join右边的表为基准去对比左边的表进行匹配查询。

select * from t_user tu right join t_class tc on tu.id = tc.user_id

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值