MySQL——查询数据
1.基本查询
SELECT column FROM table;
2.有条件查询
SELECT common_name ,scientific_name FROM birds WHERE family_id =103 LIMIT 3;
3.结果排序
-- ORDER BY 默认升序(ASC), 逆序(DESC) SELECT common_name,scientific_name FROM birds WHERE family_id =103 ORDER BY common_name LIMIT 3; -- ORDER BY 是放在WHERE 之后,LIMIT之前
-- IN 匹配多个值 SELECT * FROM bird_families WHERE scientific_name IN('Charadriidae','Haematopodidae','Recurviostridae','Scolopacidae');
-- <> / != (不等于) SELECT common_name,scientific_name,family_id FROM birds WHERE family_id IN (103,160,162,164) AND common <> '' ORDER BY common_name LIMIT 3; /* 空字符串与NULL: 空字符串不含字符,但属于字符串,不占空间; NULL表示没有值,占空间 */
4.限定结果集
SELECT common_name,scientific_name,family_id FROM birds WHERE famiy_id IN (103,160,162,164) AND common_name <>'' ORDER BY common_name LIMIT 3,2; -- LIMIT 连接两个值: 一个是开始位置,一个是行数
5.表连接
SELECT common_name AS 'Bird' bird_families.scientific_name AS 'Family' FROM birds, bird_families WHERE birds.family_id = bird_families.family_id AND order_id = 102 AND common_name <> '' ORDER BY common_name LIMIT 10; -- AS 可设置列或表别名,表别名不能加引号。保留字需加引号
6.表达式与LIKE
SELECT common_name AS 'Bird' families.scientific_name AS 'Family', orders.scientific_name AS 'Order' FROM birds,bird_families AS families , bird_orders AS orders WHERE birds.familiy_id= families.familiy_id AND families.order_id = orders.order_id AND common_name LIKE 'Least%' ORDER BY orders.scientific_name,families.scientific_name,common_name LIMIT 10; -- ORDER BY 不能使用列的别名,表别名可以。若FROM指定表的别名 -- 则ORDER BY必须用此别名
-- REGEXP 正则表达式 SELECT common_name AS 'Birds Great and Small' FROM birds WHERE common_name REGEXP 'Great|Least' ORDER BY family_id LIMIT 10; SELECT common_name AS 'Birds Great and Small' FROM birds WHERE common_name REGEXP 'Great|Least' AND common_name NOT REGEXP 'Greater' ORDER BY family_id LIMIT 10; -- REGEXP 与NOT REGEXP 不区分大小写,若区分大小写,加上BINARY SELECT common_name AS 'Hawks' FROM birds WHERE common_name REGEXP BINARY 'Hawk' AND common_name NOT REGEXP 'Hawk-Owl' ORDRE BY family_id LIMIT 10;
若表设置了二进制,即设置了latin1_bin 则已经区分大小写,无需加上BINARY
7.对结果集进行计数和分组
SELECT COUNT(*) FROM birds; /* COUNT(*)表示统计所有行。若COUNT(column) 表示统计有值的行 即忽略;列中NULL值的行。空或空值(即'')不会被忽略 */
SELECT orders.scientific_name AS 'Order', families.scientific_name AS 'Family', COUNT(*) AS 'Number of Birds' FROM birds,bird_families AS families, bird_orders AS orders WHERE birds.family_id =families.family_id AND families.order_id = ordes.order_id AND orders.scientific_name = 'Pelecaniformes' GROUP BY Family;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗