数据库查询操作

数据库查询操作

  • 数据准备
  • 查询的基本操作
    • 查询部分字段的值
    • 取别名
    • 去重
  • 条件查询
    • 比较运算符
    • 逻辑运算符
    • 模糊查询
    • 范围查询
    • 为空判断
  • 排序
  • 分组聚合
    • count(*) : 求表的总的记录数
    • max(字段名): 查询对应字段的最大的值
    • min(字段名): 查询对应字段的最小的值
    • sum(字段名): 查询对应字段的值的总和
    • avg(字段名): 查询对应字段的值的平均数
    • 总和运用
  • 分组查询
    • group by
    • having
  • 分页查询

数据准备

drop table if exists students;
create table students (
studentNo varchar(10) primary key,
name varchar(10),
sex varchar(1),
hometown varchar(20),
age tinyint(4),
class varchar(10),
card varchar(20)
);insert into students values
( '001', '王昭君 ', '女 ', '北京 ', '20', '1班 ', '340322199001247654'), ( '002', '诸葛亮 ', '男 ', '上海 ', '18', '2班 ', '340322199002242354'), ( '003', '张飞 ', '男 ', '南京 ', '24', '3班 ', '340322199003247654'),
( '004', '白起 ', '男 ', '安徽 ', '22', '4班 ', '340322199005247654'),
( '005', '大乔 ', '女 ', '天津 ', '19', '3班 ', '340322199004247654'),
( '006', '孙尚香 ', '女 ', '河北 ', '18', '1班 ', '340322199006247654'),
( '007', '百里玄策 ', '男 ', '山西 ', '20', '2班 ', '340322199007247654'), ( '008', '小乔 ', '女 ', '河南 ', '15', '3班 ', null),
( '009', '百里守约 ', '男 ', '湖南 ', '21', '1班 ', ''),
( '010', '姐己 ', '女 ', '广东 ', '26', '2班 ', '340322199607247654'), ( '011', '李白 ', '男 ', '北京 ', '30', '4班 ', '340322199005267754'), ( '012', '孙眠 ', '男 ', '新疆 ', '26', '3班 ', '340322199000297655');

在这里插入图片描述

查询的基本操作

查询部分字段的值

-- 查询某些字段
select name,sex,age from students;

取别名

-- 表起别名
select s.name,s.sex,s.age from students as s;
-- 字段取别名
select s.name as 姓名,s.sex as 性别,s.age as 年龄 from students as s;

去重

-- 字段内容去重
select DISTINCT sex from students;

条件查询

比较运算符

比较运算符: 大于(>)、等于(=)、小于(<)、大于等于(>=)、小于等于(<=)、不等于(<>或者!=)

-- //条件查询:比较运算符
-- 例1:  查询小乔的年龄
select age from students where name = '小乔';
-- 例2:  查询20岁以下的学生
select * from students where age <20;
-- 例3:  查询家乡不在北京的学生       != 之间不能有空格
select * from students where hometown != '北京';
-- 1、  查询学号是'007'的学生的身份证号
select card from students where studentNo= '007';
-- 2、  查询'1班 '以外的学生信息
select * from students where class <> '1班';
-- 3、  查询年龄大于20的学生的姓名和性别
select name,sex from students where age >20;

逻辑运算符

逻辑运算符: and(且,同时符合对应的条件), or (或,符合其中的—个条件), not (非,不符合该条件)

-- //条件查询:逻辑运算符
select * from students where age=18 and sex='女';
-- 查询出女学生或者是1班的学生
select * from students where sex='女' or class='1班';
-- 查询非天津的学生的记录
select * from students where not hometown='天津';
select * from students where hometown != '天津';

模糊查询

模糊查询: like关键字
% : 匹配任意个字符
_ :匹配任意单个字符
—般LIKE关键字只用来匹配字段类型为字符串的

-- //条件查询:模糊查询
-- 例1:  查询姓孙的学生
select * from students where name like '孙%';
-- 例2:  查询姓孙且名字是—个字的学生
select * from student where name like '孙_';
-- 例3:  查询姓名以‘ 乔 ’ 结尾的学生
select * from students where name like '%乔';
-- 例4:  查询姓名中包含‘ 白 ’ 的学生
select * frm students where name like '%白%';
-- 1、 查询姓名为两个字的学生
select * from students where name like '__';
-- 2、  查询姓‘百’且年龄大于20的学生
select * from studen where name like '百%' and age >20;
-- 3、  查询学号以1结尾的学生
select * from students where studentNo like '%1';

范围查询

in : 查询非连续范围内的数据
between … and : 查询连续范围内的数据(用来数值型字段中)

-- //条件查询:范围查询--  查询家乡为北京或上海或广东的学生(in)select * from students where hometown in ( '北京 ', '上海 ', '广东 ');select * from students where hometown= '北京 ' or hometown= '上海 ' or hometown= '广东 '-- -- 查询年龄在18到20之间的学生(between and)select * from students where age between 18 and 20;select * from students where age >=18 and age <= 20;-- 1、  查询年龄为18或19或22的女生select * from students where age >= 18 age <= 20;select * from students where age betwwen 18 and 20;

为空判断

null 和 ''空字符串不一样
空判断: is null
非空判断: is not null

-- //条件判断:为空判断-- 查询出学生身份证号为空的信息select * from students where card is null;-- 查询出学生身份证不为空的信息select * from studnts where card is not null;

排序

select * from 表名 order by 字段1 asc |desc, 字段2 asc |desc
字段的排序规则默认为升顺排列(从小到大)
asc: 表示从小到大排序(升序)
desc: 表示从大到小排序(降序)

-- //排序-- 例1:  查询所有学生信息,按年龄从小到大排序select * from students order by  age;-- 例2:  查询所有学生信息,按年龄从大到小排序,     年龄相同时,再按学号从小到大排序select * from students order by age desc,studentNo;-- 1、  查询所有学生信息,按班级从小到大排序,     班级相同时,再按学号从小到大排序
select * from students order by class, studentNo;

分组聚合

使用聚合函数方便进行数据统计
聚合函数不能在where中使用

count(*) : 求表的总的记录数

-- 查询学生表的总记录数
select count(*) from students;

max(字段名): 查询对应字段的最大的值

-- 查询女生的最大年龄
select age from students where sex='女';
select max(age) from students where sex='女';

min(字段名): 查询对应字段的最小的值

-- 查询1班的最小年龄
select class,age from students where class ='1班';
select min(age) from students where class ='1班';

sum(字段名): 查询对应字段的值的总和

-- 查询北京学生的年龄总和
select hometown,age from students where hometown='北京';
select sum(age) from students where hometown='北京';

avg(字段名): 查询对应字段的值的平均数

-- 查询女生的平均年龄
select sex,age from students where sex ='女';
select avg(age) from students where sex='女';

总和运用

-- 查询所有学生的最大年龄、最小年龄、平均年龄
select max(age),min(age),avg(age) from students;
-- 一班共有多少个学生
select count(*) from students where class='1班';
-- 查询3班年龄小于18岁的同学有几个
select count(*) from students where class='3班' and age < 18;

分组查询

group by

  • 格式
select 字段名1,字段名2,聚合函数 .... from 表名     group by 字段名1,字段名2....
  • 例子
-- //分组查询--group by
-- 查询各种性别的人数
select sex,count(*) from students group by sex;
-- 查询各种性别年底最大的
select sex,max(age) from students group by sex;
-- 查询各个班级的人数
select class,count(*) from students group by class;
-- 查询各个班级中不同性别的人数
select class,sex,count(*) from students group by class,sex;

having

  • 格式
select 字段名1,字段名2,聚合函数 .... from 表名     group by 字段名1,字段名2....
having 条件
  • 例子
--  //分组查询--having
-- 查询男生总人数
select count(*) from students where sex='男';
select sex,count(*) from students group by sex having sex='男';
-- 查询每个班级男生的总记录数
select class,sex,count(*) from students group by class,sex having sex='男';
-- 查询所有班级中不同性别的记录数大于1的信息
select class,sex,count(*) from students group by class,sex haxing count(*)>1;

在这里插入图片描述

分页查询

  • 格式
select * from limit start, count
  • 例子
-- //分页查询
-- 查询前3行的学生信息
select * from students limit 0,3;
select * from students limit 3;-- //公式select * from students limit (n-1)*m, m;
-- n=1,m=3(n代表的是页数,m代表的是每页显示的记录数)
select * from students limit 03;

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

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

相关文章

分布式之Ribbon使用以及原理

Ribbon使用以及原理 1、负载均衡的两种方式 服务器端负载均衡 传统的方式前端发送请求会到我们的的nginx上去&#xff0c;nginx作为反向代理&#xff0c;然后路由给后端的服务器&#xff0c;由于负载均衡算法是nginx提供的&#xff0c;而nginx是部署到服务器端的&#xff0c;所…

vue-cli自定义创建项目-eslint依赖冲突解决方式

创建项目步骤 概览&#xff1a; 在安装 npm安装时会报错 npm ERR! code ERESOLVE npm ERR! ERESOLVE could not resolve npm ERR! npm ERR! While resolving: vue/eslint-config-standard6.1.0 npm ERR! Found: eslint-plugin-vue8.7.1 npm ERR! node_modules/eslint-plugin…

C++面试宝典一部分

今天整理书籍资料时&#xff0c;发现多年前打印的面试资料&#xff0c;拍照分享给大家。

Unity ShaderGraph实现地面积水效果

先看看效果 右侧参数&#xff0c;能够控制水高&#xff0c;波纹的速度等&#xff0c;但是这个效果需要修改高度图和凹凸图&#xff0c;毕竟有些模型并不是平面&#xff0c;对于具有斜面的模型就需要修改贴图。 ShaderGraph如下

掌握React中的useCallback:优化性能的秘诀

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

window Zookeeper 启动;

文章目录 前言一、Zookeeper 介绍&#xff1a;二、window 使用&#xff1a;2.1 下载&#xff1a;2.2 启动2.3 连接&#xff1a; 总结 前言 本文对window Zookeeper zk 启动 进行介绍&#xff1b; 一、Zookeeper 介绍&#xff1a; ZooKeeper 是一个开源的分布式协调服务&#…

C 嵌入式系统设计模式 24:安全性和可靠性介绍

本书的原著为&#xff1a;《Design Patterns for Embedded Systems in C ——An Embedded Software Engineering Toolkit 》&#xff0c;讲解的是嵌入式系统设计模式&#xff0c;是一本不可多得的好书。 本系列描述我对书中内容的理解。本文章描述嵌入式安全性和可靠性模式之一…

数据分析-Pandas如何画图验证数据随机性

数据分析-Pandas如何画图验证数据随机性 数据分析和处理中&#xff0c;难免会遇到各种数据&#xff0c;那么数据呈现怎样的规律呢&#xff1f;不管金融数据&#xff0c;风控数据&#xff0c;营销数据等等&#xff0c;莫不如此。如何通过图示展示数据的规律&#xff1f; 数据表…

Redis核心数据结构之字典(一)

字典 概述 字典又称为符号表(symbol table)、关联数组(associative array)或映射(map)&#xff0c;是一种保存键值对(key-value pair)的抽象数据结构&#xff0c;在字典中&#xff0c;一个键(key)可以和一个值(value)进行关联(或者说将键映射为值)&#xff0c;这些关联的键和…

大数据 - Spark系列《十三》- spark集群部署模式

Spark系列文章&#xff1a; 大数据 - Spark系列《一》- 从Hadoop到Spark&#xff1a;大数据计算引擎的演进-CSDN博客 大数据 - Spark系列《二》- 关于Spark在Idea中的一些常用配置-CSDN博客 大数据 - Spark系列《三》- 加载各种数据源创建RDD-CSDN博客 大数据 - Spark系列《…

Docker 配置阿里云镜像加速器

一、首先需要创建一个阿里云账号 二、登录阿里云账号 三、进入控制台 四、搜索容器镜像服务&#xff0c;并选择 五、选择镜像工具中的镜像加速 六 、配置镜像源 注意&#xff1a;有/etc/docker文件夹的直接从第二个命令开始

Apache SeaTunnel社区发布最新Roadmap:定义数据集成未来

随着春节假期的结束&#xff0c;我们迎来了充满希望的龙年&#xff0c;开源社区也呈现出一片繁荣的景象。 今天&#xff0c;我们激动地宣布Apache SeaTunnel社区最新Roadmap现已公开&#xff01;在不断追求创新和卓越的道路上&#xff0c;我们致力于将SeaTunnel打造成为数据集成…

Vue中的组件:构建现代Web应用的基石

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

手把手教使用静默 搭建Oracle 19c 一主一备ADG集群

一、环境搭建 主机IPora19192.168.134.239ora19std192.168.134.240 1.配置yum源 1.配置网络yum源 1.删除redhat7.0系统自带的yum软件包&#xff1b; rpm -qa|grep yum >oldyum.pkg 备份原信息rpm -qa|grep yum|xargs rpm -e --nodeps 不检查依赖&#xff0c;直接删除…

【Java】仓库管理系统 SpringBoot+LayUI+DTree(源码)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

在XCode中使用SwiftGen管理你的图片、配色、多语言文件等

SwiftGen是一个工具&#xff0c;可以为您的项目资源&#xff08;如图像、本地化字符串等&#xff09;自动生成Swift代码&#xff0c;然后你就可以像使用一个Class类一样访问你的资源了。 而且添加或更新资源后&#xff0c;SwiftGen也会自动更新用于访问资源的Class类。对于管理…

第二十天-数据分析

1.介绍 1.什么是数据分析 1.以下4个纬度结合起来的数据科学 2.数据分析的特殊性

七彩虹@电脑cpu频率上不去问题@控制中心性能模式cpu频率上不去@代理服务器超时@账户同步设置失败

文章目录 windows电脑cpu频率上不去新电脑的系统时间问题系统时间不准造成的具体问题举例代理超时vscode同步请求失败自动校准时间 windows电脑cpu频率上不去 问题描述,标压处理器的笔记本,cpu频率上不去 如果cpu没问题的话,就应该是系统限制了功耗导致的有的笔记本有控制中心…

第十五届蓝桥杯-UART接收不定长指令的处理

学习初衷&#xff1a; 不仅仅为了比赛&#xff01; 目录 一、问题引入 二、UART常用的三种工作模式 1.UART工作在中断模式 2.UART工作在DMA模式下 3.uart工作在接收转空闲的模式下 三、获取指令中需要的数据 四、printf函数的实现 一、问题引入 问题引入&#xff1a;请…

STM32CubeMX学习笔记20——SD卡FATFS文件系统

1. FATFS文件系统简介 文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构&#xff08;即在存储设备上组织文件的方法&#xff09;。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统&#xff0c;简称文件系统&#xff1b;不带文件系统的SD卡仅能…