查询数据

来源:互联网 发布:live直播软件下载 编辑:程序博客网 时间:2024/05/20 04:09

查询结果不重复
select distinct 字段名 from 表名
例查询fruits表中s_id字段的值,返回s_id字段值且不重复。

select distinct s_id from fruits;

降序排列
desc

多列排序
查询fruits表中的f_name和f_price字段,先按f_name排序,再按f_price排序

select f_name,f_price from fruits order by f_name,f_price;

分组查询

[group by 字段] [having <条件表达式>]

根据s_id对fruits表中的数据进行分组

select s_id,count(*) as total from fruits group by s_id;

使用having过滤分组
根据s_id对fruits表中的数据进行分组,并显示水果种类大于1的分组信息。

select s_id,group_concat(f_name) as Names from fruits group by s_id having count(f_name)>1;

s_id为供应商,供应商提供的水果种类大于1,满足having子句条件,因此出现在返回结果中。

内连接
在内连接查询中,只有满足条件的记录才能出现在结果关系中。

子查询
带exits关键字的子查询
查询suppliers表中是否存在s_id=107的供应商,如果存在,则查询fruits表中的记录,SQL语句如下:

select * from fruits where exits (select s_name from suppliers where s_id=107);

带有in关键字的子查询
在orderitems表中查询f_id为c0的订单号,并根据订单号查询具有订单号的客户c_id。

select c_id from orders where o_num in (select o_num from orderitems where f_id='c0');

带有比较运算符的子查询
在suppliers表中查询s_city等于“Tianjin”的供应商s_id,然后在fruits表中查询所有该供应商提供的水果的种类。

select s_id,f_name from fruits where s_id= (select s1.s_id from suppliers as s1 where s1.s_city='Tianjin');
原创粉丝点击