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

Mysql 必知必会(一)

MySQL在执行匹配时默认不区分大小写,所 以fuses与Fuses匹配。...用正则表达式进行搜索 使用MySQL正则表达式 正则表达式的作 用是匹配文本,将一个模式(正则表达式)与一个文本串进行比较。...包含 文本1000的所有行 REGEXP后所跟的东西作 为正则表达式(与文字正文1000匹配的一个正则表达式)处理。...GROUP BY子句中列出的每个列都必须是检索列或有效的表达式 (但不能是聚集函数)。如果在SELECT中使用表达式,则必须在 GROUP BY子句中指定相同的表达式。不能使用别名。...但输出可能不是分组的顺序 任意列都可以使用(甚至 非选择的列也可以使用) 只可能使用选择列或表达式列,而且必须使用每个选择 列表达式 不一定需要 如果与聚集函数一起使用列(或表达式),则必须使用 SELECT

2.6K20

数据查询语言QL

[ORDER BY , ... ] 整个语句的执行过程如下: 读取FORM子句中的基本表、视图的数据,执行笛卡儿积操作; 选取满足WHERE子句中给出的条件表达式的元组...; 按GROUP子句中指定列的值分组,同时提取满足HAVING子句中组条件表达式的那些列; 按SELECT子句中给出的列名或列表达式求值输出; ORDER子句对输出的目标表进行排序,ASC表示升序排列,...其形式如下: SELECT [ ALL | DISTINCT ] 表达式序列> | * DISTINCT 选项保证重复的行将从结果中去除;ALL是默认值,表示重复的行留在结果中; 星号...字符串匹配操作: 字符串匹配操作符是“LIKE", 在表达式中可以使用两个通配符: 百分号:与零个或多个字符组成的字符串匹配; 下划线:与单个字符匹配。...LIKE 'ab\%cd%' ESCAPE'\' //匹配所有以ab%cd开头的字符串 SQL还允许在字符上使用多种函数,例如连接(”||“),提取子串,计算字符串长度,大小写转换等操作。

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

    Oracle 函数大全

    其中参数str1指定源字符表达式,pattem指定正则表达式,str2指定替换字符串,pos指定起始搜索位置,occ指定替换出现的第几个字符串,par指定默认匹配操作的文本串。...其中参数str1指定源字符表达式,pattem指定规则表达式, pos指定起始搜索位置,occ指定替换出现的第几个字符串,par指定默认匹配操作的文本串。...ADD_MONTHS(d,n):在某一个日期 d 上,加上指定的月数 n,返回计算后的新日期。 d 表示日期,n 表示要加的月数。...|ALL]col):获得选择列表或表达式的最大值,ALL表示对所有的值求最大值,DISTINCT表示对不同的值求最大值,相同的只取一次 select max(distinct score) from...compare(n)进行比较,如果匹配返回相应的value (n).如果没有发生匹配,则返回default,每个valuel数据类型必须一致,如果没有default则返回null。

    2.8K20

    SQL语句逻辑执行过程和相关语法详解

    但其实,在DISTINCT和ORDER BY之间的顺序没有严格的界限,甚至ORDER BY的顺序要优先于DISTINCT。后文会分析为什么。...它们都必须满足成为表的条件,这也是为什么定义表表达式的时候有些语法不能使用。 从关系模型上去分析。表对应的是关系模型中的关系,表中的列对应的是关系模型中的元素。...同理,表表达式中的别名也一样,必须唯一且必须要有。 另一方面,关系中的元素是无序的,因此表和表表达式中的数据也应当是无序的。...但是,DISTINCT和ORDER BY结合时,order by的排序列是有要求的:排序列必须是select_list中的列(distinct很多时候都可以看作group by)。...否则就违反了关系模型的范式。 2.为什么分组之后只能使用GROUP BY列表中的列,如果不在GROUP BY列表中,就必须进行聚合?

    3.7K20

    【Mysql】数据表的增删查改(基础)

    ,值n); 在插入数据时,插入的数据顺序必须与创建数据表时对应的字段位置顺序相同,不可搞乱顺序,规避数据顺序错误情况,总而言之要一一对应。...别名 为查询结果中的列指定别名,以别名作为该列的名称出现在临时表中 ​ SELECT 字段名 as 别名 FROM 数据表名; ​ 去重:distinct 使用DISTINCT关键字对某列数据进行去重...排序~~,其他列依旧会排序 4.order by 还可以针对表达式进行排序~~ 5.order by 还可以指定多个列进行排序,排序优先级随书写顺序。...先按照最左边顺序来,如果最左边相同,再按照右边顺序来。 如图就是先按照c进行升序,因为存在相同的行,相同行又按照b大小进行降序。...AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分 3.MySQL不存在==这种运算符 4.like运算符的模糊匹配只适用于字符串。

    7200

    《面试季》高频面试题-Group by的进阶用法

    (聚合函数) -> having -> select -> distinct -> order by -> limit 执行的顺序步骤解释   (1)、from: 表示数据的来源   (2)、on:...2、为什么group by和select同时使用时,select中的字段必须出现在group by后或者聚合函数中。   ...3、如何实现数据去重   答: 在SQL中可以通过关键字distinct去重,也可以通过group by分组实现去重,但实际上,如果数据量很大的话,使用distinct去重的效率会很慢,使用Group...GROUPING函数既可以与CUBE操作一起使用, 也可以与ROLLUP操作一起使用, 它能帮助你理解概要值是怎样产生的,就能区分哪些 NULL 是正常记录,哪些是 ROLLUP 的结果。。...使用:   GROUPING函数使用一个单独的列表示。在GROUPING函数中的expr必须匹配一个GROUP BY子句中的表达式, 该函数的返回值0或大于0。

    1.7K20

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

    它必须放在列的前面。 不能部分使用DISTINCT关键字。...如果将值和字符串类型的比较,需要使用限定符号 3、用来与数值列进行比较的值,则不用括号。...COUNT() 2、DISTINCT必须使用列名,不能用于计算或者表达式 3、DISTINCT用于MAX()和MIN()意义不大,因为最值不管是否考虑去重,都是一样的 组合聚集函数 在SELECT子句中是可以包含多个聚集函数...BY子句可以包含任意数目的列,可以对分组进行嵌套 GROUP BY子句中列出的每一列都是检索列或者有效的表达式(但是不能是聚集函数) 如果在SELECT中使用表达式,则必须在GROUP BY子句中使用相同的表达式...;实际上WHERE种并没有分组的概念。

    7.1K00

    进阶数据库系列(十二):PostgreSQL 索引技术详解

    表达式索引:从表的一列或多列计算而来的一个函数或者标量表达式。索引表达式的维护代价较为昂贵,因为在每一个行被插入或更新时都得为它重新计算相应的表达式。...然而,索引表达式在进行索引搜索时却不需要重新计算,因为它们的结果已经被存储在索引中了。 部分索引:一个部分索引是建立在表的一个子集上,而该子集则由一个条件表达式(被称为部分索引的谓词)定义。...column_name:一个表列的名称。 expression:一个基于一个或者更多个表列的表达式。如语法中所示,表达式通常必须被写在圆括号中。...与我们已经熟悉的索引不同,BRIN避免查找绝对不合适的行,而不是快速找到匹配的行。BRIN是一个不准确的索引:不包含表行的tid。...假设执行了一个查询,该查询包含某列的条件;如果所查找的值没有进入区间,则可以跳过整个range;但如果它们确实在,所有块中的所有行都必须被查看以从中选择匹配的行。

    2.8K40

    MySQL从删库到跑路(五)——SQL查询

    合并时,两个表对应的列数和数据类型必须相同。各个SELECT语句之间使用UNION或UNION ALL关键字分隔。...,并列出表中与连接条件相匹配的数据行,组合成新的记录。...全外连接实际是上左外连接和右外连接的数学合集(去掉重复),即“全外=左外 UNION 右外”。 左连接 包含左边表的全部行(不管右边的表中是否存在与它们匹配的行),以及右边表中全部匹配的行。...右连接: 右连接包含右边表的全部行(不管左边的表中是否存在与它们匹配的行),以及左边表中全部匹配的行。 右连接是左连接的反向连接。将返回右表的所有行。...正则表达式作用是匹配文本,将一个模式(正则表达式)与一个文本串进行比较。

    2.6K30

    MySQL 系列教程之(七)DQL:从 select 开始丨【绽放吧!数据库】

    这时,SQL语句变成了获取18期或19期的学员并且要求是女生 IN与NOT IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配。...select name from user where classid in (18,19) IN WHERE子句中用来指定要匹配值的清单的关键字,功能与OR相当 为什么要使用IN操作符?...对于简单的WHERE子句,使用NOT确实没有什么优势。 但在更复杂的子句中,NOT是非常有用的。 例如,在与IN操作符联合使用时,NOT使找出与条件列表不匹配的行非常简单。...用简单的比较操作符肯定不行,必须使用通配符。 为在搜索子句中使用通配符,必须使用LIKE操作符。 LIKE指示MySQL,后跟的搜索模式利用通配符匹配而不是直接相等匹配进行比较。...例如,可能想要列出至少有两个订单的所有顾客。为得出这种数据,必须基于完整的分组而不是个别的行进行过滤 事实上,目前为止所学过的所有类型的WHERE子句都可以用HAVING来替代。

    3.6K43

    T-SQL基础(三)之子查询与表表达式

    子查询 在嵌套查询中,最外面查询结果集返回给调用方,称为外部查询。嵌套在外部查询内的查询称为子查询,子查询的结果集供外部查询使用。 根据是否依赖外部查询,可将子查询分为自包含子查询和相关子查询。...:warning: 通常我们自己难以发现代码中的逻辑错误,而我们的最终用户尝尝扮演着问题发现者的角色 :joy: 编写语义清晰明了的SQL可以很大程度的避免逻辑上的错误 表表达式 表表达式,也可称为表子查询...,是一个命名的查询表达式,表示一个有效的关系表,因此表表达式必须满足以下三个条件: 无法表表达式结果集顺序 表表达式表示一个关系表,关系型数据库基于集合理论,表中的数据是无序的。...所有列必须显式指定名称 所有列名必须唯一 表表达式分为:派生表、公用表表达式、视图三种类型。其中,派生表与公用表表达式只适用于单语句范围,即,只存在于当前查询语句中。视图则可以被多条查询语句复用。...关于是否应该使用视图,仁者见仁,智者见智: 使用SQL Server视图的优缺点 为什么mysql中很少见到使用视图功能?

    1.6K40

    T-SQL基础(三)之子查询与表表达式

    编写语义清晰明了的SQL可以很大程度的避免逻辑上的错误 表表达式 表表达式,也可称为表子查询,是一个命名的查询表达式,表示一个有效的关系表,因此表表达式必须满足以下三个条件: 无法表表达式结果集顺序...标准SQL中不允许在表表达式中使用ORDER BY子句,除非ORDER BY子句用于展示之外的其他目的,否则会报错: 除非另外还指定了 TOP、OFFSET 或 FOR XML,否则,ORDER BY...⚠️在查询表表达式时,除非在外部查询中指定了ORDER BY子句,否则无法保证查询结果集中数据的顺序。...所有列必须显式指定名称 所有列名必须唯一 表表达式分为:派生表、公用表表达式、视图三种类型。其中,派生表与公用表表达式只适用于单语句范围,即,只存在于当前查询语句中。...小结 不要让数据库(查询)变得复杂; 表表达式有助于简化代码以提升可读性与可维护性;

    1.5K10

    MySQL必知必会汇总

    第9章:用正则表达式进行搜索 什么是正则表达式: 用来匹配文本的特殊字符集合 关键字:regexp(REGEXP) 基本字符匹配: 例1:检索列prod_name包含文本1000的所有行 mysql>...: 例:匹配包含 “ . ”字符的值 为匹配特殊字符,必须用\\作为前导;\\-表示查找-,\\.表示查找 ....:(详细解释待补充) 函数 说明 left() 返回串左边的字符 length() 返回串的长度 locate() 找出串的一个字串 lower() 将串转换成小写 LTrim() 去掉左边的空格 Right...:count(),但是不能用于count(*) distinct()必须用于列名,不能用于计算或者表达式; 组合聚集函数: mysql> select count(*) as num_items,min...:count(),但是不能用于count(*) distinct()必须用于列名,不能用于计算或者表达式; 组合聚集函数: mysql> select count(*) as num_items,min

    97420

    SQL刷题

    ,从字符串str的第a位开始提取,提取b个字符 -- LEFT(str, n):提取字符串最左边的n个字符 -- RIGHT(str, n):提取字符串最右边的n个字符 CASE表达式 SELECT product_name...预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始 (?<=pattern) 反向肯定预查,与正向肯定预查类拟,只是方向相反。...\cx 匹配由x指明的控制字符。例如,\cM匹配一个Control-M或回车符。x的值必须为A-Z或a-z之一。否则,将c视为一个原义的“c”字符。 \d 匹配一个数字字符。等价于[0-9]。...\xn 匹配n,其中n为十六进制转义值。十六进制转义值必须为确定的两个数字长。例如,“\x41”匹配“A”。“\x041”则等价于“\x04&1”。正则表达式中可以使用ASCII编码。....第二高的薪水 SELECT DISTINCT Salary AS SecondHighestSalary FROM Employee ORDER BY Salary DESC LIMIT

    64761

    数据库SQL语句大全——最常用的SQL语句

    : SELECT DISTINCT market_price FROM product DISTINCT关键字: 1、返回不同的值,使用时放在列名的前面 2、多查询一个及以上列时,除非你查询的所有列的数据都不同...99' 正则表达式搜索 基本字符串匹配 SELECT pname FROM product WHERE pname REGEXP '韩版' ORDER BY pname 使用正则表达式需要用REGEXP...关键字,并在REGEXP后面跟上正则表达式内容 SELECT pname FROM product WHERE pname REGEXP '.版' ORDER BY pname .是正则表达式语言中一个特殊的字符...它表示匹配任意一个字符 Mysql中的正则表达式不区分大小写,如果要区分大小写可以使用BINARY SELECT pname FROM product WHERE pname REGEXP BINARY...'Abc' ORDER BY pname OR匹配 SELECT pname FROM product WHERE pname REGEXP 'a|b' 几种常见的正则表达式 [0-9] 匹配

    3K30

    SQL命令 SELECT(一)

    它用于在这些情况下支持使用ORDER BY子句,满足在子查询或CREATE VIEW中使用的查询中ORDER BY子句必须与TOP子句配对的要求。 TOP ALL不限制返回的行数。...对查询结果使用ORDER BY子句。 子查询(例如UNION语句)中的ORDER BY子句必须与TOP子句配对。 如果没有指定ORDER BY子句,则返回记录的顺序是不可预测的。...将SELECT查询括在括号中会使它遵循子查询的语法规则; 具体来说,ORDER BY子句必须与TOP子句配对。 对于子查询,括号是必须的。 一组括号是必须的; 可以指定附加的可选括号集。...它们将查询结果集组织为具有匹配一个或多个列值的子集,并确定返回行的顺序。 groupby允许标量表达式和列。 HAVING子句,指定行必须匹配的布尔谓词条件。...这些谓词通常对group by子句指定的每个组进行操作。 ORDER BY子句,指定显示行的顺序。 子查询或CREATE VIEW查询中的ORDER BY子句必须与TOP子句配对。

    5.3K10

    【数据库SQL server】关系数据库标准语言SQL之数据查询

    HAVING短语:只有满足指定条件的组才予以输出 ORDER BY子句:对查询结果表按指定列值的升序或降序排序 1 单表查询:查询仅涉及一个表 1.1 选择表中的若干列 查询指定列: 【1】查询全体学生的学号与姓名... 说明: 连接字段:连接谓词中的列名称 连接条件中的各连接字段类型必须是可比的,但名字不必相同 2.1 等值与非等值连接查询 等值连接:连接运算符为= 【1】查询每个学生及其选修课程的情况...表达式>]] [ORDER BY [ASC|DESC]]; 目标列表达式格式 * .* COUNT([DISTINCT|ALL]* ) [.]...属性列的顺序可与表定义中的顺序不一致 没有指定属性列:表示要插入的是一条完整的元组,且属性列属性与表定义中的顺序一致 指定部分属性列:插入的元组在其余属性列上取空值 VALUES子句 提供的值必须与...插入子查询结果 语句格式 INSERT INTO [( [,… )] 子查询; SELECT子句目标列必须与INTO子句匹配

    25110

    软件测试之学习mysql的查询功能select及高级查询(重中之重)

    by 需要排序的字段名1,需要排序的字段名2 asc; 降序 desc:select * from 表名 where order by 需要排序的字段名1,需要排序的字段名2 desc; 高级查询:...用法:select 字段名,聚合函数 from 表名 where group by 分组字段名; 聚合函数:对一组值执行计算并返回单一的值的函数,聚合函数经常与select 语句的group by 一同使用...,常见的聚合函数有:sum()、count()、avg()、min()、max() having:分组后,想在分组结果的基础上继续过滤的话,就必须把过滤条件写在having后面 多字段进行分组:select...: 去除查询结果中的重复数据 用法:select distinct 字段名 from 表名; 比如:查询所有投资的用户id (重复的memberid就去除了) Select distinct memberid...字符串拼接函数:concat(字段A,字段B) eg:select concat(regname,’-‘,mobilephone) from member; 2、字符串截取函数substr(字段A,截取最开始的位置

    1.3K20
    领券