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

《SQL必知必会》万字精华-第1到13章

SELECT DISTINCT vend_id FROM products; SQL中的DISTINCT关键字表示的是去重,只返回不同的值。...注:NULL(无值,no value),它和字段包含0、空字符串或仅仅包含空格是不同的。...; 代码解释: 存在列vend_name列中的名字 包含一个空格和一个左圆括号的字符串 存在vend_country列中的国家 包含一个右圆括号的字符串 小知识:MySQL中如何去掉空格?...除了聚集函数外,SELECT语句中的每列都必须在GROUP BY子句中列出 如果分组中包含具有NULL的行,则NULL将作为一个分组返回;如果列中出现多个NULL,它们将分成一个组 GROUP BY子句必须在...记得提供联结条件,否则返回的是笛卡尔积 一个联结中可以包含多个表,甚至可以对不同的表使用不同的联结类型。

7.1K00

【数据库】03——初级开发需要掌握哪些SQL语句

但是在一些数据库中(如Mysql和SQL Server),在匹配字符串时并不区分大小写。 字符串可以应用许多函数运算,比如连接字符串(||),提取子串,去字符串后空格trim等等。...8.3 空关系测试 SQL中包含一个特性,测试一个子查询的结果是否存在元组,exist结构在作为参数的子查询非空时返回true值。...在包含了子查询的查询中,在相关名称上可以应用作用域规则,根据此规则,在一个子查询中只能使用此子查询本身定义的,或者包含此子查询的任何查询中定义的相关名称,如果一个相关名称既在子查询中局部定义,有在包含该子查询的查询中全局定义...从SQL:2003开始的SQL标准允许from子句中的子查询使用关键字lateral作为前缀,以便访问同一个from子句中在它前面的表或者子查询的属性。...但是当在表达式中使用标量子查询时,它出现的位置是期望单个值出现的地方,SQL就该从该关系中包含单个属性的单个元组中隐式的取出相应的值,并返回该值。

3.5K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Oracle高级查询-imooc

    注意:在select列表中所有未包含在组函数中的列都应该包含在GROUP BY子句中;包含在GROUP BY子句中的列不必包含在SELECT列表中。...emp;  错误:所有包含于select列表中,而未包含于组函数中的列都必须包含在GROUP BY子句中。...deptno=10 group by deptno; 如果过滤条件中没有分组函数时,where与having通用,那么从sql优化的角度来讲,where的效率更高,因为having是先分组再过滤,而where...3、外连接 通过外连接,把对于连接条件不成立的记录,仍然包含在最好的结果中,分为左外连接和右外连接。...需要进行两个表的连接查询,为两个表都取别名 使用instr(a,b)函数,该函数的含义为:如果字符串b在字符串a里面,则返回的是b在a中的位置,即返回值大于0 需要用到分组查询 使用wm_concat

    2K40

    两万字图文 SQL 零基础入门,不怕你学不会,就怕你不收藏!❤️

    MAX – 最大值 ???? MIN – 最小值 ???? SUM – 求和 ???? GROUP BY – 分组 ???? HAVING – 句尾连接 ????...JOIN – 多表关联 JOIN 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。 有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行 join。...注意: UNION 操作符默认为选取不同的值。如果查询结果需要显示重复的值,请使用 UNION ALL。...VIEW – 视图 在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。 视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。...MAX – 最大值 MAX 函数返回一列中的最大值。NULL 值不包括在计算中。

    8.4K11

    这是我见过最有用的Mysql面试题,面试了无数公司总结的(内附答案)

    24.什么是子查询? 子查询是另一个查询中的SQL查询。它是Select语句的子集, 其返回值用于过滤主查询的条件。 25.子查询的类型是什么?...子查询有两种类型: 1.关联的:在SQL数据库查询中,关联的子查询是使用外部查询中的值来完成的子查询。因为相关子查询要求首先执行外部查询,所以相关子查询必须为外部查询中的每一行运行一次。...用字段NULL值是没有值的字段。甲NULL值是从零值或包含空格的字段不同。 具有NULL值的字段是在记录创建过程中留为空白的字段。...Where子句用于从指定特定条件的数据库中获取数据,而Haveing子句 与“ GROUP BY”一起使用以获取符合Aggregate函数指定的特定条件的数据。...让我们看一下重要的SQL查询以进行面试 76.如何从表中获取唯一记录?

    27.1K20

    基础篇:数据库 SQL 入门教程

    SELECT – 查询数据 SELECT 语句用于从表中选取数据,结果被存储在一个结果表中(称为结果集)。...SQL 高级言语学习 LIKE – 查找类似值 LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。...JOIN – 多表关联 JOIN 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。 有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行 join。...VIEW – 视图 在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。 视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。...MAX 函数返回一列中的最大值。

    8.9K10

    Oracle-函数大全

    ,否则会返回的结果将包含一个分数。   ...函数返回包含了有关x的内部表示信息的VARCHAR2类型的值。如果指定了n1,n2那么从n1开始的长度为n2的字节将被返回。   ...6.第六讲 SQL中的组函数 SQL中的组函数   组函数也叫集合函数,返回基于多个行的单一结果,行的准确数量无法确定,除非查询被执行并且所有的结果都被包含在内。...这些函数可以在select或select的having子句中使用,当用于select子串时常常都和GROUP BY一起使用。   AVG([{DISYINCT|ALL}])   返回数值的平均值。...,我们必须把为分组或非常数列放置在GROUP BY子句中,如果没有用group by进行专门处理,那么缺省的分类是将整个结果设为一类。

    2.5K50

    想学数据分析但不会Python,过来看看SQL吧(下)~

    在使用GROUP BY时需要注意的几点: GROUP BY子句可以包含任意数量的列,因而可以对分组进行多重嵌套,如按照班级和性别进行分组的话,结果中班级A包含男生组和女生组,班级B也包含男生组和女生组;...子查询与临时表格 我们之前所涉及到的都是从数据库中检索数据的单条语句,但当我们想要检索的数据并不能直接从数据库表中获取,而是需要从筛选后的表格中再度去查询时,就要用到子查询和临时表格了。...⚠️UNION 内部的 SELECT 语句必须拥有相同数量的列,列也必须拥有相似的数据类型。而且UNION返回的结果只会选取列中不同的值(即唯一值)。...字符串函数 LEFT、RIGHT、LENGTH LEFT和RIGHT相当于是字符串截取,LEFT 是从左侧起点开始,从特定列中的每行获取一定数量的字符,而RIGHT是从右侧。...POSITION 和STRPOS 可以获取某一字符在字符串中的位置,这个位置是从左开始计数,最左侧第一个字符起始位置为1,但他俩的语法稍有不同。 SUBSTR可以筛选出指定位置后指定数量的字符。

    3.1K30

    SqlAlchemy 2.0 中文文档(二)

    也就是说,当我们从上述语句中获取行时,因为在要获取的内容列表中只有User实体,所以我们会收到仅包含一个元素的Row对象,其中包含User类的实例: >>> row = session.execute(...### 带有 GROUP BY / HAVING 的聚合函数 在 SQL 中,聚合函数允许跨多行的列表达式聚合在一起,以产生单个结果。示例包括计数、计算平均值,以及在一组值中定位最大值或最小值。...然后,该子查询在包含 SELECT 语句的 COLUMNS 或 WHERE 子句中使用,并且与常规子查询不同之处在于它不在 FROM 子句中使用。...### 带有 GROUP BY / HAVING 的聚合函数 在 SQL 中,聚合函数允许将多行的列表达式聚合在一起,以产生单个结果。示例包括计数、计算平均值,以及定位一组值中的最大或最小值。...带有 GROUP BY / HAVING 的聚合函数 在 SQL 中,聚合函数允许跨多行的列表达式聚合在一起以产生单个结果。例子包括计数、计算平均值,以及查找一组值中的最大值或最小值。

    45510

    Mysql学习笔记,持续记录

    解释 id id代表select查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序 ,有以下三种情况: id相同,执行顺序由上至下 id不同,如果是子查询,id的序号会递增,id值越大优先级越高...,越先被执行 id相同不同,同时存在,从大到小,从上到下执行; select_type 分别用来表示查询的类型,主要是用于区别普通查询、联合查询、子查询等的复杂查询。...:若UNION包含在FROM子句的子查询中,外层SELECT将被标记为:DERIVED UNION RESULT 从UNION表获取结果的SELECT table table指的就是当前执行的表 type...,小于10的日期需要加0; 在sql语句中进行时间比较的时候,时间值也需要和字符串一样使用单、双引号包括。...中包含(str)的结果,返回结果为null或记录 假如字符串str在由N个子链组成的字符串列表strlist 中,则返回值的范围在 1 到 N 之间。

    1.2K50

    MSSQL之四 简单查询

    在Microsoft SQL Server 2008系统中,需要使用数据类型的对象包括表中的列、视图中的列、定义的局部变量、存储过程中的参数、Transact-SQL函数及存储过程的返回值等。...并且出版社为:科学出版社的查询结果 Ø 查询所需要的列为表达式 SELECT子句中的选项列表可以是要指定的表达式或列的列表,表达式可以是列名函数或常数的列表 【例4-16】:最大值...SELECT字句中的选项列表中出现的列,包含在聚合函数中或者包含在GROUP BY字句中,否则,SQLServer将返回如下错误提示消息: “表名.列名在选择列表中无效,因为该列既不包含在聚合函数中...,也不包含在GROUP BY字句中”。...A、 AND B、= C、BETWEEN D、% 2、一个表在不同的记录中包含列的重复值。

    8910

    你好奇过 MySQL 内部临时表存了什么吗?

    子查询半连接物化(把子查询结果存到临时表,然后和主查询进行 join 连接)。 子查询物化(除半连接物化之外的场景,如不相关子查询,半连接重复值消除等)。...对于为整条 SQL 语句服务的临时表,SQL 语句执行过程中,存储引擎返回给 server 层的字段都需要写入到临时表中。...MySQL 使用临时表,可能是为了 group by 分组、聚合,也可能是为了对记录去重(distinct),还有可能只是为了避免重复执行子查询而存放子查询的执行结果。...的示例 SQL 3,和示例 SQL 1 不一样的地方是 count() 函数多了个 distinct,表示统计每个分组中,不同的 i1 字段值的数量(不包含 NULL)。...对于 group by,临时表中会写入存储引擎返回给 server 层的所有字段,写入临时表的字段内容,可能是字段值,也可能是聚合函数基于字段值计算的结果;对于 distinct,临时表中会写入聚合函数中的字段

    1.6K31

    【数据库设计和SQL基础语法】--查询数据--聚合函数

    注意事项 MIN 函数通常与 GROUP BY 子句结合使用,用于对不同组的数据计算最小值。 结果是一个数值,表示满足条件的列值的最小值。 MIN 函数是 SQL 中用于计算最小值的关键聚合函数。...注意事项 MAX 函数通常与 GROUP BY 子句结合使用,用于对不同组的数据计算最大值。 结果是一个数值,表示满足条件的列值的最大值。 MAX 函数是 SQL 中用于计算最大值的关键聚合函数。...聚合函数与 GROUP BY 结合使用是 SQL 中强大的数据分析工具,通过分组和计算,可以从大量数据中提取出有价值的统计信息,适用于各种数据分析和报告生成场景。...四、高级聚合函数 4.1 GROUP_CONCAT GROUP_CONCAT 是一种聚合函数,用于将每个分组中的字符串值合并为一个字符串,并可选地使用分隔符分隔各个值。...注意事项 ROLLUP 生成的结果包含原始列的层次性总计,从最详细的层次逐级递减。 ROLLUP 是 SQL 中用于实现层次性聚合的强大工具,通过一次查询生成多层次的分组总计。

    62610

    【数据库设计和SQL基础语法】--查询数据--聚合函数

    注意事项 MIN 函数通常与 GROUP BY 子句结合使用,用于对不同组的数据计算最小值。 结果是一个数值,表示满足条件的列值的最小值。 MIN 函数是 SQL 中用于计算最小值的关键聚合函数。...注意事项 MAX 函数通常与 GROUP BY 子句结合使用,用于对不同组的数据计算最大值。 结果是一个数值,表示满足条件的列值的最大值。 MAX 函数是 SQL 中用于计算最大值的关键聚合函数。...聚合函数与 GROUP BY 结合使用是 SQL 中强大的数据分析工具,通过分组和计算,可以从大量数据中提取出有价值的统计信息,适用于各种数据分析和报告生成场景。...四、高级聚合函数 4.1 GROUP_CONCAT GROUP_CONCAT 是一种聚合函数,用于将每个分组中的字符串值合并为一个字符串,并可选地使用分隔符分隔各个值。...注意事项 ROLLUP 生成的结果包含原始列的层次性总计,从最详细的层次逐级递减。 ROLLUP 是 SQL 中用于实现层次性聚合的强大工具,通过一次查询生成多层次的分组总计。

    61510

    (数据科学学习手册28)SQL server 2012中的查询语句汇总

    2.6 嵌套查询   在SQL语言中,将一个查询语句嵌套在另一个查询语句中的查询称作嵌套查询,又称子查询,SQL语言允许许多层嵌套查询,即一个子查询中还可以嵌套更多层子查询。...小于子查询结果中的所有值 >=ANY 大于等于子查询结果中的某个值 >=ALL 大于等于子查询结果中的所有值 子查询结果中的某个值 子查询结果中的所有值 =ANY...等于子查询结果中的某个值 =ALL 等于子查询结果中的所有值 !...= or ALL 不等于子查询结果中的所有值 因为下面的内容经常涉及到多个表,因此介绍一下接下来会使用到的两个数据表: table1:美团商户商品信息表,包含的字段如下(我们利用SQL语句来查看字段名称...以上就是关于SQL server 2012中查询语句的基本用法,与其他的DBMS大同小异,今后会继续介绍其它类型的DBMS的相关知识,如有笔误,望指出。

    6.2K120

    数据库相关

    【数据库系统概述】 常用的数据库有MySql、oracle等。不同数据库都支持sql标准,并且不同数据库在sql标准的基础上进行了一些扩充。...); 注意: 关于null的问题,如果在in操作符中包含null;不会影响最终的查询结果,如果在not in中包含null,直接的后果是没有任何数据显示 select * from emp where...null;但是count在没有数据的时候返回0,所以在java中是不需要对结果进行判断的 SUM()求和 AVG()平均值 MAX()最大值 MIN()最小值 median()中间值 STDDEV()...,那么针对这些统计结果求出一个最大值 范例: 查询每个部门的名称、部门人数、平均工资,平均服务年限 1、确定所需要的数据表 2、确定已知的字段关联 字句执行顺序 from where group by...、 多字段分组: 既然可以在group by子句中出现多个分组字段,那么在select子句中也可以出现多个字段 范例:要求查询出每个部门的详细信息 包含字段:部门编号、名称、位置、平均工资、总工资

    1.9K50

    MySQL(五)汇总和分组数据

    ,例子如下: select avg_(prod_price) as avg_price from products where vend_id = 1003; 这条SQL语句包含了where子语句,仅过滤出...) as max_price from products; 这条SQL语句中国返回products表中price列的最大值; PS:MySQL允许max()用来返回任意列中的最大值,包括返回文本列的最大值...语句中,使用avg()函数返回vend列中vend_id=1003的对应的price平均价格,因为使用了distinct参数,因此平均值只考虑不同的值(唯一值) 7、组合聚集函数 select语句可以包含多个聚集函数...语句,使用了单条select语句执行4个聚集计算,返回四个值(products表中items的数目、price的最高、最低以及平均值) PS:在指定别名以包含某个聚集函数的结果时,不应该使用表中实际的列名...by子句指示指示MySQL分组数据,然后都每个组而不是整个结果集进行聚集;关于group by使用,请注意以下规则: ①group by子句可以包含任意数目的列(使得对分组进行嵌套,为数据分组提供更细致的控制

    4.7K20

    2-SQL语言中的函数

    LOWER('Leslie'); # SUBSTR(str FROM pos FOR len),截取部分字符串(SQL语言中索引从1开始) SELECT SUBSTR('Hello World',7...分类: 按子查询出现的位置: SELECT 后面(仅支持标量子查询) FROM 后面(支持表子查询) WHERE或HAVING后面(标量子查询,列子查询,行子查询) EXISTS 后面(表子查询)按结果集的行列数不同...: 标量子查询(结果集只有一行一列) 列子查询(结果集只有一列多行) 行子查询(结果集有一行多列) 表子查询(结果集一般多行多列) # 子查询 /* 含义: 出现在其他语句中的select语句,称为子查询或内查询...,行子查询) EXISTS 后面(表子查询) 按结果集的行列数不同: 标量子查询(结果集只有一行一列) 列子查询(结果集只有一列多行) 行子查询(结果集有一行多列) 表子查询(结果集一般多行多列...(多行多列或0行0列都不可以) # 列子查询(多行子查询,因为子查询结果是一列多行) /* 多行操作符: IN/NOT IN 等于/不等于列表中的任意一个 ANY/SOME 和子查询中的某个值作比较

    2.8K10
    领券