操作数据库---查select --distinct --where --between
查询
!!!查询解题思路:
①分析查询的数据来自哪些表(如果是多张表,记得写连接条件)
②如果需要过滤,追加到where后面
③如果需要分组,用group by
④分组后的过滤,就用having
⑤需要排序,就用order by
-- 别名,给结果起个别名 as 可以给字段起别名,也可以给表起别名
select `studentNO` as学号,`studentName` as学生姓名 from stdent as s;
-- 函数concat(a,b)
select concat(`姓名`,studentName) as 新名字 from student;
select version() -- 查询系统版本(函数)
select 100*3-1 as 计算结果 -- 用来计算(表达式)
select @@auto_increment_increment -- 查询自增的步长(变量)
select distinct `studentNO` from result -- 数据重复,去重
select `studentNO`,`studentResult`+1 as'提分后' from result -- 学员考试成绩+1分查看
-- 查询成绩在95-100之间
select studentNO,studentResult from result where studentResult>=95 and studentResult<=100;
select studentNO,studentResult from result where studentResult between 95 and 100; --模糊查询
逻辑运算符
运算符 | 语法 | 描述 |
---|---|---|
and && | a and b a&&B | 逻辑与,2个都为真,结果才为真 |
or || | a or b a||b | 逻辑或,其中一个为真,就为真 |
not ! | not a !a | 逻辑非,真为假,假为真 |
模糊查询
like 结合 %(匹配任意个字符) _(匹配一个字符)
select studnetNO,studentName from student where studentName like '刘%';--查询姓刘的同学
in(),查询在()里面
select studnetNO,studentName from student where studentNO in(1,2,3);
运算符 | 语法 | ,描述 |
---|---|---|
is null | a is null | 如果操作符为null,结果为真 |
is not null | a is not null | 如果操作符不为null,结果为真 |
between | a between b and c | 若a在b和c之间,则结果为真 |
like | a like b | sql匹配,如果a匹配b,则结果为真 |
in | a in (a1,a2,a3....) | 假设a在()之间的一个值,则结果为真 |
连接查询
inner join
left join
right join
-- join on (+判断条件) 连接查询
-- where 等值查询
SELECT s.studentNO,studentName, SubjectNo,StudentResult FROM student As s
INNER JOIN result AS r on s.studentNO = r.studentNO
SELECT s.studentNO,studentName, SubjectNo,StudentResult FROM student As s
INNER JOIN result AS r where s.studentNO = r.studentNO
分页和排序
limit(其市值下标,页面大小)
order by asc升序/desc降序
ORDER BY studentResu1t AsC LIMIT 5,5;
-- 第一页 limit 0,5 (1-1)*5,5
-- 第二页 limit 5,5 (2-1)*5,5
-- 第N页 limit (N-1)*5,5 (N-1)*5,5
伪列:
!!rowid:数据组自动向表里添加的一列,是真实存在的列,里面的值在这个数据库中是唯一的
!!rownum:是给结果集增加的一个序号,不属于任何的表,先有结果集,才能有rownum,始终是从1开始编号;常用于分页查询
--假设每页展示5条数据,请查询第二页的员工
select * from (select emp.*,rownum 排序 from emp) e where e.排序 between 6 and 10;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具