查询商品信息总条数,最高商品价格,最低商品价格,商品平均价格,一次性口罩的总数量:
select count(*),max(price),min(price),ave(price) from goods;
查询商品信息一次性口罩的总数量:
select sum(count) from goods where remark like '%一次性%';
查询每家公司的商品信息数量:
select company,count(*) from goods group by company;
查询商品信息数量>50的公司:
select company,count(*) from goods group by company having count(*)>50;
查询当前表中第5-10行的所有数据(limit分页,从0开始计数):
select * from goods limit 4,6;
已知:每页显示m条数据,求:显示第n页的数据
select * from students limit (n-1)*m,m;
查询商品价格最贵的信息:
select * from goods order by price desc limit 0,1;
查询所有存在商品分类的商品信息(内连接-只显示有对应关系的部分):
select * from goods
inner jion category on goods.typeid=category.typeid;
(另一种写法:
select * from goods,category where goods.typeid=category.typeid;)
查询所有商品信息,包含产品分类(左连接-左表中所有数据+右表中与左表有对应关系的数据,左表中与右表无对应关系的用null填充):
select * from goods
left jion category on goods.typeid=category.typeid;
查询所有商品分类及对应的商品的信息(右连接-右表中所有数据+左表中与右表有对应关系的数据,右表中与左表无对应关系的用null填充):
select * from goods
right jion category on goods.typeid=category.typeid;
查询河南省所有的市(自关联:通过给表起别名的方式,实现将一张表作为两张表查询):
select * from areas a
inner join areas b on a.aid=b.pid
where a.atitle='河南省';(使用内连接)
select * from areas a
left join areas b on a.aid=b.pid
where a.atitle='河南省';(使用左连接)
查询河南省所有的市和区(三表连查)
select * from areas a
left join areas b on a.aid=b.pid
left join areas c on b.aid=c.pid
where a.atitle='河南省';
查询价格高于平均价的商品信息(子查询充当条件):
select * from goods where price > (select avg(price) from goods);
查询所有来自pxx的商品信息,包含商品分类(子查询充当数据源):
select * from
(select goods.*,category.id cid,category.typeId ctid,category.cateName from goods
left join category on goods.typeId=category.typeaId
) a
where a.company='pxx';
子查询中,表与表之间的字段名不能出现重复值,可以将重复字段使用别名加以区分
外键:通过外部数据表的字段,来控制当前数据表的数据内容变更,以避免单方面移除数据,导致关联表数据产生垃圾数据的一种方法。(如果大量增加外键设置,会严重影响除数据查询以外的其他操作的操作效率)
索引:提高查询效率。(如果大量增加索引设置,会严重影响数据查询操作以外的其他操作的操作效率)
查询SQL语句在执行过程中多种资源的消耗情况,如CPU、IO、IPC、SWAP等。
SET profiling = 1;
执行需要定位性能问题的SQL语句
SHOW PROFILES;