分组函数·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中选择
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值