当前位置: 首页 > news >正文

Java学习——数据库查询操作

基本查询语句 DQL

基本查询

查询多个字段: select 字段1,字段2,字段3 from 表名;

select name,entrydate from db02.tb_emp;

查询所有字段 :slect * from 表名;

select id, username, password, name, gender, image, job, entrydate, create_time, update_time from db02.tb_emp;
select * from  db02.tb_emp

设置别名 :select 字段1 [as 别名1],字段2 [as 别名2] from 表名;as可以省略

select name as 姓名,entrydate as 入职时间 from db02.tb_emp;
//如果别名中有特殊符号需要加上引号,单引号双引号都可以
select name as "姓 名",entrydate as 入职时间 from db02.tb_emp;

在这里插入图片描述

去除重复记录:select distinct 字段列表 from 表名;

select distinct job from  db02.tb_emp;

在这里插入图片描述

条件查询(where)

在这里插入图片描述

// 查询姓名为杨逍的员工
select * from  db02.tb_emp where name='杨逍';
//查询id<=5的员工信息
select * from  db02.tb_emp where id<=5;
//查询没有分配职务的员工
select * from  db02.tb_emp where job is null ;
//查询有职位的员工
select * from  db02.tb_emp where job is not null ;
//查询密码不等于‘123456’的员工
select * from  db02.tb_emp where password !='123456';
//查询职时间在'2000-01-01(包含)'到'2010-01-01(包含)'之间的员工的信息
select * from  db02.tb_emp where entrydate between '2000-01-01' and '2010-01-01';
select * from  db02.tb_emp where entrydate>='2000-01-01'&&entrydate<='2010-01-01';
//查询职时间在'2000-01-01(包含)'到'2010-01-01(包含)'之间且性别为女的员工的信息
select * from  db02.tb_emp where entrydate>='2000-01-01'&&entrydate<='2010-01-01'&& gender=2;
//查询有职位是2。3.4的员工信息
select * from  db02.tb_emp where job=2 or job=3 or job=4;
select * from  db02.tb_emp where job in(2,3,4);
//查询姓名是两个字的员工信息
select * from  db02.tb_emp where name like '__';
//查询姓张的员工信息
select * from  db02.tb_emp where name like '张%';

分组查询(group by)

聚合函数

将一列数据作为一个整体,进行纵向计算
在这里插入图片描述

//统计员工总数据量
//1,count(字段)
select count(id) from tb_cmp;
//2.count(常量)
select count(1) from tb_cmp;
//3.count(*) 推荐使用
select count(*) from tb_cmp;

//统计该企业最早入职的员工
select min(entrydate) from db02.tb_emp;
//统计该企业最迟入职的员工
select max(entrydate) from db02.tb_emp;
//统计该企业员工id的平均值
select avg(id) from db02.tb_emp;
//统计该企业员工id的和
select sum(id) from db02.tb_emp;

分组查询

//根据性别分组
select gender,count(*) from  db02.tb_emp group by gender;
//查询入职时间在'2015-01-01'之前的员工,并对结果根绝职务进行分组,获取员工人俗大于等于2的职位
select job,count(*) from  db02.tb_emp where entrydate<='2015-01-01' group by job having count(*)>=2;

在这里插入图片描述
where和having的区别
1 执行时机不同:where是在分组之前进行过滤,不满足where条件的不参与分组;而having是对分组之后的结果进行过滤。
2 判断条件不同:where不能对聚合函数进行判断,而having可以。

排序查询(order by)

升序:ASC(默认值)
降序:DESC

//根据入职时间,对员工进行升序排序
select * from tb_emp order by entrydate asc;
//根据入职时间,对员工进行升序排序,如果入职时间相同,再按照更新时间进行降序排序
select * from tb_emp order by entrydate, updata_time desc;

分页查询(limit)

//从起始索引0开始查询员工数据,每页展示5条记录
select * from tb_emp limit 0,5;
//查询第一页员工数据,每页展示5条记录
select * from tb_emp limit 0,5;
查询第二页员工数据,每页展示5条记录
select * from tb_emp limit 5,5;
//起始索引=(页码-1)*每页展示记录数

相关文章:

  • PHP工程师转向Java开发定制的教材及教程信息,结合两种语言的差异点进行针对性推荐
  • 搭建opensbi+kernel+rootfs及基本设备驱动开发流程
  • java使用(Preference、Properties、XML、JSON)实现处理(读写)配置信息或者用户首选项的方式的代码示例和表格对比
  • 基于 Python 爬取 TikTok 搜索数据 Tiktok爬虫(2025.3.17)
  • C++: <bits/stdc++.h>详细介绍
  • Kotlin语言基础笔记
  • 拦截网页中的 Fetch 和 XMLHttpRequest 请求方式方法
  • 《jQuery UI 使用指南》
  • WD5202L超低成本 Buck 电源芯片的特性与应用电路解析, 将市电转换为 5V 电压
  • 力扣Hot100——136. 只出现一次的数字
  • 突破连接边界!O9201PM Wi-Fi 6 + 蓝牙 5.4 模块重新定义笔记本无线体验
  • 低空经济安全保障体系构建方案
  • 【Unity】 HTFramework框架(六十二)Agent编辑器通用智能体(AI Agent)
  • 【NLP】 5. Word Analogy Task(词类比任务)与 Intrinsic Metric(内在度量)
  • “量超融合”突破 澳Quantum Brilliance融资2000万美元探索量子与超算协同
  • 事件驱动架构(EDA):微服务世界的未来趋势
  • UNI-APP uts插件 支持ANDROID 监听手机状态
  • 分布式锁: 并发时,redis如何避免删别人的锁
  • uniapp笔记-底部和首部标签页菜单生成
  • Matlab 汽车ABS实现pid控制
  • 山东一景区怕游客赶不到海撒三千斤蛤蜊:给游客提供情绪价值
  • 全球最大汽车板供应商宝钢股份:汽车工业加速转型中材料商如何共舞?
  • 韩国法院将重审李在明案,韩德洙入局能否为大选带来变数?
  • 湖南新宁一矿厂排水管破裂,尾砂及积水泄漏至河流,当地回应
  • 来上海喝云南咖啡!上海国际咖啡文化节助力咖啡产业破圈出海
  • 神十九乘组安全顺利出舱