单表-DQL

注意:这张图还包含了对于的顺序,先分组再排序,再分页,顺序不能乱
在这里插入图片描述

基本查询

在这里插入图片描述

# 1.基本查询
# 查询全部行
select * from tb_emp;
select id, user_name, password, name, gender, image, job, entry_date, create_time, update_time from tb_emp;
# 查询全部行的对应列,推荐用第二种,直观(先输入查询的select from 表,再输入第一个元素就能全部生成对应的列)
select name,entry_date from tb_emp;
# 加个起别名的操作(AS),其实也可以不加as,效果一样的
select name as 姓名, entry_date as 入职日期 from tb_emp;
select name  姓名, entry_date  入职日期 from tb_emp;
# 去除重复distinct(会去除查询列都相同的行)
select distinct job from tb_emp;# 2.条件查询(查询指定行)-where,这就解释查询大于50分人的全部信息
select * from tb_emp where gender=2;
# where后面可以跟很多条件语句
# 比较运算符 > < <= != =...  between and(范围)[是左闭右闭]
# in(set)(指定书集) like和not like(模糊查询) is null(判断是否为null)
# 逻辑运算符 and or not
# 注意:=null是等于字符串null,而想要查询是否为null 需要用 is null
select * from student where math between 80 and 100 and english in(88,98) and name is not nulland not(id is null);

条件查询

在这里插入图片描述

# 2.条件查询(查询指定行)-where,这就解释查询大于50分人的全部信息
select * from tb_emp where gender=2;
# where后面可以跟很多条件语句
# 比较运算符 > < <= != =...  between and(范围)[是左闭右闭]
# in(set)(指定书集) like和not like(模糊查询) is null(判断是否为null)
# 逻辑运算符 and or not
# 注意:=null是等于字符串null,而想要查询是否为null 需要用 is null
select * from student where math between 80 and 100 and english in(88,98) and name is not nulland not(id is null);
# 模糊匹配
# like (_匹配单个字符,%匹配任意个字符)
# 查询名字两个字符的员工
select * from tb_emp where name like '___';
# 查询姓张的员工
select * from tb_emp where name like '张%';

聚合函数

在这里插入图片描述

-- 聚合函数-- 1. 统计该企业员工数量 -- count
-- A. count(字段)
select count(id) from emp;  # 29
select count(job) from emp;# 28(job里面有一个null) -- null值不参与聚合函数运算-- B. count(*) -- 就直接查询有几行数据
select count(*) from emp;-- C. count(值) -- 也是直接查询几行数据不过建议用上面那个
select count(1) from emp;-- 2. 统计该企业员工 ID 的平均值
select avg(id) from emp;-- 3. 统计该企业最早入职的员工的入职日期
select min(entrydate) from emp;-- 4. 统计该企业最近入职的员工的入职日期
select max(entrydate) from emp;-- 5. 统计该企业员工的 ID 之和
select sum(id) from emp;

分组查询

在这里插入图片描述
尤其是这个注意1,查询其他字段一般是会报错的


# 4.分组查询
-- 分组
-- 1. 根据性别分组 , 统计男性和女性员工的数量  -- count
select gender,count(*) from  tb_emp group by gender;-- 2. 先查询入职时间在 '2015-01-01' (包含) 以前的员工 , 并对结果根据职位分组 , 获取员工数量大于等于2的职位 -- count
select job,count(*) from tb_emp where entry_date<='2015-01-01' group by job having count(*)>=2;

排序查询

在这里插入图片描述

# 5.排序查询
-- 1. 根据入职时间, 对员工进行升序排序  -- 排序条件
select * from tb_emp order by entry_date asc;
select * from tb_emp order by entry_date ;# 默认升序asc可以不写-- 2. 根据入职时间, 对员工进行降序排序
select * from tb_emp order by entry_date desc ;# desc降序-- 3. 根据 入职时间 对公司的员工进行 升序排序 , 入职时间相同 , 再按照 ID 进行降序排序
select * from tb_emp order by entry_date asc , id desc ;
#多个字段用,隔开,越前,优先级越高(第一个字段相同,才会用第二个字段排序)

分页查询

在这里插入图片描述

--  =================== 分页查询 ======================
limit 起始索引,查询记录数(这种语句可以实现了一个分页的效果,当然也可以不分页)
-- 1. 查询第1页员工数据, 每页展示10条记录
select * from emp limit 0,10;select * from emp limit 10;-- 2. 查询第2页员工数据, 每页展示10条记录
select * from emp limit 10,10;-- 公式 : 页码 ---> 起始索引  ------->  起始索引 = (页码 - 1) * 每页记录数

案例练习(条件控制语句学习)

在这里插入图片描述

# 6.案例
# 1.姓 (含)张 性别 男 入职 在2000-01-01到2015-12-31之间
# 查第一页数据 每页十条,对查询的记录根据最后修改的时间进行倒序排序
select * from tb_emp where name like '%张%' and gender=1and entry_date between '2000-01-01' and '2015-12-31'
order by update_time desc limit 10 ;
# 2.根据性别和男女划组,进行对应人数统计
select if(gender=1,'男士','女士') as '性别',count(*) as '总数' from tb_emp group by gender;
#IF(exp1,exp2,exp3),exp1为true返回exp2否则返回exp3select case when job=1 then '班主任'when job=2 then '讲师'when job=3 then '学工主任'when  job=4 then '教研主管'  end as '职位',count(*) as 总数 from tb_emp group by job;
# case when exp1 then exp2 when .. else exp_n END(注意后面有个end)
# exp1成立返回exp2 .. 如果都不成功 返回else 后面的exp_n

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/4869.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ZLMediaKit 的安装及使用介绍

ZLMediaKit 介绍 ZLMediaKit是一个基于C开发的开源流媒体服务器。它提供了高性能的音视频处理能力&#xff0c;支持常见的流媒体协议&#xff0c;如RTSP、RTMP、HLS和HTTP-FLV&#xff0c;并且具有低延迟和高并发处理能力。 开源地址&#xff1a;https://github.com/xia-chu/…

【JAVA】十分钟带你了解java的前世今生

个人主页&#xff1a;【&#x1f60a;个人主页】 系列专栏&#xff1a;【初始JAVA】 文章目录 前言JAVA介绍诞生&#x1f52c;名字与图标&#x1f916;发展&#x1f6e9;️未来&#x1fa84; 前言 玩过我的世界的朋友想必对JAVA以及它的图标都很熟悉&#xff0c;在游戏开始画面…

Spring进阶学习(附面试快速答法)

文章目录 1、Bean线程安全问题小总结面试快速答法 2、AOP小总结面试快速答法 3、bean的生命周期小总结面试快速答法 4、循环引用小总结面试快速答法 &#xff15;、SpringMVC的执行流程小总结面试快速答法 6、Springboot自动配置原理小总结面试快速答法 7、Spring框架常见注解面…

【数据库原理】MyShop 商城数据库设计(SQL server)

MyShop 商城数据库设计 项目背景定义课程设计要求概念结构设计逻辑结构设计数据结构的描述用户信息数据结构的描述地址信息数据结构的描述商品类别数据结构的描述商品数据结构的描述购物车数据结构的描述订单数据结构的描述订单项数据结构的描述 物理结构设计用户表结构地址表结…

2013年全国硕士研究生入学统一考试管理类专业学位联考逻辑试题——纯享题目版

&#x1f3e0;个人主页&#xff1a;fo安方的博客✨ &#x1f482;个人简历&#xff1a;大家好&#xff0c;我是fo安方&#xff0c;考取过HCIE Cloud Computing、CCIE Security、CISP、RHCE、CCNP RS、PEST 3等证书。&#x1f433; &#x1f495;兴趣爱好&#xff1a;b站天天刷&…

基于appnium+python+夜神模拟器的自动化

目录 1、安装夜神模拟器 2、定位元素 3、开始编码 首先搭好appnium环境&#xff01;参考https://www.cnblogs.com/testlearn/p/11419797.html 1、安装夜神模拟器 下载安装夜神模拟器后&#xff0c;在cmd命令输入adb connect 127.0.0.1:62001&#xff0c;显示出设备则表示…

Elasticsearch:实用 BM25 - 第 2 部分:BM25 算法及其变量

这是第一部分 “Elasticsearch&#xff1a;实用 BM25 - 第 1 部分&#xff1a;分片如何影响 Elasticsearch 中的相关性评分” 的续篇。 BM25算法 我将尽可能深入这里的数学以解释正在发生的事情&#xff0c;但这是我们查看 BM25 公式的结构以深入了解正在发生的事情的部分。 首…

threejs使用外部模型

个人博客地址: https://cxx001.gitee.io 前面我们都是用Threejs提供的几何体来创建网格&#xff0c;对于简单几何体(如球体和方块)来说非常有效&#xff0c;但当你想要创建复杂的三维模型时&#xff0c;这不是最好的方法。通常情况下&#xff0c;你可以使用三维建模工具&#…

Kafka详解

文章目录 1、kafka简单介绍2、kafka使用场景3、kafka基本概念4、kafka集群1、数据冗余2、分区的写入1、使用 Partition Key 写入特定 Partition2、由 kafka 决定3、自定义规则 3、读取分区数据 5、提交策略6、kafka如何保证高并发 1、kafka简单介绍 kafka是一款分布式、支持分…

IDEA远程DeBug调试

1. 介绍 当我们在开发过程中遇到一些复杂的问题或需要对代码进行调试时&#xff0c;远程调试是一种非常有用的工具。使用 IntelliJ IDEA 进行远程调试可以让你在远程服务器上的应用程序中设置断点、查看变量和执行调试操作。 远程调试的好处如下&#xff1a; 提供更方便的调试…

《Opencv3编程入门》学习笔记—第十一章

《Opencv3编程入门》学习笔记 记录一下在学习《Opencv3编程入门》这本书时遇到的问题或重要的知识点。 第十一章 特征检测与匹配 一、SURF特征点检测 太复杂了&#xff01;全是公式&#xff01; &#xff08;一&#xff09;SURF算法概览 SURF&#xff0c;SpeededUp Rebus…

无广告 齐全 简洁 免费的音乐开源软件(支持 电脑max win linux 手机 )——lxMusic

无广告 齐全 简洁 免费的音乐开源软件&#xff08;支持 电脑max win linux 手机 &#xff09;——lxMusic 话不多说先上效果 &#xff08;真香&#xff09; 下载地址&#xff08;官方&#xff09; https://www.lanzoui.com/b0bf2cfa/ 密码&#xff1a;glqw 软件安装包说明 文…