1、avg()函数 avg()通过对表中行数计数并计算特定列值之和,求得该列的平均值;avg()可用来返回所有列平均值,也可用来返回特定列的平均值; select avg(prod_price) as...NULL的行}; 2、count()函数 count()函数进行计数,可利用count()确定表中行的数目或符合特定条件的行的数目; count()函数有两种使用方式: ①使用count(*)对表中行的数目进行计数...,不管表列中包含的是空值(null)还是非空值; ②使用count(column)对特定列中具有值的行进行计数,忽略null值; select count(*) as num_cust from customers...vend_id=1003的对应的price平均价格,因为使用了distinct参数,因此平均值只考虑不同的值(唯一值) 7、组合聚集函数 select语句可以包含多个聚集函数,比如: select count...order by的重要性:一般使用group by子句时,应该也给出order by子句,这是保证数据正确性的唯一方法(千万不要依赖group by排序数据)。 4、select子句顺序 ?
by -- 分页查询 m的含义表示从数据的第(m + 1)条开始查询(mysql中第一条数据m=0) n的含义是从第m条数据开始往后查询n条数据 SELECT * FROM user limit m...最后返回累计值 count(*)和count(1)哪个执行效率高 如果count(1)是聚索引 id,那肯定是count(1)快 执行效果上 count(*)包括了所有的列,相当于行数,在统计结果的时候...,不会忽略列值为NULL count(1)包括了忽略所有列,用1代表代码行,在统计结果的时候,不会忽略列值为NULL count(列名)只包括列名那一列,在统计结果的时候,会忽略列值为空(这里的空不是只空字符串或者...0,而是表示null)的计数,即某个字段值为NULL时,不统计 执行效率上 列名为主键,count(列名)会比count(1)快 列名不为主键,count(1)会比count(列名)快 如果表多个列并且没有主键...(右联接) :返回包括右表中的所有记录和左表中联结字段相等的记录 inner join(等值连接) :只返回两个表中联结字段相等的行 分库分表的问题如何实现分布式全局唯一ID 在分库分表的环境中
* 表示所有列。...FROM employees; 特殊情况 使用 COUNT(*) 计算所有行的数量,包括包含 NULL 值的行: SELECT COUNT(*) AS total_rows FROM your_table_name...COUNT 函数返回的是整数,表示满足条件的行数。 注意处理 NULL 值,使用 COUNT(*) 可以包括 NULL 值,而 COUNT(column_name) 会排除 NULL 值。...4.5 CUBE CUBE: 多维聚合 CUBE 是 SQL 中用于实现多维聚合的语法,它生成所有可能的组合,形成一个多维的汇总。...注意事项 CUBE 生成的结果包含原始列的所有可能组合,形成一个多维的汇总。 CUBE 是 SQL 中用于实现多维聚合的强大工具,通过一次查询生成所有可能的组合,形成一个多维的汇总。
LIKE 测试值是否与指定的字符串匹配 IS NULL 测试NULL值 IS NOT NULL 测试除以外的所有值 NULL 使用通配符 SQL允许使用通配符。...请注意,AVG函数仅适用于包含数值的列; 当在包含字符串值的列上使用时,它可能会返回错误或0: SELECT AVG(column) FROM table; 查找列中的值的总和 SUM函数用于查找列中保存的所有数值的总和...table ORDER BY column_1 DESC; 使用GROUP BY子句对结果进行排序 该GROUP BY子句是类似于ORDER BY子句,但它是用来包括聚合函数例如查询的结果进行排序COUNT..._2 DESC; 使用JOIN子句查询多个表 JOIN子句用于创建组合来自两个或多个表的行的结果集。...INNER JOIN将返回两个表中具有匹配值的所有记录,但不会显示任何没有匹配值的记录。 通过使用外部 JOIN子句,可以从两个表中的一个表中返回所有记录,包括在另一个表中没有相应匹配的值。
它为每个City和Age值的唯一组合选择任意一行。 因此,GROUP BY City,Age返回与GROUP BY Age,City相同的结果。 字段必须通过列名指定。...有效的字段值包括以下内容:列名(GROUP BY City); %ID(返回所有行); 指定列名的标量函数(GROUP BY ROUND(Age,-1)); 指定列名的排序规则函数(GROUP BY...GROUP BY StreamField操作流字段的OID,而不是它的实际数据。 因为所有流字段oid都是唯一的值,GROUP BY对实际的流字段重复数据值没有影响。...因此,指定7、'Chicago'、''、0或NULL都返回1行。...带有GROUP BY子句的SELECT语句返回所做的所有数据修改,无论它们是否已提交。 示例 下面的示例按名称的首字母对名称进行分组。它返回首字母、共享该首字母的姓名计数以及一个Name值的示例。
3、分组并统计: 在分组的使用并实现对所有分组的数据总数统计,在数据分析中按组统计并展示合计数据的时候非常好用。...Group by的分组并统计功能介绍 场景: 对某些字段进行分组统计,同时或者到所有分组中的统计数据的综合,这是是数据分析中经常会遇到的场景。...,他们是grouping sets的一个简单实用方式 区别: 1、cube生成分组中特定列所有可能的层次组合。 ...2、rollup只会按照层次生成有可能的组合。 3、默认的group by语句相当于grouping set在grouping set后的参数填上所有group by。...使用: GROUPING函数使用一个单独的列表示。在GROUPING函数中的expr必须匹配一个GROUP BY子句中的表达式, 该函数的返回值0或大于0。
VARCHAR(100) NOT NULL, email VARCHAR(100) UNIQUE);在这个示例中,id 列是一个自增的主键,确保每条记录都有唯一的标识符。...username 和 password 列是必填字段,email 列要求值唯一,以保证用户邮箱的唯一性。修改表结构随着项目的发展,可能需要对表结构进行修改,如添加新列、修改列的数据类型或约束等。...除了前面提到的主键约束(PRIMARY KEY)和唯一约束(UNIQUE)外,还有其他常见的约束类型。非空约束非空约束(NOT NULL)确保列中的值不能为空。...如在创建 users 表时,username 和 password 列都设置了非空约束,这意味着插入记录时这两列必须提供值。外键约束外键约束(FOREIGN KEY)用于建立表之间的关联关系。...= orders.user_id;左连接会返回左表中的所有记录以及与右表匹配的记录,如果右表中没有匹配的记录,则对应的列值为 NULL。
执行列、行计数(count): 标准格式 SELECT COUNT(计数规范>) FROM 其中,计数规范包括: - * :计数所有选择的行,包括NULL值; - ALL 列名:计数指定列的所有非空值行...,如果不写,默认为ALL; - DISTINCT 列名:计数指定列的唯一非空值行。...返回列合计值(SUM): 注:sum只要ALL与DISTINCT两种计数规范,无*。 计算学生年龄之和: SELECT SUM(student_age) FROM t_student; ?...子查询可以嵌套在主查询中所有位置,包括SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY。...组合查询: 通过UNION运算符来将两张表纵向联接,基本方式为: SELECT 列1 , 列2 FROM 表1 UNION SELECT 列3 , 列4 FROM 表2; UNION ALL为保留重复行
单行数据全列插入: insert into students values (10, 124, '关于', '123456'); 将values左侧的属性列全部省略,那么所有属性对应的值都必须插入。...多行数据指定列插入: 多行数据全列插入: 3.插入是否更新 由于 主键 或者 唯一键 对应的值已经存在而导致插入失败。...select * from exam_result; 2.指定列查询 指定列查询仍是将表中所有的列拿出来的,只不过我们所筛选的属性并不是全部的数据。...% 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字符 通过select + 表达式的方式可以一一验证。...查询SQL中各语句的执行顺序为:where、group by、select、order by、limit。 group by后面的列名,表示按照指定列进行分组查询。
(三)查询所有字段 如果需要查询表中的所有字段,可以使用 * 来表示所有字段。...它们通常与 GROUP BY 子句一起使用,常用于统计数据和汇总结果。常见的聚合函数有以下几种: (一)COUNT 功能: 计算满足条件的行数。...这里 offset 为 0 表示从第一条记录开始。...只有当员工和部门表的 department_id 匹配时,才会返回结果 (二)左连接 左连接返回左表的所有记录,即使右表没有匹配的记录。对于没有匹配的右表记录,结果中对应的列会显示为 NULL。...包括那些没有匹配的员工或部门,未匹配的部分将显示为 NULL。 (五)交叉连接 交叉连接会返回两个表的笛卡尔积,即两个表中的每一条记录都会和另一个表的所有记录进行组合。
df.info():提供数据摘要,包括索引数据类型,列数据类型,非空值和内存使用情况。 df.describe():提供描述性统计数据。....unique():返回'Depth'列中的唯一值 df.columns:返回所有列的名称 选择数据 列选择:如果只想选择一列,可以使用df['Group']....df.loc[0:4,['Contour']]:选择“Contour”列的0到4行。 df.iloc[:,2]:选择第二列的所有数据。 df.iloc[3,:]:选择第三行的所有数据。...) #This drops the row at index 2 值得注意的是,axis = 0表示删除行。...按列连接数据 pd.concat([df, df2], axis=1) 按行连接数据 pd.concat([df, df2], axis=0) 当您的数据帧之间有公共列时,合并适用于组合数据帧。
where name like 'zh%' % 百分号是通配符,这里表示 zh 开头的都查询出来。...多条件查询 --- 使用 AND 、OR关键字的查询 select * from tb_table1 where deptId=0 and salary is null; 多字段排序 -- Order...计数,求和,平均,取最大最小值 -- 使用聚合函数 select count(deptId),class from tb_table1 group by class; select sum(deptId...索引的分类: 普通索引和唯一索引 普通索引:是MySQL的基本索引类型,允许重复和空值。 唯一索引:值必须是唯一的,可以空值但不能重复。即使是组合索引也必须唯一。...主键索引:是一种特殊的唯一索引,不能有空值。 单列索引和组合索引 单列索引:一个索引仅包含一个列 的索引。 组合索引: 由多个字段组合创建的索引。注意在查询条件中使用了左边的字段时,索引才被使用。
实例练习 跳过0条数据,查询两条 db.c1.find().sort({age:-1}).skip(0).limit(2) db.c1.find().sort({age:-1}).limit(2) ?...([ { group:{ _id:" 求学生总数和平均年龄123456789db.c1.aggregate([{ group:{ _id:null,...[,额外选项]) 带创建索引的列:{键:1,键:-1} 1表示升序,-1表示降序 额外选项 设置索引的名称或者唯一索引等等 删除索引 全部删除 db.集合名.dropIndexes() 删除指定 db....创建唯一索引 db.c1.createIndex(待添加索引的列,{unique:列名}) 分析索引(explain) db.集合名.find().explain('executionStats')...选择规则 为常做条件、排序、分组的字段建立索引 选择唯一性索引 同值较少如性别字段 选择较小的数据列,为较长的字符串使用前缀索引 索引文件更小 MongoDB权限机制 db.createUser({
它用在一个索引的所有部分被联接使用并且索引是UNIQUE或PRIMARY KEY"。eq_ref可以用于使用=比较带索引的列。 ?...· Using index for group-by:类似于访问表的Using index方式,Using index for group-by表示MySQL发现了一个索引,可以用来查 询GROUP BY...或DISTINCT查询的所有列,而不要额外搜索硬盘访问实际的表。...使用OR关键字的查询 查询语句的查询条件中只有OR关键字,且OR前后的两个条件中的列都是索引时,索引才会生效,否则,索引不生效。 ? ? ?...禁用唯一性检查的语句:SET UNIQUE_CHECKS = 0; 开启唯一性检查的语句:SET UNIQUE_CHECKS = 1; 批量插入数据 插入数据时,可以使用一条INSERT语句插入一条数据
(2)设置输出列的宽度: sqlite>.width 10, 20, 10, 0 第一列宽度为10,第二列为20,第三列为10,第四列为默认(0表示默认) (3)Schema信息: 系统里面有个表叫...|| 连接两个不同的字符串,得到一个新的字符串。 UNIQUE UNIQUE 运算符搜索指定表中的每一行,确保唯一性(无重复)。...函数的组合。...2 的所有记录: select * from company group by name having count(NAME) < 2; -- 显示名称计数等于 2 的所有记录: select * from...SQLite distinct关键字:与 SELECT 语句一起使用,来消除所有重复的记录,并只获取唯一一次记录。
为查询字段(或表达式)的列表,可以有多个列,列之间需要用逗号 “,” 分隔;③ 当要检索数据表中的所有列的时候,使用星号 “*” 表示全部字段;④ 关键字 FROM 后跟着要从中检索数据的表名;⑤ 分号...2.1.2、关键字 DISTINCT 关键词 DISTINCT 用于返回唯一不同的值。SELECT DISTINCT 表示查询结果中,去掉了重复的行。...也就是两个表中的所有的行的所有可能的组合。这相当于内连接没有连接条件或者连接条件永远为真。 如果一个有 m 行的表和另一个有 n 行的表,它们交叉连接将返回 m * n 行数据。...也就是两个表中的所有的行的所有可能的组合。 2.2.3、内连接(INNER JOIN JOIN) 内连接基于连接条件组合两个表中的数据。内连接相当于加了过滤条件的交叉连接。...0;④ 如果两个操作数有一个为 NULL,另一个为 0 (FALSE) 或者 NULL,则 OR 运算的结果为 NULL;⑤ 两个操作数的前后顺序不影响 OR 操作符的运算结果;⑥ AND 运算符的优先级高于
答:他们均是一个软件,都有两个主要的功能, ·1.强数据保存到文件或内存 ·2.接收特定的命令,然后对文件进行相对应的操作· 3丶什么是SQL? ...表示空,非字符串 not null - 不可空 null - 可空 默认值...,不允许有空值,如果主键使用单个列,则它的值必须唯一,如果是多列,则其组合必须唯一· create table tbl( nid int not null...因此,用户在设计数据库时应当综合考虑各方面的因素,以求达到最佳的平衡 text text数据类型用于保存变长的大字符串,可以组多到65535 (2**16 −...- 根据 “列1” 从大到小排列,如果相同则按列2从小到大排序 e、分组 select num from 表 group by num select num,nid from 表 group
但是,并非所有 DBMS 都支持这两种不等于操作符。如果有疑问,请参阅相应的 DBMS 文档。 SELECT语句有一个特殊的 WHERE 子句,可用来检查具有 NULL 值的列。...NULL 关键字 NULL 无值(no value),它与字段包含0、空字符串或仅仅包含空格不同。...换句话说,在建立分组时,指定的所有列都一起计算(所以不能从个别的列取回数据)。 ❑ GROUP BY子句中列出的每一列都必须是检索列或有效的表达式(但不能是聚集函数)。...❑ GROUP BY子句必须出现在WHERE子句之后,ORDER BY子句之前。 WITH ROLLUP:在 GROUP 分组字段的基础上再进行统计数据。...事实上,目前为止所学过的所有类型的 WHERE子句都可以用 HAVING 来替代。唯一的差别是,WHERE 过滤行,而 HAVING 过滤分组。
聚合函数 常见的聚合函数有: COUNT:计数。 SUM:求和。 AVG:求平均值。 MAX:求最大值。 MIN:求最小值。...没必要特殊找一个具体列指代呀,所以也可以写成: SELECT COUNT(*) FROM test 但这两者存在微妙差异。...SQL 存在一种很特殊的值类型 NULL,如果 COUNT 指定了具体列,则统计时会跳过此列值为 NULL 的行,而 COUNT(*) 由于未指定具体列,所以就算包含了 NULL,甚至某一行所有列都为...SELECT SUM(cost) FROM test SUM 遇到 NULL 值时当 0 处理,因为这等价于忽略。 AVG AVG 求所有项均值,因此必须作用于数值字段,而不能用于字符串。...多字段组合起来成为唯一 Key,即 GROUP BY a,b 表示 a,b 合在一起描述一个组。
领取专属 10元无门槛券
手把手带您无忧上云