1对1,是指表A和表B通过某字段关联后,表A中的一条记录最多对应表B中的一条记录,表B中的一条记录也最多对应表A中的一条记录。...多对多,是指表A和表B通过某字段关联后,表A中的一条记录可能对应表B中的多条记录,而表B中的一条记录可能对应表A中的多条记录。 1对1 和 1对多关系,通常使用外键引用对应表的主键就可以表达。...函数名和括号是一个整体,中间不能有空格,空参数函数括号不能省略; f. 数字常量直接书写,如 20 ; g....2.6 分组聚合 分组聚合是指,我们可以将表中的数据,根据某一列或多列进行分组,然后将其他列的值进行聚合计算,如计数、求和和求平均值等。...差集,是求在一个集合中存在而在另一个集合中不存在的元素的集合。差集计算具有方向性,同样的,MySQL也没有提供差集计算的关键字,而是需要通过左/右关联然后再过滤出未关联成功的记录而得到。
] expr) 求最小值 SUM([distinct] expr) 求累加和 ①每个组函数接收一个参数 ②默认情况下,组函数忽略列值为null的行,不参与计算 ③有时,会使用关键字distinct...…)); 3)组函数的参数可以是列或是函数表达式; 4)一个SELECT子句中可出现多个聚集函数。...我们可以将group by操作想象成如下的一个过程:首先系统根据select语句得到一个结果集,然后根据分组字段,将具有相同分组字段的记录归并成了一条记录。...这个时候剩下的那些不存在与group by语句后面作为分组依据的字段就很有可能出现多个值,但是目前一种分组情况只有一条记录,一个数据格是无法放入多个数值的,所以这个时候就需要通过一定的处理将这些多值的列转化成单值...having子语句与where子语句区别: where子句在分组前对记录进行过滤; having子句在分组后对记录进行过滤 mysql> select salary,count(*) from
个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ ④【数据查询】MySQL...区别: 执行时机不同:where是分组之前进行过滤,不满足where的条件,不参与分组;而having是分组之后对结果进行过滤。...如果指定了多个排序字段,排序的数据只有当第一个字段值相同时,才会根据第二个字段进行排序。 7....分页查询 DQL - 分页查询: 对查询进行分页: SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询记录数; 注意: ①起始索引从0开始,起始索引 = (查询页码 - 1)* 每页显示的查询记录数...②分页查询在不同的数据库中实现方式不同,MySQL是LIMIT ③如果查询的是第一页数据,可以省略起始索引,直接LIMIT 10
class; 说明 rank()是排序函数,括号中无参数; 通过partition by对班级进行分组,通过order by按成绩降序排列,其后可以按升序asc或者降序desc排列; 总结 窗口函数中的...“窗口”表示范围,可以理解为将原数据按特定字段进行分组,然后用窗口函数实现分组计算; 窗口函数可同时实现分组和排序功能; 窗口函数不减少原表的行数 dense_rank() 说明 用法与rank()函数相同...区别 当排序字段取值相同时,在rank()函数中,如果有并列的情况,会占用下一个名次的位置,比如,成绩为100的学生有三个并列第一,那么99分的学生是第二名,通过rank()函数,名次分别为1,1,1,4...;而在row_number()函数中,会忽略并列的情况,名次分别为1,2,3,4; 注:窗口函数中如果省略partition by,则结果不进行分组,以整个表为范围,也就是窗口为整个表;如果省略order...by 则不进行排序,窗口函数一般写在select子句中; 窗口函数和聚合函数的区别 ①聚合函数是将多条记录聚合为一条,例如对整体求最大值/最小值/均值等;而窗口函数中每条记录都会执行,执行完记录数不变
(4)group by 可以单独使用,单独使用时查询结果就是字段取值的分组情况,字段中取值相同的记录为一组,但是只显示该组的第一条记录。 group by 子句后可跟多个分组字段列,多列间用逗号分隔。...条件 //该条件要求:当对一个或多个字段进行分组后,所查询的字段(即select后跟的字段名),必须是分组所依据的字段和经过聚合函数聚合后的新字段。...连接查询是同时查询两个或两个以上的表时使用的。当不同的表中存在相同意义的列时,可通过该字段来连接这几个表。 MySQL支持不同的连接类型:交叉连接、内连接、自连接查询。...两个函数功能相同,都是返回不小于参数的最小整数,即向上取整 floor 向下取整,返回值转化为一个bigint rand 生成一个0~1之间的随机数,传入整数参数是,用来产生重复序列 round 对所传参数进行四舍五入...sign 返回参数的符号 pow 和 power 两个函数的功能相同,都是所传参数的次方的结果值 sin 求正弦值 asin 求反正弦值,与函数 sin 互为反函数 cos 求余弦值 acos 求反余弦值
需要注意的是,当查询记录的字段有多个时,必须所有字段的值完全相同才被认为是重复记录。 排量与限量 排序 单字段排序 单字段排序指的是查询时仅按照一个指定字段进行升序或降序排序。...分组与聚合函数 分组 在MySQL中,可以使用GROUP BY 根据一个或多个字段进行分组,字段值相同的为一组。另外对于分组的数据可以使用HAVING进行条件筛选。...多分组统计 按照每个字段进行分组后,对已经分组的数据进行再次分组的操作,以实现多分组统计。...; 统计筛选 当对查询的数据进行分组操作时,可以利用HAVING 根据条件进行数据筛选,他与前面学习过的WHERE功能相同,但是在实际运用时两者有一定的区别。...x的绝对值 MOD(x,y) 求模运算,与x%y功能相同 PI() 计算圆周率 SQRT(x) 求x的平方根 POW(x) 幂运算函数,计算x的y次方,与POW(x,y)功能相同 RAND() 默认返回
] expr) 求最小值 SUM([distinct] expr) 求累加和 ①每个组函数接收一个参数 ②默认情况下,组函数忽略列值为null的行,不参与计算 ③有时,会使用关键字distinct...规则: ①出现在SELECT子句中的单独的列,必须出现在GROUP BY子句中作为分组列 ②分组列可以不出现在SELECT子句中 ③分组列可出现在SELECT子句中的一个复合表达式中 ...我们可以将group by操作想象成如下的一个过程:首先系统根据select语句得到一个结果集,然后根据分组字段,将具有相同分组字段的记录归并成了一条记录。...这个时候剩下的那些不存在与group by语句后面作为分组依据的字段就很有可能出现多个值,但是目前一种分组情况只有一条记录,一个数据格是无法放入多个数值的,所以这个时候就需要通过一定的处理将这些多值的列转化成单值...having子语句与where子语句区别: where子句在分组前对记录进行过滤; having子句在分组后对记录进行过滤 mysql> select salary,count(*) from
*可以换成指定列如:cust_email。计算所得行数不包括该列值为null的行。 DISTINCT 列名,求不重复的列。...创建分组: SELECT vend_id FROM Products GROUP BY vend_id; 根据 vend_id列中内容对 vend_id分组, 第一行换成...UNIQUE 唯一约束,可唯一标识数据库表中的每条记录。 PRIMARY KEY 主键约束,唯一标识数据库表中的每条记录,唯一且非空。...FOREIGN KEY 外键约束,一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。 CHECK 检查约束,用于限制列中的值的范围。...此处(从同一个表中查询)可以用WHERE , OR代替。 常用作从不同表中查询时,只要列数相同就可以拼接到一起,列名按照第一句中查询的列名。
人类在进化的过程中,创造了数字、文字、符号等来进行数据的记录,但是承受着认知能力和创造能力的提升,数据量越来越大,对于数据的记录和准确查找,成为了一个重大难题 计算机诞生后,数据开始在计算机中存储并计算...,并设计出了数据库系统 数据库系统解决的问题:持久化存储,优化读写,保证数据的有效性 当前使用的数据库,主要分为两类 文档型,如sqlite,就是一个文件,通过对文件的复制完成数据库的复制 服务型,如mysql...,关系 一个实体转换为数据库中的一个表 关系描述两个实体之间的对应规则,包括 一对一 一对多 多对多 关系转换为数据库表中的一个列 *在关系型数据库中一行就是一个对象 三范式 经过研究和对使用中问题的总结...---- 2.3分组 按照字段分组,表示此字段相同的数据会被放到一个组中 分组后,只能查询出相同的数据列,对于有差异的数据列无法出现在结果集中 可以对分组后的数据进行统计,做聚合运算 语法: ?...分组后的数据筛选 语法: ? having后面的条件运算符与where的相同 查询男生总人数 ?
解释MySQL中的主键与唯一键的区别。主键(Primary Key)是表中用于唯一标识每条记录的列或列的组合。一个表只能有一个主键,且主键列的值必须是唯一的,不允许为NULL。...它像一个虚拟表,包含了从一个或多个表中获取的数据。视图的优点包括简化复杂SQL查询、保护数据(通过限制对特定数据的访问)、更改数据格式和表示等。8. MySQL中的存储过程是什么?...如何在MySQL中设置和使用存储过程的参数?存储过程可以接受输入参数和返回输出参数。...适当配置和优化这些参数可以显著提高MySQL在高并发环境下的性能。36. 如何在MySQL中优化COUNT()查询?优化COUNT()查询的方法包括: - 使用更快的存储引擎,如InnoDB。...- 减少带宽使用:重复执行相同的查询时,只发送参数。39. MySQL中的FOREIGN KEY约束是什么?FOREIGN KEY约束用于建立两个表之间的关联。
可以存放在Excel中的数据 数据表有明确的结构, 结构不会频繁变化 列名, 每一列有固定的类型, 每一列大小范围可以预计 用来存储关系型数据的就是关系型数据库 常用的关系型数据库...约束 建表的时候, 可以给字段添加约束信息, 用来对字段做一些限制 主键约束 primary key auto_increment 不能为空 不能重复 加上auto_increment 可以由...3)主键不应包含动态变化的数据,如时间戳、创建时间列、修改时间列等。 4) 主键应当由计算机自动生成。..., 排序结果中有相同取值的时候, 后面排序的字段才能看到效果 聚合查询 count() 计数 NULL值会过滤 sum() 求和 avg() 求平均 min() 最小值 max() 最大值 # 聚合查询...group by group by 分组字段 会把这个字段中取值相同的数据行放到一组中, 做后续的计算 分组聚合 分组过滤 分组转换 分组之后的结果可以添加having子句进行过滤
>exit; sql>quit; sql>\q 1.3 mysql 登录常用参数 1.4 mysql 命令提示符修改 当我们登录进 mysql 的时候,可以看到如下信息 mysql> .......有两种方式 在链接客户端的时候通过参数指定 mysql -uroot -proot --prompt 提示符 连接上客户端后,通过 prompt 改变 mysql> propmt 提示符 提示符的参数...(不删除表自身,只删除表中记录的方法)删除所有数据 delete from 表名; DDL 语句会隐式提交,不能 rollback 2.2.2 DML 数据库操作语言 插入数据 insert 更新数据...-- where select * from tb_name where id%2 = 0; -- 查询偶数列的数据 -- group by 分组查询 (分组查询一般在多表中查询使用的比较多) -...SQL 中 FROM 子句中的表名,执行顺序上最先处理的表叫基表 在 FROM 子句中包含多个表,选择记录条数最少的表作为基础表 3个以上的表连接查询,选择交叉表作为基础表 使用 exists 代替 in
*可以换成指定列如:cust_email。计算所得行数不包括该列值为null的行。 DISTINCT 列名,求不重复的列。...创建分组: SELECT vend_id FROM Products GROUP BY vend_id; 根据 vend_id列中内容对 vend_id分组, 第一行换成 SELECT vend_id...UNIQUE 唯一约束,可唯一标识数据库表中的每条记录。 PRIMARY KEY 主键约束,唯一标识数据库表中的每条记录,唯一且非空。...FOREIGN KEY 外键约束,一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。 CHECK 检查约束,用于限制列中的值的范围。...此处(从同一个表中查询)可以用WHERE , OR代替。 常用作从不同表中查询时,只要列数相同就可以拼接到一起,列名按照第一句中查询的列名。
第一种, delete from 表名 第二种, truncate 表名 这两条语句的效果相同,但是它们是有区别的,区别在哪呢?...使用delete语句删除表数据的时候,可以被事务管理,而在事务中删除数据是可以回滚的。原理:一行一行地删除数据记录。 所以,truncate在删除所有记录的性能上,是优于delete的。...select分组查询中分组函数的介绍: count 返回查询结果记录条数 语法:select count(*) from 表名; sum 对一列的数据求和 语法:select sun(字段名) from...表名; sum求和时,null不参与运算 avg 对一列数据求平均值 语法:select avg(字段名) from 表名; max/min 对一列数据求最大值和最小值 语法:select max...(字段名),mini(字段名) from 表名; 最后一个注意事项:where不能使用分组函数,所以要想在分组查询的过程中添加限制条件,我们应该使用having,语法和where相同。
中文翻译过来,叫 窗口函数 ,或者 开窗函数 ,在 Oracle 中也称 分析函数 与 聚合函数 一样,也是对集合进行聚合计算,但和 聚合函数 又不一样,使用 聚合函数 时,每组只返回一个值,...等等 2、能够作为窗口函数的聚合函数,如: SUM 、 AVG 、 COUNT 、 MAX 、 MIN 后续的案例演示我们基于 MySQL8.0.30 ,初始表 tbl_ware 及数据如下...BY 则决定了纵向排序的规则,与 SELECT 子句末尾的 ORDER BY 子句完全相同 通过 PARTITION BY 分组后的记录集合称为“窗口”,代表“范围”。...,如: 1,2,2,2,5 , 3,4 被跳过了 DENSE_RANK 排序时,如果存在相同位次的记录,则不会跳过之后的位次,如: 1,2,2,2,3,4 ROW_NUMBER 获取行数或者行号...如果再加上分组 分组后,对每一组进行逐行汇总 AVG 类比 SUM ,我们直接看分组的情况 分组后,对每一组的每一行求历史平均值 其他 聚合函数 的窗口化就不一一演示了,相信大家也都明白了
任何时候用一组给定的输入值调用它们时,都返回相同的值。聚合函数可以应用于查询语句的SELECT中,或者HAVING子句中,但不可用于WHERE语句中,因为WHERE是对逐条的行记录进行筛选。...1.3、常用聚合函数 count(字段名):统计总行数 sum(字段名):计算列总和 avg(字段名):求某一列平均值 min(字段名):求某一列的最小值 max(字段名):求某一列的最大值 1.4、聚合函数语法...格式: select 聚合函数(字段名) from 数据库表名; 二、聚合函数应用 2.1、聚合函数基础应用 案例: 查看学生信息表中通过英语成绩统计所有的学生数 mysql> select count...,表示分组之后,根据分组结果,使用group_concat()来放置每一组的某字段的值的集合。...案例: 统计学生信息表中男生和女生的人数、英语总成绩、数学平均成绩及增加显示列的记录总和 mysql> select count(*),sex,sum(english),avg(math) from
约束 约束的作用 对字段的约束,为了保证表中数据的有效性。...更新记录 // 更新记录 UPDATE 表名 SET 列名1=列1对应的值,列名2=列2对应的值 WHERE 更新的条件 ; 修改表中的列、列名、表名 添加列(add) alter table 表名...) from 表名; // 求最小值 select min(要求最小值的列名) from 列名; // 统计数量 只统计不为null的记录条数 select count(表中任意不存在Null...by 将表中某列值相同的记录放在一起,称为一组。...顺序:from -> where -> group by -> select -> order by // 按照某列去分组,对于列名相同的记录默认会显示排在前面的 select * from
,优化读写,保证数据的有效性 当前使用的数据库,主要分为两类 文档型,如sqlite,就是一个文件,通过对文件的复制完成数据库的复制 服务型,如mysql、`postgre,数据存储在一个物理文件中,...但是需要使用终端以tcp/ip协议连接,进行数据库的读写操作 E-R模型 当前物理的数据库都是按照E-R模型进行设计的 E表示entry,实体 R表示relationship,关系 一个实体转换为数据库中的一个表...关系描述两个实体之间的对应规则,包括 一对一 一对多 多对多 关系转换为数据库表中的一个列在关系型数据库中一行就是一个对象 三范式 经过研究和对使用中问题的总结,对于设计数据库提出了一些规范,这些规范被称为范式...一个数据库就是一个完整的业务单元,可以包含多张表,数据被存储在表中 在表中为了更加准确的存储数据,保证数据的正确有效,可以在创建表的时候,为表添加一些强制性的验证,包括数据字段的类型、约束 字段类型...求计算机学科成绩的平均值 6.分组 /*分组按照字段分组,表示此字段相同的数据会被放到一个组中 分组后,只能查询出相同的数据列,对于有差异的数据列无法出现在结果集中 可以对分组后的数据进行统计,做聚合运算
这一篇是MySQL中的重点也是相对于MySQL中比较难得地方,个人觉得要好好的去归类,并多去练一下题目。MySQL的查询也是在笔试中必有的题目。希望我的这篇博客能帮助到大家! 重感冒下的我,很难受!...2.12、分组查询(GROUP BY) 分组查询就是将相同的东西分到一个组里面去,现实生活中举个例子,厕所分男女,这也是一个分组的应用,在还没有分男女厕所前,大家度共用厕所,后面通过分男女性别,男的跟男的分为一组...这就是分组的意思, 在上面对s_id进行查询的时候,发现很多重复的值,我们也就可以对它进行分组,将相同的值分为一组。 ...三、组函数(集合函数)查询 MySQL中组函数有COUNT()函数、SUM()函数、AVG()函数、MAX()函数、MIN()函数 3.1、COUNT() COUNT(*):计算表中的总的行数...例如:查看一下book表中的总记录数 ? 没有空值,所以计算出来的行数和总的记录行数是一样的。
领取专属 10元无门槛券
手把手带您无忧上云