以下是它们的详细解释: 1. COUNT(*) 功能:COUNT(*) 用于计算表中所有行的数量,包括包含 NULL 值的行。...语法: SELECT COUNT(column_name) FROM table_name; 特点: 仅计算指定列中不包含 NULL 值的行。 忽略包含 NULL 值的行。...: 语法和基本用途 COUNT(*):统计结果集中所有行的数量,无论该行中的列值是否为 NULL。...,因为它不关心列值是否为 NULL,只要有一行记录就会被统计。...说明: COUNT(*) 会统计表中所有行的数量,无论列是否包含NULL值。 它会对表中的所有行进行计数,即使某些列的值为NULL。
完整性约束可以分为如下类型:约束类型描述非空约束(NOT NULL)指定列是否可以为NULL,只能在建表语句中关于列的描述后指定非空约束。...唯一约束(Unique key)在相同的列、或多个列的组合中,是否允许不同的行拥有重复的值(允许值为NULL)。主键约束(Primary key)同时满足非空约束和唯一约束。...外键的值必须在主键或唯一键内存在。检查性约束(Check)要求对应列满足指定的条件。# 非空约束默认情况下,一个表中的所有列都允许空值,使用NOT NULL约束可以指定列不允许为空值。...唯一约束列都为空值也始终满足唯一键约束。# 主键约束在一个主键约束中的列或列集,其键值能唯一地标识一行。每个表只能有一个主键,起确定行的作用,并确保不存在任何重复的行。...外键的值,要么匹配被引用主键或唯一键的值,要么为空。如果复合外键中存在空值列,该键的非空列不再强制要求匹配父项中的对应列。被引用键被外键所引用的表中的唯一键或主键。
5.什么是数据库中的记录? 记录(也称为数据行)是表中相关数据的有序集合。 6.什么是表中的列? 列是表中的垂直实体,包含与表中特定细分关联的所有信息。 7.什么是DBMS?...临时表是用于临时存储数据的临时存储结构。 30.如何避免查询中重复记录? SQL SELECT DISTINCT查询仅用于返回唯一值。它消除了所有重复的值。...一个PRIMARY KEY 约束唯一标识数据库表中的记录。 参与主键约束的所有列均不得包含NULL值。 40.一个表可以包含多个PRIMARY KEY吗?...用字段NULL值是没有值的字段。甲NULL值是从零值或包含空格的字段不同。 具有NULL值的字段是在记录创建过程中留为空白的字段。...SQL中的聚合函数是什么? SQL聚合函数返回单个值,该值是根据列中的值计算得出的。
不同的数据结构适用于不同的查询场景和需求。哈希表:哈希表是一种基于哈希函数实现的索引结构。它将索引列的值作为哈希表的键,通过哈希函数计算出键的哈希值,并将数据行存储在哈希表对应的桶中。...非聚集索引(Unclustered Index):非聚集索引的索引列的值并不决定数据行的物理存储顺序。在非聚集索引中,每个表可以有多个非聚集索引,且索引列的值可以重复。...唯一索引(Unique Index):唯一索引确保索引列的值是唯一的,不允许重复。唯一索引可以是聚集索引或非聚集索引。...在创建唯一索引时,数据库系统会自动检查索引列的值是否唯一,如果不唯一则无法创建索引。唯一索引可以维护数据的一致性和完整性,防止数据重复。...每个节点包含一个布尔值isLeaf来表示该节点是否为叶子节点,一个List来存储键值,以及两个List来分别存储子节点和兄弟节点的指针。
COUNT(*)不接受表达式参数,也不使用任何特定列的信息。 COUNT(*)返回指定表或视图中的行数,但不消除重复项。 它分别计数每一行,包括包含NULL值的行。...COUNT(表达式)不计算NULL值。 它可以选择计数或不计数重复的字段值。 COUNT总是返回数据类型BIGINT, xDBC长度为8,精度为19,刻度为0。...COUNT(*)以整数形式返回表中行数的计数。 COUNT(*)计数所有行,无论是否存在重复的字段值或NULL值。 COUNT可以在引用表或视图的SELECT查询或子查询中使用。...与所有聚合函数一样,COUNT(expression)可以接受一个可选的DISTINCT子句。 DISTINCT子句只计算那些具有不同(唯一)值的列。...ALL关键字统计所有非null值,包括所有重复值。 如果没有指定关键字,ALL是默认行为。
InnoDB 存储引擎和数据列 建议使用 VARCHAR类型 对于InnoDB数据表,内部的行存储格式没有区分固定长度和可变长度列(所有数据行 都使用指向数据列值的头指针) ,因此在本质上,使用固定长度的....而B+树的查询效率比较稳定,对于所有的查询都是从根节点到叶子节点,且树的高度较低....等于说非主键索引需要多走一个索引树。 33.如何避免回表? 索引覆盖被查询的字段。 34.索引覆盖是什么? 如果一个索引包含(或覆盖)所有需要查询的字段的值,称为‘覆盖索引’。 35.视图的优缺点?...这可能是除了system和const之外最好的类型。当主键或唯一非NULL索引的所有字段都被用作join联接时会使用此类型。 eq_ref可用于使用’='操作符作比较的索引列。...适用于非唯一索引,可以返回重复值。
且定点数需要更多的存储空间,更慢的计算效率,浮点数一般用于对精度要求不那么严格的领域,如科学计算、工程领域和地理信息系统(GIS),定点数则更多用于金融、测量统计等。...如果你需要一个不包含任何重复行的结果集,并且不介意MySQL为你去除这些重复行,那么使用UNION。 如果你需要包含所有行,包括重复行,并且希望操作更快地执行,那么使用UNION ALL。...2、JOIN JOIN 子句是在FROM子句之后,根据相关列合并两个或多个表中的行,它决定了如何匹配不同表中的行。...4、GROUP BY GROUP BY 子句将具有相同值的行分组。这通常与聚合函数(COUNT、SUM、AVG等)一起使用,以对分组数据执行计算。该子句是根据指定的列将数据组织到群组中。...7、DISTINCT DISTINCT 关键字从结果集中删除重复的行。它在子句之后应用,以确保输出仅包含唯一行。 8、ORDER BY ORDER BY 子句根据一个或多个列对结果集进行排序。
包含通过前一个完成的日历季度发放的所有贷款的完整贷款数据。 查看数据集中行与列数量。 dataset.shape 可见数据集共有90112行,145列。...2.3 简易填补缺失值 删除掉含有较多缺失值的列后,需要填补剩余的包含缺失值的列。使用fillna()函数填补缺失值,该函数能自动定位到所有缺失值所在的位置,并将其补齐。...首先创建一个字典用于存储填补缺失值所需要传入的字典。 因之前已经计算完毕了填补各列所需的值,此处就直接使用计算得到的值即可。...,对所有缺失值均使用缺失值所在的后一个非缺失值的值来进行填补。...False时代表去除所有重复的数据,inplace代表是否替换原DataFrame。
6) 伪列,即不存在的列,构建虚拟的列 select empno, 1*2 as count,‘cmj’ as name,deptno from emp; 7)虚表,及不存在的表,可以计算 select...=和都表示不等于 3.2 且或非 and、 or、 not select * from emp where sal>=1500 and sal<=3000; 查询员工工资大于1500并且小于3000...; Union All,全集(不去重) 对两个结果集进行并集操 作,包括重复行,不进行排序 ; Intersect,交集(找出重复) 对两个结果集进行交集操 作,不包括重复行,同时进行默认规则的排序...; Minus,差集(减去重复) 对两个结果集进行差操作,不 包括重复行,同时进行默认规则的排序 –查询工资大于1500 或 含有佣金的人员姓名 –union 去除重复行 select ename..._的员工名称 岗位 工资 部门编 号 3.6. in 与 exists in相当于使用or的多个等值,定值集合 ,如果存在 子查 询,确保 类型相同、字段数为1,如果记录多,效率不 高,用于 一些
文章目录 T-SQL基础技术 基本语法格式 代码准备:(可以按照我的实例自行建立数据库) 1、投影查询 a、投影指定的列 b、投影全部列 c、修改查询结果的列标题 d、去掉重复行 2、选择查询 a.表达式比较...T-SQL语言中最重要的部分是它的查询功能,查询语言用来对已经存在于数据库中的数据按 照特定的行、列、条件表达式或者一定次序进行检索。...) 1、投影查询 a、投影指定的列 b、投影全部列 c、修改查询结果的列标题 d、去掉重复行 此部分比较简单,直接上代码 -- 打开数据库 use sixstardb go -- 1、【投影查询数据...d.空值使用 空值是未知的值,判定一个表达式的值是否为空值时,使用IS NULL关键字,语法格式如下: expression IS [ NOT ] NULL 代码示例: -- 2、【选择查询】 --...外连接的结果表不但包含满足连接条件的行,还包括相应表中的所有行。
(4)关于OVER子句:为行定义一个窗口以便进行特定的运算 OVER子句的优点在于能够在返回基本列的同时,在同一行对它们进行聚合;也可以在表达式中混合使用基本列和聚合值列。 ...例如,下面的查询为OrderValues的每一行计算当前价格占总价格的百分比,以及当前价格占客户总价格的百分比 。...非NULL值得表达式返回值为0,因此,它们会排在NULL值(表达式返回1)的前面。如上所示的将CASE表达式作为第一个拍序列,并把region列指定为第二个拍序列。...这是因为对于所有的外部行,因为它们在o.orderdate列上的取值都为NULL,所以WHERE子句中条件o.orderdate='20070212'的计算结果为UNKNOWN,因此WHERE子句会过滤掉所有的外部行...(TRUE和FALSE),它只关心是否存在匹配行,而不考虑SELECT列表中指定的列,并且无须处理所有满足条件的行。
运算符IS NULL可以判断列的值是否是NULL。...:MAX([DISTINCT or ALL] 列名称) ——求最小值函数:MIN([DISTINCT or ALL] 列名称) 其中,DISTINCT短语控制在计算时取消指定列中的重复值,即只处理唯一值...;而ALL则控制计算时不取消指定列中的重复值,默认为ALL;下面以一系列的例子来演示各聚合函数: /* 计算表中菜系这一列不去重的情况下元素个数 */ USE practice GO SELECT COUNT...默认情况下,UNION运算符将从结果中删掉重复的行,但可以通过使用UNION ALL运算符保留所有的行。...,所以table1中的非自助餐店铺的名称也会显示出来,但因为不匹配连接条件,所以对应的table2中列的属性为NULL /* 使用右外连接的方式查询在table1和table2中菜系均为自助餐的记录
原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚。 一致性是指一个事务执行之前和执行之后都必须处于一致性状态。...YES Expression: NULL 哈希索引 哈希索引是基于哈希表实现的,对于每一行数据,存储引擎会对索引列进行哈希计算得到哈希码,并且哈希算法要尽量保证不同的列值计算出的哈希码值是不同的...1、主键索引:名为primary的唯一非空索引,不允许有空值。 2、唯一索引:索引列中的值必须是唯一的,但是允许为空值。唯一索引和主键索引的区别是:唯一约束的列可以为null且可以存在多个null值。...不是所有类型的索引都可以成为覆盖索引。覆盖索引要存储索引列的值,而哈希索引、全文索引不存储索引列的值,所以MySQL使用b+树索引做覆盖索引。...不支持部分索引匹配查找,因为哈希索引是使用索引列的全部内容来计算哈希值的。 只支持等值比较,不支持范围查询。
非聚簇索引: 非聚簇索引就是以非主键创建的索引,在叶子节点存储的是表主键和索引列。 InnoDB 引擎 逻辑维度 主键索引: 主键索引是一种特殊的唯一索引,不允许值重复或者值为空。...普通索引: 普通索引是 MySQL 中最基本的索引类型,允许在定义索引的列中插入重复值和空值。...哈希索引: 工作原理:通过哈希算法将被索引的列的值存储到一个固定长度的桶(Bucket)。使得在查询特定值的时候非常高效,因为可以直接计算出存储位置,快速定位到数据。...索引列包含 NULL 值:如果索引列包含 NULL 值,MySQL可 能不会使用索引,因为 NULL 值的比较有特殊性。因为NULL值无法与其他值进行比较或匹配,所以无法使用索引。 9....位图索引是一种将数据列的所有可能值映射到二进制位上的索引。每个位表示某个值是否存在于该列中,从而帮助我们快速定位符合某个条件的行。
非聚集索引在查询的时候可以的话就避免二次查询,这样性能会大幅提升。 不是所有的表都适合建立索引,只有数据量大表才适合建立索引,且建立在选择性高的列上面性能会更好。...生效规则 多列索引发挥作用,需要满足左前缀要求 只要包含第一个条件,索引都生效,跟顺序无关 以index(a,b,c)为例 语句 索引是否发挥作用 where a=3 是 where a=3 and...key_len 用于处理查询的索引长度,如果是单列索引,那就整个索引长度算进去,如果是多列索引,那么查询不一定都能使用到所有的列,具体使用到了多少个列的索引,这里就会计算进去,没有使用到的列,这里不会计算进去...值 含义 system 表中只有一行数据或者是空表,且只能用于myisam和memory表。...其他数据库也叫做唯一索引扫描 eq_ref 出现在要连接过个表的查询计划中,驱动表只返回一行数据,且这行数据是第二个表的主键或者唯一索引,且必须为not null,唯一索引和主键是多列时,只有所有的列都用作比较时才会出现
示例 计算表中所有行的数量: SELECT COUNT(*) AS total_rows FROM orders; 计算特定条件下的行数: SELECT COUNT(*) AS active_users...FROM employees; 特殊情况 使用 COUNT(*) 计算所有行的数量,包括包含 NULL 值的行: SELECT COUNT(*) AS total_rows FROM your_table_name...注意事项 CUBE 生成的结果包含原始列的所有可能组合,形成一个多维的汇总。 CUBE 是 SQL 中用于实现多维聚合的强大工具,通过一次查询生成所有可能的组合,形成一个多维的汇总。...可以使用 PARTITION BY 指定分区,排名将在每个分区内独立计算。 DENSE_RANK() 是用于为查询结果中的行分配密集排名的窗口函数,适用于需要连续排名的情况,不跳过重复排名。...它们可以返回第一个非 NULL 表达式的值。 聚合函数和 NULL 值 COUNT 函数: COUNT(column_name) 不会统计包含 NULL 值的行。
SQL 存在一种很特殊的值类型 NULL,如果 COUNT 指定了具体列,则统计时会跳过此列值为 NULL 的行,而 COUNT(*) 由于未指定具体列,所以就算包含了 NULL,甚至某一行所有列都为...NULL,也都会包含进来。...SELECT AVG(cost) FROM test AVG 遇到 NULL 值时采用了最彻底的忽略方式,即 NULL 完全不参与分子与分母的计算,就像这一行数据不存在一样。...将某个字段的所有可枚举的情况都查了出来,并整合成一张表,每一行代表了一种枚举情况,不需要分解为一个个 WHERE 查询了。...GROUP BY a,b,c 查询结果第一列可能看到许多重复的 a 行,第二列看到重复 b 行,但在同一个 a 值内不会重复,c 在 b 行中同理。
约束可以应用于表的列级别或表级别。以下是一些常见的约束类型:1、主键约束(Primary Key Constraint)主键用于唯一标识表中的每一行。主键列的值不能包含重复项,并且不允许为空。...在数据库设计中,将字段定义为 NOT NULL 是为了确保数据库中的数据完整性和质量。NOT NULL 约束表示该字段在插入数据时必须包含非空值。...2、避免错误值强制字段为 NOT NULL 可以避免在该字段中插入无效或错误的值,确保数据的准确性和一致性。 3、避免计算错误在进行计算和聚合操作时,如果涉及到 NULL 值,可能导致计算结果不准确。...3、数据分布不均匀如果数据分布不均匀,某些值的重复度较高,那么对这些重复值建立索引可能不会显著提高查询性能。此时需要根据实际情况权衡是否建立索引。...-- 在 SQL 中,可以使用 IS NULL 或 IS NOT NULL 条件来测试某一列是否包含 NULL 值。
这种类型的检索例子有: 确定表中行数(或者满足某个条件或包含某个特定值的行数); 获得表中某些行的和; 找出表列(或所有行或某些特定的行)的最大值、最小值、平均值。...为了获得多个列的平均值,必须使用多个AVG()函数。 AVG()函数忽略列值为 NULL 的行。...在用于文本数据时,MAX()返回按该列排序后的最后一行。MAX()函数忽略列值为 NULL 的行。...在用于文本数据时,MIN()返回该列排序后最前面的行。MIN()函数忽略列值为 NULL 的行。...提示:在多个列上进行计算 利用标准的算术操作符,所有聚集函数都可用来执行多个列上的计算。SUM()函数忽略列值为 NULL 的行。
领取专属 10元无门槛券
手把手带您无忧上云