首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SQL 基础(四)单关系数据查询

where score IS NULL -- 比较运算符 IS NULL 统计汇总查询 常用库函数(聚合函数): 函数名称 功能 AVG 列求平均值 SUM 列求和 MAX 求列最大 MIN 求列最小...COUNT 列求个数 count(*) 对表中数目进行计数,无论是否为空 count(colum) 对特定列中具有的计数,忽略 NULL 查询学号为 XXX 的学生总成绩和平均成绩 select...查询后的表没有表头(无列名) 查询软件学院学生总数 select COUNT(*) from tb_student where dept='软件学院' *注:COUNT(*) 统计元组个数,不消除重复,...ASC [DESC 降序 / ASC 升序] 降序 descending order 升序 ascending order NULL 在排序时认为是最小 查询成绩表中,选修 c10 课程的学生学号,...sno,score from tb_score where (cno='c10') order by score DESC 成绩表中,查询选修 c10,c03,c09 或 c20 课程的学号和成绩,结果学号升序排列

1.2K30
您找到你想要的搜索结果了吗?
是的
没有找到

SQL命令 ORDER BY(一)

ASC DESC - 可选-升序(ASC)或降序(DESC)排序。 默认为升序。 描述 ORDER BY子句根据指定列的数据或以逗号分隔的列序列对查询结果集中的记录进行排序。...ORDER BY逻辑(内部存储)数据对记录进行排序,而不考虑当前的选择模式设置。 ORDER BY子句是SELECT语句中的最后一个子句。...如果查询包含TOP子句,则按RowID排序更改TOP子句选择。...SELECT子句列表中第三个列表项(C)的数据升序排序; 在这个序列中,它降序对第7个列出的项(J)进行排序; 在其中,它升序对第一个列出的项(A)进行排序。...ORDER BY列表中的重复列不起作用。 这是因为第二种排序在第一种排序的顺序之内。 例如,ORDER BY Name ASC、Name DESC升序对Name列进行排序。

2.5K30

pandas技巧6

本篇博文主要是对之前的几篇关于pandas使用技巧的小结,内容包含: 创建S型或者DF型数据,以及如何查看数据 选择特定的数据 缺失处理 apply使用 合并和连接 分组groupby机制 重塑reshaping...选择数据 head(),默认是头5 tail() df.index/df.columns df.describe() 查看各种统计信息 df.T 转置 df.sort_index(axis=0,...ascending=False),索引降序排列 df.sort_values(by=“age”),某个属性的降序排列 查看数据 缺失处理 二者都是判断是不是缺失 ---- apply用法 # 求出每列的...right、left on 用于连接的列名,默认是相同的列名 left_on \right_on 左侧、右侧DF中用作连接键的列 sort 根据连接键对合并后的数据进行排序,默认是T suffixes 重复列名...If an array is passed, it is being used as the same manner as column values,聚合的分组,相当于“” columns: a

2.6K10

mysql数据库(7):表中检索信息

如果你使用两个操作符,使用圆括号指明如何对条件进行分组是一个好主意: mysql> select * from pet where( owner='思思' and species='dog') ->...为了使输出减到最少,增加关键字DISTINCT检索出每个唯一的输出记录:select distinct owner from pet;  可以使用一个WHERE子句结合选择与列选择。...这里是动物生日,日期排序:select  name, birth from pet order by birth;  默认排序是升序,最小的在第一。...要想以降序排序,在你正在排序的列名上增加DESC(降序 )关键字:SELECT name, birth FROM pet ORDER BY birth DESC; 升序对动物的种类进行排序,然后降序根据生日对各动物种类进行排序...)) -> - (RIGHT(CURDATE(),5) -> AS age from pet;  了age而非name排序输出,只要再使用一个ORDER BY子句: mysql> SELECT name

4.4K20

缓存的不当使用

一、背景 最近一朋友做社区重构,社区主要功能有发帖、回帖、查看帖子详情,详情页不同条件展示回帖(除了预先定义的顺序外,可能每个用户看到的顺序都不一样,组合超过100个),大概的效果如下:...重构后的方案如下 1、存储还是Mysql; 2、为了提高访问速度,引入MongoDB作为缓存(为什么不用Redis,因为MongoDB多线程,可扩充性好,并且支持较复杂的查询) Mysql数据表大概如下...为什么不分页将每个帖子页缓存回复呢,因为前面说了整个详情页展示条件非常复杂,可以倒序排,也可升序排,还可以只看作者,有的回复还有权限,如果全部缓存帖子回复列表,则缓存的数据量非常的大。...id,读取不到再从Mysql回源,并写回到MongoDB中;根据上面获取的回复id再从MongoDB中获取回复的详情,同样如果获取不到则从Mysql回源,并且写入到MongoDB中。...当然这里还有很多细节需要注意,像如何避免同一时间大量的回源Mysql的问题,这些业内已经有标准的方案,就不在此展开讨论了。 三、案例总结 1、系统设计越简单越好; 2、不要强依赖缓存;

67310

【数据库设计和SQL基础语法】--查询数据--排序

FROM employees ORDER BY salary DESC; 这些例子演示了如何对查询结果按照单个列进行排序,可以根据实际需求选择升序或降序排序。....; 这将按照列顺序对结果进行升序排序。首先按照 column1 列排序,然后在相同 column1 的情况下按照 column2 列排序。...以下是一些常见数据库系统的示例: MySQL 和 PostgreSQL: SELECT column1, column2, ......以下是一些常见数据库系统的示例: MySQL 和 PostgreSQL: -- 从第 10 开始,返回 5 行数据 SELECT column1, column2, ......单列排序通过使用ORDER BY子句单个列升序或降序排序。多列排序可按多个列排序,提供更灵活的排序方式。处理NULL排序时,可使用NULLS FIRST或NULLS LAST指定NULL的位置。

19710

基于Excel2013的PowerQuery入门

选择删除最前面几行。 ? 删除前三1.png ? 删除前三2.png ? 打开左边查询栏1.png 点击上图所示的按钮,出现下图所示界面。 ? 打开左边查询栏2.png ?...添加重复列.png ? 字符数拆分列1.png ? 字符数拆分列2.png ? 列重命名.png ? 成功列重命名.png ? 提取1.png ?...加载数据到PowerQuery中.png 客户首次购买分析 选定下单日期这一列,进行升序排序。 ? 下单日期升序排序.png 选定客户名称这一列,进行删除重复项 ?...成功逆透视结果.png 选择关闭并上载至,在窗口中设置如下图所示。 ? 上载1.png ? 上载2.png 出现上图所示2月,3月的错误,要设置___单元格格式。 ?...透视1.png 列为是否完成销售额,点开高级选项,聚合函数选择不要聚合,最后点击确定。 ? 透视2.png ? 成功透视结果.png ? 加载至原有表.png ?

9.9K50

MySQL数据库进阶-SQL优化

如何执行 SELECT 语句的信息,包括在 SELECT 语句执行过程中表如何连接和连接的顺序。...MERGE_THRESHOLD:合并页的阈值,可以自己设置,在创建表或创建索引时指定 主键设计原则: 满足业务需求的情况下,尽量降低主键的长度 插入数据时,尽量选择顺序插入,选择使用 AUTO_INCREMENT...,把每行的主键id都取出来,返回给服务层,服务层拿到主键后,直接行进行累加(主键不可能为空) count(字段):没有not null约束的话,InnoDB引擎会遍历整张表把每一的字段都取出来...,返回给服务层,服务层判断是否为null,不为null,计数累加;有not null约束的话,InnoDB引擎会遍历整张表把每一的字段都取出来,返回给服务层,直接行进行累加 count(1)...服务层对于返回的每一层,放一个数字 1 进去,直接行进行累加 count(*):InnoDB 引擎并不会把全部字段取出来,而是专门做了优化,不取值,服务层直接行进行累加 效率排序:count

13310

MySQL ORDER BY(排序) 语句

如果需要对读取的数据进行排序,我们就可以使用 MySQL 的 ORDER BY 子句来设定你想哪个字段哪种方式来进行排序,再返回搜索结果。...MySQL ORDER BY(排序) 语句可以按照一个或多个列的进行升序(ASC)或降序(DESC)排序。 语法 老规矩,先介绍一下语法。...你可以使用 ASC 或 DESC 关键字来设置查询结果是升序或降序排列。 默认情况下,它是升序排列。 你可以添加 WHERE…LIKE 子句来设置条件。...参数介绍完成,接下来通过一些实例来详细介绍下该如何使用。...在实际应用中,注意选择适当的列和排序顺序,以获得符合期望的排序效果。 以上内容即为 MySQL 数据库使用 ORDER BY 进行排序的简单讲解,下期再见。

7910

Mysql8中降序索引的底层实现

我们只关心Key_name为idx_t1_bcd的三记录,细心的你应该可以发现,这两个结果中的Collation字段的结果是不一样的: 在Mysql7中,Collation字段的结果为A,A,A,表示...三个字段的排序方式是desc,这就可以看出来在Mysql7中降序索引只是语法层面的支持,底层并没有真正支持,并且固定是升序索引。...而在Mysql8中则真正从底层支持了降序索引。 到此为止,大家应该对升序索引和降序索引有了一个大概的了解,但并没有真正理解,因为大家并不知道升序索引与降序索引底层到底是如何实现的。...,比如1111a中的b,c,d三个字段的是111,而2222b中的b,c,d三个字段的是222, 111是小于222的,所以对应的排在前面。...desc来排序,得到结果如下: 7455g 4311d 3322c 可能一部分大佬已经能理解,实际上b desc所表达的意思就是b字段数据大者在上,数据小者在下,数据相等的话则开始比较c字段,而c字段是升序排的

1.3K30

SQL优化

主键设计原则 满足业务需求的情况下,尽量降低主键的长度 插入数据时,尽量选择顺序插入,选择使用AUTO——INCREMENT自增主键 尽量不要使用UUID做主键或者是其他自然主键,如身份证号。...(一)count的几种用法 count()是一个聚合函数,对于返回的结果集,一地判断,如果count函数的参数不是NULL,累计就加1,否则不加,最后返回累计。...count(字段) 没有not null约束:InnoDB引擎会遍历整张表把每一的字酴都取出来,返回给服务层,服务层判断是否为nul,不为nul,计数累加。...有not null约束:InnoDB引擎会遍历整张表把每一的字段都取出来,返回给服务层,直接行进行累加。 count(1) InnoDB引擎遍历整张表,但不取值。...服务层对于返回的每一,放一个数字“1”进去,直接行进行累加。 count() InoDB引擎并不会把全部字段取出来,而是专门做了优化,不取值,服务层直接行进行累加。

14150

⑩③【MySQL】详解SQL优化

②插入数据时,尽量选择顺序插入,选择使用AUTO_INCREMENT自增主键。 ③尽量不要使用UUID做为主键或者作为其他自然主键,如身份证号。 ④在业务操作时,尽量避免对主键的修改。...-- 如何建立合适索引:建议使用联合索引,可参考上文的order by优化 5. limit 分页优化 一个常见又非常头疼的问题就是大数据量的分页,如:limit2000000,10,此时需要MySQL...②count(主键) InnoDB引擎会遍历整张表,把每一的主键id都取出来,返回给服务层。服务层拿到主键后,直接行进行累加(主键不可能为NULL)。...**有not null约束:**InnoDB引擎会遍历整张表把每一的字段都取出来,返回给服务层,直接行进行累加。 ④count(1) lnnoDB引擎遍历整张表,但不取值。...服务层对于返回的每一,放一个数字“1”进去,直接行进行累加。

20640

Mysql数据库学习(三):表的crud操作、完整性约束、select各种查询

ON DUPLICATE KEY UPDATE 如果插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复,则执行旧UPDATE MySQL MyIsAm 存储引擎在创建索引的时候,...并以第一列的结果进行升序排序。...内连接(等值连接):在连接条件中使用等于号(=)运算符比较被连接列的列,其查询结果中列出被连接表中的所有列,包括其中的重复列。...mysql 不支持 full outer join。 自然连接:在连接条件中使用等于(=)运算符比较被连接列的列,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。...<any,小于子查询中的某个。等价于<max >any,大于子查询中的某个。等价于>min >all,大于子查询中的所有。等价于>max <all,小于子查询中的所有

3.7K00
领券