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

分组函数·union·limit·order by排序·group by分组·外键

分组函数

  • count:计数;sum:求和;avg:求平均值;max:求最大值;min:求最小值;count(*):查询有多少行数据(因为一行数据肯定不会都为null)
  • 以上函数会自动忽略null

先建一张表
在这里插入图片描述

count:

SELECT COUNT(age) FROM bank;
结果:

在这里插入图片描述

sum:

SELECT SUM(age) FROM bank;
结果:

在这里插入图片描述

avg:

SELECT AVG(age) FROM bank;
结果:

在这里插入图片描述

max:

SELECT MAX(age) FROM bank;
结果:

在这里插入图片描述

min:

SELECT MIN(age) FROM bank;
结果:

在这里插入图片描述

union

将两个查询等 语句的结果 拼接起来,想要获得的列数必须相同,满足这个就能查了,字段名不同都可以,但是在oracle不行,其要求数据类型也要一样

bank表:
在这里插入图片描述
work表:
在这里插入图片描述
查询语句和结果:

SELECT NAME FROM bank 
UNION
SELECT NAME FROM WORK ;

在这里插入图片描述

但是当他俩所要获得的字段名不同时,依然会拼在一起,结果中的字段名是跟随前面的查询语句的字段名走

SELECT NAME FROM bank 
UNION
SELECT career FROM WORK ;

结果:
在这里插入图片描述

limit:

限制展示出来的数据条数:

  • SELECT 字段名 FROM 表名 ORDER BY 字段名 LIMIT 想要开始的起始下标, 想要展示的数据的长度(null 也显示);
  • 起始下标从0开始

bank表:
在这里插入图片描述

SELECT NAME FROM bank ORDER BY age LIMIT 1, 4;

结果:null 也显示了
在这里插入图片描述

order by排序:将数据排序(一般按照数字之类的好排)

  • order by 字段:默认升序;或者order by 字段 asc;
  • order by 字段 desc:降序
  • 查询的表中从上到下为序的方向
  • 可以写两个字段,当第一个字段相同时,就不好排序了,然后就启动备用方案:第二个字段

bank表:
在这里插入图片描述
sql语句(这里使用默认升序)

SELECT NAME FROM bank ORDER BY age ;

结果:
在这里插入图片描述

group by分组:

将获得的表进行分组
sql语句:

SELECT any_value(NAME) AS ‘姓名’,gander AS ‘性别’ FROM bank GROUP BY gander; 意为获得bank表中的name和gander字段并起别名,再讲其按照gander进行分组

结果:这里只显示了两个数据,不是sql语句的问题,是MySQL的版本问题,我的是8.0.....,group by中不能进行select,只能将要查询的数据放入ANY_VALUE()中 ,并且只会显示每一组的第一条,所以这张图分完组后,男女只显示第一条数据,具体点这里

在这里插入图片描述

外键:

  • 先创建一个表,在其中一个字段上添加外键标志,就将此字段和另一张表的一个字段联系起来了,此字段以后更新内容时必须保证另一张表中的字段也有此内容,即受另一张表的字段的约束
  • 这样就不用把所有数据写在一个表中了,如一张表中的人的班级只分了1班2班,如果班级全称长,那么每个人后面的班级字段都写班级名称,就会资源浪费,于是就把班级名字单独领出来做成一张表,然后在新的表中添加一个字段number,将他和bank表中的id联系起来将他俩联系起来,建立外键的关系,至于谁是谁的外键,就看具体情况了,一般主表中添加外键的约束,外键所在的表在另一个表中

现有bank表:
在这里插入图片描述
再来创建含有外键的表:

CREATE TABLE `bank_phone`(
	`id` INT COMMENT 'id值',
	`phone` INT(11) NOT NULL COMMENT '电话号码',
	FOREIGN KEY(id) REFERENCES bank(id)
);

建成的表:id只能在bank中的id1~5中选择
在这里插入图片描述


http://www.kler.cn/a/4467.html

相关文章:

  • 《AI创造力的边界与机器人技术的现实困境:一个双重视角的探讨》
  • Mac玩Steam游戏秘籍!
  • 【IDEA版本升级JDK21报错方法引用无效 找不到符号】
  • 华为2024嵌入式研发面试题
  • ANSYS Fluent学习笔记(七)求解器四部分
  • 【Uniapp-Vue3】showLoading加载和showModal模态框示例
  • 面试字节跳动软件测试岗,收到offer后我却毫不犹豫拒绝了....
  • day15-面向对象作业2
  • 常用的 IntelliJ IDEA 快捷键
  • Element Plus 实例详解(三)___Date Picker 日期选择
  • 大数据应用——Hadoop运行模式(本地运行)
  • nacos入门
  • SpringBatch-Demo1
  • 多线程的几种状态
  • 2023最新版360度无死角python学习路线
  • Python提取文本文件中某个位置的数据
  • 简化代码,提高效率:C++ auto关键字的魅力
  • 短信宝接入发送短信实测 Java
  • 【操作系统】一文带你深入浅出零拷贝技术
  • Apache POI 入门·第一话
  • Autosar诊断-简介和功能概述
  • 网络基础知识
  • 应用层 —— HTTP协议
  • Spark大数据处理讲课笔记2.3 Spark运行架构与原理
  • Android的虚拟机垃圾回收解析,简单明了看完通透
  • Jython