选取、投影 操作 SQL 指令功能强大,无需规定投影、选取、连接执行顺序 无条件查询 仅包含 SELECT……FROM 查询,等价于对关系做 投影 操作 1.查询指定信息 USE db_student...3.查询表单身份信息 不使用 WHERE 子句的无条件查询称投影查询,SQL中只有使用 DISTINCT 关键字才会消去重复列,关系代数投影运算自动消去 SELECT distinct polity...如果不加 distinct ,查询结果将会显示所有符合结果(含重复列),不易阅读 4.查询所有学生的学号/姓名/身份 SELECT sno , sn , polity -- 逗号分隔不同属性值 FROM...select sno,xf from tb_score where score>=70 AND score<=90 --SQL Server 中等价于 where score BETWEEN 70...求列最大值 MIN 求列最小值 COUNT 按列求个数 count(*) 对表中数目进行计数,无论是否为空 count(colum) 对特定列中具有的值计数,忽略 NULL 查询学号为 XXX 的学生总成绩和平均成绩
SQL语言是每个开发人员必备的一种技能,本文对面试过程中常见的SQL面试题进行分类、汇总,每类题型包括一些例题,希望大家能够举一反三。 01 Case When 是什么?...有一个表table1(A,B,C),用SQL语句选出两个列,第一列是A、B两列的较大者,第二列是B、C两列的较小者。...有一张表table2(语文成绩、数学成绩、英语成绩),请用一条sql语句按以下显示条件得出结果: 显示条件:大于或等于80显示为优秀,大于或等于60表示及格,小于60分表示不及格。...有如下人口统计数据,要求按照国家和性别进行分组,得出结果如下: ? ?...与distinct结合,去重分组统计 # 统计每个类型的数量 select count(distinct case when type='1' then id else null end )type1
MySQL:SELECT * from tb_name WHERE birthday = ‘2011-04-08’ (2)SQL Server:SELECT * from tb_name WHERE ...SELECT * FROM tb_stu WHERE age>$_POST[age] ORDER BY age; 十五查询结果不显示重复记录 SELECT DISTINCT 字段名 FROM 表名... WHERE 查询条件 注:SQL语句中的DISTINCT必须与WHERE子句联合使用,否则输出的信息不会有变化 ,且字段不能用*代替 十六NOT与谓词进行组合条件的查询 (1)NOT BERWEEN...二十对统计结果进行排序 函数SUM([ALL]字段名) 或 SUM([DISTINCT]字段名),可实现对字段的求和,函数中为ALL时为所有该字段所有记录求和,若为DISTINCT则为该字段所有不重复记录的字段求和...语句中时,要将分组语句书写在排序语句的前面,否则会出现错误 二十二多列数据分组统计 多列数据分组统计与单列数据分组统计类似 SELECT *,SUM(字段1*字段2) AS (新字段1) FROM
最小值 案例:提下图数据演示 COUNT: 由此图可以看出count(*)函数是一个特殊情况,只是单纯的计数,count(math)计数会跳过空值....查询每个岗位的平均工资,但是刨除掉平均工资大于2000的数据....; select 字段 from 表1 别名1,表2 别名2 where 连接条件 and 其他条件; 笛卡尔积,就是得到了一个更大的表.例数,就是原来的两个表的列数之和.行数,就是原来两个表的行数之积...如果联合查询,左侧的表完全显示我们就说是左外连接;右侧的表完 全显示我们就说是右外连接。...子查询 子查询是指嵌入在其他sql语句中的select语句,也叫嵌套查询 多行子查询:返回多行记录的子查询 IN 关键字 2.2.5 合并查询 union 允许从不同的多个表分别查询,只要求每个表查询的结果集合列的类型和个数匹配即可
DISTINCT – 去除重复值 如果一张表中有多行重复数据,如何去重显示呢?可以了解下 DISTINCT 。...,结果集中只显示了一列 Wilson,显然已经去除了重复列。...注意: UNION 操作符默认为选取不同的值。如果查询结果需要显示重复的值,请使用 UNION ALL。...SQL 常用函数学习 SQL 拥有很多可用于计数和计算的内建函数。 函数的使用语法: SELECT function(列) FROM 表; ❤️ 下面就来看看有哪些常用的函数! ????...注意: 如果您在使用 Sql Server 数据库,请使用 getdate() 函数来获得当前的日期时间。
tb_stu ORDER BY id ASC LIMIT _POST[begin],n 注意:数据的id是从0开始的 测试工作常用SQL查询语句 十一、查询统计结果中的前n条记录 SELECT *...十四、查询大于指定条件的记录 SELECT * FROM tb_stu WHERE age>$_POST[age] ORDER BY age; 十五、查询结果不显示重复记录 SELECT DISTINCT...字段名 FROM 表名 WHERE 查询条件 注:SQL语句中的DISTINCT必须与WHERE子句联合使用,否则输出的信息不会有变化 ,且字段不能用*代替 十六、NOT与谓词进行组合条件的查询 (1...二十、对统计结果进行排序 函数SUM([ALL]字段名) 或 SUM([DISTINCT]字段名),可实现对字段的求和,函数中为ALL时为所有该字段所有记录求和,若为DISTINCT则为该字段所有不重复记录的字段求和...语句中时,要将分组语句书写在排序语句的前面,否则会出现错误 二十二、多列数据分组统计 多列数据分组统计与单列数据分组统计类似 SELECT *,SUM(字段1*字段2) AS (新字段1) FROM 表名
在编写SQL查询语句时,我们通常会按如下顺序书写: sql复制代码SELECT [DISTINCT] column1, column2, ......DISTINCT 子句 如果使用了DISTINCT关键字,MySQL会在SELECT结果集中去除重复行,确保返回的结果是唯一的。...sql 复制代码 SELECT DISTINCT table1.category 8. ORDER BY 子句 ORDER BY子句会对SELECT返回的结果进行排序。...这一步是按指定的列对数据进行升序或降序排序。 sql 复制代码 ORDER BY table1.category DESC 9. LIMIT 子句 最后,LIMIT子句限制返回的行数。...HAVING COUNT(id) > 1 - 过滤分组后计数大于1的组。 SELECT DISTINCT category, COUNT(id) - 选择category列和每组的计数,去重。
,将第一条sql的结果使用in操作拼接到第二条的sql SELECT DISTINCT g.*, cp.name AS cp_name,c.name AS category_name,t.name AS...ORDERY BY DISTINCT(price) 4)SELECT语句中指定了SQL_SMALL_RESULT关键字 SQL_SMALL_RESULT的意思就是告诉MySQL,结果会很小,请直接使用内存临时表...直接使用磁盘临时表的场景 1)表包含TEXT或者BLOB列; 2)GROUP BY 或者 DISTINCT 子句中包含长度大于512字节的列; 3)使用UNION或者UNION ALL时,SELECT子句中包含大于...512字节的列; 临时表相关配置 tmp_table_size:指定系统创建的内存临时表最大大小; http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html...常见的避免临时表的方法有: 1)创建索引:在ORDER BY或者GROUP BY的列上创建索引; 2)分拆很长的列:一般情况下,TEXT、BLOB,大于512字节的字符串,基本上都是为了显示信息,而不会用于查询条件
最常见的数据库类型是关系型数据库管理系统(RDBMS): RDBMS 是 SQL 的基础,同样也是所有现代数据库系统的基础,比如 MS SQL Server, IBM DB2, Oracle, MySQL...,结果集中只显示了一列 Wilson,显然已经去除了重复列。...如果查询结果需要显示重复的值,请使用 UNION ALL。...VIEW – 视图 在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。 视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。...,不宜一次性介绍太多~ SQL 常用函数学习 SQL 拥有很多可用于计数和计算的内建函数。
,将第一条sql的结果使用in操作拼接到第二条的sql SELECT DISTINCT g.*, cp.name AS cp_name,c.name AS category_name,t.name AS...BY DISTINCT(price) SELECT语句中指定了SQL_SMALL_RESULT关键字 SQL_SMALL_RESULT的意思就是告诉MySQL,结果会很小,请直接使用内存临时表,不需要使用索引排序...直接使用磁盘临时表的场景 表包含TEXT或者BLOB列; GROUP BY 或者 DISTINCT 子句中包含长度大于512字节的列; 使用UNION或者UNION ALL时,SELECT子句中包含大于...常见的避免临时表的方法有: 创建索引:在ORDER BY或者GROUP BY的列上创建索引; 分拆很长的列:一般情况下,TEXT、BLOB,大于512字节的字符串,基本上都是为了显示信息,而不会用于查询条件...常见的优化SQL语句方法如下: 1)拆分SQL语句 临时表主要是用于排序和分组,很多业务都是要求排序后再取出详细的分页数据,这种情况下可以将排序和取出详细数据拆分成不同的SQL,以降低排序或分组时临时表的大小
我们用 explain 分析包含 group by 的 select 语句时,从输出结果的 Extra 列经常可以看到 Using temporary; Using filesort。...松散索引扫描 如果 select 语句执行过程中使用了松散索引扫描实现 group by,explain 输出结果的 Extra 列会显示 Using index for group-by。...聚合函数要么是 min()、max() 中的 1 ~ 2 个;要么是 count(distinct)、sum(distinct)、avg(distinct) 中的 1 ~ 3个。...如果用了这个大招,在 explain 输出结果的 Extra 列可以看到 Using index for group-by (scanning)。...该类的实例属性 sum、count、args 分别用于保存分组求和结果、分组计数、avg() 函数的参数。
sql对大小写不敏感 SQL SELECT语句 SELECT语句用于从一个表中选取数据,结果被存储在一个结果表中 语法: select 列名称 from 表名称 从表名称对应的数据库表中取出列名称所对应的列的内容...SQL SELECT DISTINCT语句 关键词DISTINCT用于返回唯一不同的值 语法:SELECT DISTINCT 列名称 FORM 表名称 SQL WHERE子句 where子句同于规定选择的标准...= 不等于(用于某些版本的SQL中) > 大于 < 小于 >= 大于等于 <= 小于等于 BETWEEN 在某个范围内 LIKE 搜索某种模式 一般的条件值周围都是用的是单引号,SQL使用单引号来环绕文本值...() 返回两个日期之间的时间 CONVERT() 用不同的格式显示日期或时间 SQL NULL值 NULL值是遗漏的未知数据,默认的,表的列可以存放NULL值。...使用IS NULL来查找NULL值,使用IS NOT NULL读取不带有NULL值的操作符。 SQL函数 SQL拥有很多可用于计数和计算的内建函数。
目录 前言 简单查询 1.查询数据表中的全部信息 2.查询数据表中的部分属性 3.用中文显示需要查询的属性....>80--只有满足条件的数据才会被显示出来 (2)查询选修了课程号为”002”,且成绩大于80的学生的学号. select Sno as 学号 from sc where Cno='002'and Grade...格式: 1.作用于单列 select distinct name from A 2.作用于多列 select distinct name, id from A 检索出学生已选课程的课程号,要求显示的课程不重复...COUNT()函数允许您对表中符合特定条件的所有行进行计数。 COUNT()函数返回由SELECT语句返回的结果集中的行数。COUNT()函数计算中包含NULL和非NULL值的行,也就是用计算所有行...Cno as 课程号,count(*) as 学生人数 from SC group by Cno--按课程号分类 运行结果: 好了,今天的SQL Server知识就分享到这里了.下一篇会将稍微复杂一些的查询
综合条件筛选 6.SQL常量 7.distinct (把结果中重复的行删除) 8.函数 (1) 聚合函数: `sum()` ——求和函数 `count()`——计数函数 `avg()`——平均值函数...`min()| max()`——最小最大值函数 `group by `——分组函数 (2) 显示方式控制函数: `round`——控制保留位小数的结果 `concat`——把分开的两列合成在一个结果中...= 1) and (not (h.Hero like 'A%'))生命值大于500且攻击速度不是1且名称不以A开头 6.SQL常量 select语句不需要from就可以独立成句显示常量,而且也能进行四则运算...by 有超过百万订单月 代码结果: 有超过百万订单月 1 2 3 4 5 6 11 12 注意:如果放在多个列之前,则会只删除所有列内容都同时重复的行,比如以下代码: select distinct...h1.Hero='Nesus'); 代码结果: (2).from子查询 (与where子查询类似,这次是在from中嵌套一个sql语句) 举个栗子:在英雄数据库中找到比Nesus快的英雄中魔法值大于
表A: 表B: 1.作用于单列 select distinct name from A 执行后结果如下: 2.作用于多列 示例2.1 select distinct name, id from...A 执行后结果如下: 实际上是根据name和id两个字段来去重的,这种方式Access和SQL Server同时支持。...示例2.2 select distinct xing, ming from B 返回如下结果: 返回的结果为两行,这说明distinct并非是对xing和ming两列“字符串拼接”后再去重的,而是分别作用于了...5.其他 distinct语句中select显示的字段只能是distinct指定的字段,其他字段是不可能出现的。...但可以通过其他方法实现关于SQL Server将一列的多行内容拼接成一行的问题讨论
1.作用于单列 select distinct name from A 执行后结果如下: ?...实际上是根据name和id两个字段来去重的,这种方式Access和SQL Server同时支持。...返回的结果为两行,这说明distinct并非是对xing和ming两列“字符串拼接”后再去重的,而是分别作用于了xing和ming列。...5.其他 distinct语句中select显示的字段只能是distinct指定的字段,其他字段是不可能出现的。...但可以通过其他方法实现关于SQL Server将一列的多行内容拼接成一行的问题讨论
LEN() 函数5、SQL ROUND() 函数6、 SQL NOW() 函数7、SQL FORMAT() 函数前言:SQL 拥有很多可用于计数和计算的内建函数。...:SELECT COUNT(*) FROM table_name;COUNT(DISTINCT column_name) 函数返回指定列的不同值的数目:SELECT COUNT(DISTINCT column_name...查找总访问量(count 字段)大于 200 的网站是否存在。...UNION 操作符SQL UNION 操作符合并两个或多个 SELECT 语句的结果。...() 函数用于对字段的显示进行格式化。
该业务分析要求查询结果中包括:日期(说明是按购买日期来汇总数据)、当日首次购买用户数、此月复购用户数,第N月复购用户数。 1.当日首次购买用户数 先来看当日首次购买用户数这一列如何分析出?...此月复购用户数:在本月内购买大于等于两次课程的用户。...(1)这涉及到计算两个日期之间的差值,《猴子从零学会sql》里讲到对应单函数是timestampdiff。下图是这个函数的用法。 select a....,并计数就是此月复购用户数 count(distinct case when 时间间隔<=1 then 用户id else null...2.灵活使用case来统计when 函数与group by 进行自定义列联表统计。 3.遇到只有一个表,但是需要计数时间间隔的问题,就要想到用自联结来求时间间隔。
最常见的数据库类型是关系型数据库管理系统(RDBMS): RDBMS 是 SQL 的基础,同样也是所有现代数据库系统的基础,比如 MS SQL Server, IBM DB2, Oracle, MySQL...语法: INSERT INTO 表名称 VALUES (值1, 值2,....); 我们也可以指定所要插入数据的列: INSERT INTO table_name (列1, 列2,...)...FROM Persons; DISTINCT – 去除重复值 如果一张表中有多行重复数据,如何去重显示呢?...,结果集中只显示了一列 Wilson,显然已经去除了重复列。...语法: SELECT 列名称 FROM 表名称 WHERE 列 运算符 值; 下面的运算符可在 WHERE 子句中使用: 操作符 描述 = 等于 不等于 > 大于 < 小于 >= 大于等于 <=
领取专属 10元无门槛券
手把手带您无忧上云