在数据库使用过程中,使用最多的场景就是查询数据,所以今天我们总结一下常用用的查询
准备三张表:订单 orders 商品 commodity 用户 users 内容如下:
orders 表:
users 表:
commodity 表:
语法:
select * from 表名
执行查询语句, 查询 commodity 表所有数据
select * from commodite ;
select * from 表名 where 条件1 and 条件2 or 条件3 ;
列子:查询 commodity 表中 id = 1 的商品信息
select * from commodity where id = 1 ;
查询 commodity 表中 order_id = 1 并且 user_id = 1
select * from commodity where order_id = 1 and user_id = 1 ;
查询 commodity 表中 order_id = 1 或者 user_id = 1
select * from commodity where order_id = 1 or user_id = 1 ;
在查询表数据的时,有时我们只需要其中几个字段,这个是我们指定需要字段即可
语法
select 列1, 列2, ... from 表明 WHERE 条件可选
下面我们查询 commodity 表输出 商品名
select c_name from commodity ;
结果只输出了 c_name 一列数据
下面我们添加条件查询看下效果
select c_name from commodity where order_id = 1 ;
在实际使用是,我们还会用到根据其中一列分组查询,下面我们看下语法
select 用于分组的列, 用于运算的列 from commodity group by 用于分组的列
下面我们查询 commodity ,按照 order_id 进行分组
select order_id from commodity group by order_id;
按照 order_id 分组之后我们再看下每一组具体有多少条数据
select order_id, COUNT(order_id) from commodity group by order_id;
很多时候我们需要对查询结果进行排序这个时候我们会用到 order by
select * from 表名 order by 排序字段 排序规则
排序规则
现在我们查询一下 commodity 结果按 order_id 排序
select * from commodity order by order_id ASC ;
select * from commodity order by order_id DESC ;
在实际业务常常会用到分页查询功能
语法
select * from commodity limit 条数 offset 起始位置;
下面我们查询 commodity 表,从第二条开始查询,结果输出两条数据
select * from commodity limit 2 offset 1;
查询 commodity 表,条件是order_id = 1 或者 user_id != 4 按照 order_id 分组 按照user_id 排序 输出 order_id user_id 列 查询结果从第二条开始 只查询两条
select order_id, user_id from commodity where order_id = 1 or user_id != 4 group by order_id, user_id order by user_id DESC limit 4 offset 1;