MySQL基本查询示例(2)
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,注:本博文基于上一篇博文中的表进行查询,上篇博文:MySQL基本查询示例(1)。1、查询fruits表中每个s_id对应的所有f_name值mysql> select s_
千家信息网最后更新 2025年01月21日MySQL基本查询示例(2)
注:本博文基于上一篇博文中的表进行查询,上篇博文:MySQL基本查询示例(1)。
1、查询fruits表中每个s_id对应的所有f_name值
mysql> select s_id,group_concat(f_name) as name from fruits group by s_id having count(f_name) > 1;
返回结果如下:
2、统计相同s_id值的行有多少?
mysql> select s_id,count(*) as total -> from fruits -> group by s_id with rollup;
注:with rollup的作用是将s_id分组后的和再进行相加,统计出来的总数,也就是16。
3、创建一个新表并插入数据
mysql> create table orderitems -> ( -> o_num int not null, -> o_item int not null, -> f_id char(10) not null, -> quantity int not null, -> item_price decimal(8,2) not null, -> primary key(o_num,o_item) -> );mysql> insert into orderitems(o_num,o_item,f_id,quantity,item_price) -> values(30001,1,'a1',10,'5.2'), -> (30001,2,'b2',3,'7.6'), -> (30001,3,'bs1',5,'11.2'), -> (30001,4,'bs2',15,'9.2'), -> (30002,1,'b3',2,'20.0'), -> (30003,1,'c0',100,10), -> (30004,1,'o2',50,'2.50'), -> (30005,1,'c0',5,'10'), -> (30005,2,'b1',10,'8.99'), -> (30005,3,'a2',10,'2.2'), -> (30005,4,'m1',5,'14.99');
查看表中的数据如下:
4、查询同一个o_num列的quantity(数量)和item_price(价格)相乘结果大于100的行
mysql> select o_num,SUM(quantity*item_price) as total from orderitems -> group by o_num having total > 100 order by total;
5、limit--限制返回的行数
限制1:
mysql> select * from fruits limit 4;
返回结果如下:
限制2:
mysql> select * from fruits limit 4,3;
返回结果如下:
6、查询每个o_num对应的f_id有几个
mysql> select o_num,count(f_id) as items_total -> from orderitems -> group by o_num;
返回的结果如下:
7、查询o_num为30005的quantity(数量)有多少
mysql> select sum(quantity) as items_total -> from orderitems -> where o_num = 30005;
返回的结果如下:
8、查询s_id为103的f_price的平均数是多少(s_id的平均价格是多少)
mysql> select avg(f_price) as avg_price from fruitss where s_id = 103;
返回的结果如下:
9、查询每个s_id对应的平均价格(f_price)是多少?
mysql> select s_id,avg(f_price) as avg_price from fruits group by s_id;
返回的结果如下:
10、查询每个s_id中f_price值最大的行是哪个?
mysql> select s_id, max(f_price) as max_price from fruits group by s_id;
返回的结果如下:
同理,若要查看最小的行,只需要将max换为min即可。
11、查询每个f_price值最大的值及其所对应的s_id、f_name。
mysql> select s_id,f_price,f_name from fruits -> where f_price in(select max(f_price) from fruits group by s_id);
返回的结果如下:
12、再次创建所需表并插入数据
mysql> create table suppliers -> ( -> s_id int not null auto_increment, -> s_name char(50) not null, -> s_city char(50) null, -> s_zip char(10) null, -> s_call char(50) not null, -> primary key(s_id) -> );mysql> create table orders -> ( -> o_num int not null auto_increment, -> o_date datetime not null, -> c_id int not null, -> primary key(o_num) -> );mysql> insert into suppliers(s_id,s_name,s_city,s_zip,s_call) -> values(101,'FastFruit Inc.','tianjin','300000','48075'), -> (102,'LT Supplies','chongqing','400000','44333'), -> (103,'acme','shanghai','200000','90046'), -> (104,'fnk inc.','zhongshan','528437','11111'), -> (105,'good set','taivuang','030000','22222'), -> (106,'just eat ours','beijing','010','45678'), -> (107,'dk inc.','zhengzhou','450000','33332');mysql> insert into orders(o_num,o_date,c_id) -> values(30001,'2008-09-01',10001), -> (30002,'2008-09-12',10003), -> (30003,'2008-09-30',10004), -> (30004,'2008-10-03',10005), -> (30005,'2008-10-08',10001);
13、表联接类型的概念
在进行接下来的查询,这里有必要说一下多表查询的相关概念。
1)内联接
内联接(inner join)是最常见的一种联接方式,只返回两个数据集合之间匹配关系的行,将位于两个互相交叉的数据集合中重叠部分以内的数据行联接起来。
内联接使用比较运算符进行表间某些列数据的比较操作,并列出这些表中与联接相匹配的数据行。
2)外联接
外联接(outer join)是对内联接的扩充,除了将两个数据集合中重复部分以内的数据行联接起来之外,还可以根据要求返回左侧或右侧表中非匹配的数据或全部的数据。
外联接还可以分为以下几种:
左外联接(left join或left outer join)的结果包括左表的所有行,如果左表的某一行在右表中没有匹配行,则右表返回空值,否则返回相应值。
右外联接(right join或right outer join)是左外联接的反向联接,将返回右表的所有行,如果右表的某一行在左表中没有匹配行,则左表返回空值,否则返回相应值。
全联接(full join 或full outer join)将返回左表和右表中的所有行,当某一行在另一个表中没有匹配行时,另一个表返回空值,否则返回相应值。
14、内联接查询,将两个表的指定列生成一个新表
mysql> select suppliers.s_id,s_name,f_name,f_price from fruits inner join suppliers on fruits.s_id = suppliers.s_id;
返回的结果如下:
15、左外联接查询示例
mysql> select customers.c_id,orders.o_num from customers -> left outer join orders on customers.c_id = orders.c_id -> ;
返回结果如下:
16、内联接查询时指定其他条件
mysql> select customers.c_id,orders.o_num from customers -> left outer join orders on customers.c_id = orders.c_id -> ;
返回结果如下:
-------- 本文至此结束,感谢阅读 --------
查询
结果
数据
外联
两个
一行
价格
限制
示例
最大
数量
概念
部分
统计
最小
相同
必要
接下来
上篇
之间
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
校园网络安全小短剧剧情
台湾网络安全部视频
军人关于手机网络安全问题发言稿
专科软件开发靠谱吗
安徽吾爱网络技术有限公司
网络安全工程师视频网盘下载
讯飞软件开发公司在哪
iphone部分转移数据库
服务器回收固态硬盘
国家网络安全的基本属性
安宁临沧网络技术服务咨询客服
网店软件开发定制
千锋教育网络安全311
银行应用服务器返回异常码500
棋牌软件开发要多少钱
php 7.3数据库查询
mc血液之战服务器
数据库前沿科技
国内网络安全厂商技术有差别吗
网络安全学习教育心得
计算机网络技术的概念是什么
曙光服务器通过管理口装系统
王思聪个人服务器
雷州定制软件开发
c wpf连接数据库
鹤壁杯网络安全
k4服务器的使用方法
网站与数据库关系
网络安全信息通报总结
spark 上亿数据库