MySQL的SELECT注意事项,正则表达式,常用函数,explain的简单解析

SELECT

  • 使用ORDER BY和LIMIT关键字可以检索出表中最高后最低的值。

  • MySQl在查询执行匹配时默认不区分大小写。

  • 单引号用来限定字符串,如果将值与串类型的列进行比较,则需要限定引号,用来与数值列进行比较的值不要用引号。

  • 在任何时候使用具有AND和OR操作符的WHERE字句,都应该使用圆括号明确的分组操作符

  • MySQL支持使用NOT对IN、BETWEEN和 EXISTS子句取反,这与多数其他DBMS允许使用NOT对各种条件 取反有很大的差别。

通配符的使用(通配符搜索的处理一般要比其他搜索所花时间长)

  • 不要过度使用通配符,如果其他操作符能达到相同目的,应该使用其他操作符。

  • 在确实需要使用通配符时,除非绝对有必要,否则不要把它们用 在搜索模式的开始处。把通配符置于搜索模式的开始处,搜索起 来是最慢的。

  • 仔细注意通配符的位置。如果放错地方,可能不会返回想要的数据。

正则表达式

使用REGEXP关键字后跟表达式来匹配,默认不区分大小写,如果要区分大小写则要使用BINARY关键字,例如 SELECT 字段 FROM 表名 REGEXP BINARY '正则表达式'。

  • 正则表达式中的 . 表示匹配任意一个字符。

  • |表示OR

  • ^匹配除指定字符外的任何东西, ^的双重用途 ^有两种用法。在集合中(用[和]定义),用它 来否定该集合,否则,用来指串的开始处。

  • 匹配特殊字符时前要使用‘\\’转义

正则表达式REGEXP与LIKE的区别:

  • LIKE后的匹配字段需要加通配符来实现模糊查询,不加通配符就相当于完全匹配查询。

  • REGEXP后的匹配字段可以不加通配符依然是模糊查询。

函数

文本处理函数

Concat():拼接字符串函数

Trim():去掉值左右两边的空格

RTrim():去掉值右边的空格

LTrim():去掉值左边的空格

Upper():将值转换为大写

Lower():将串转换为小写

Length():返回串的长度

Left():返回串左边的字符

Soundex():返回串的字符,SOUNDEX是一个将任何文 本串转换为描述其语音表示的字母数字模式的算法。SOUNDEX考虑了类似 的发音字符和音节,使得能对串进行发音比较而不是字母比较。

SubString():返回子串的字符

时间处理函数

AddDate() 增加一个日期(天、周等)

AddTime() 增加一个时间(时、分等)

CurDate() 返回当前日期

CurTime() 返回当前时间

Date() 返回日期时间的日期部分

DateDiff() 计算两个日期之差

Date_Add() 高度灵活的日期运算函数

Date_Format() 返回一个格式化的日期或时间串

Day() 返回一个日期的天数部分

DayOfWeek() 对于一个日期,返回对应的星期几

Hour() 返回一个时间的小时部分

Minute() 返回一个时间的分钟部分

Month() 返回一个日期的月份部分

Now() 返回当前日期和时间

Second() 返回一个时间的秒部分

Time() 返回一个日期时间的时间部分

Year() 返回一个日期的年份部分

数值处理函数

Abs() 返回一个数的绝对值

Cos() 返回一个角度的余弦

Exp() 返回一个数的指数值

Mod() 返回除操作的余数

Pi() 返回圆周率

Rand() 返回一个随机数

Sin() 返回一个角度的正弦

Sqrt() 返回一个数的平方根

Tan() 返回一个角度的正切

COUNT()函数有两种使用方式。

  • 使用COUNT(*)对表中行的数目进行计数,不管表列中包含的是空 值(NULL)还是非空值。

  • 使用COUNT(column)对特定列中具有值的行进行计数,忽略 NULL值

MAX()函数

对非数值数据使用MAX() ,虽然MAX()一般用来找出最大的 数值或日期值,但MySQL允许将它用来返回任意列中的最大 值,包括返回文本列中的最大值。在用于文本数据时,如果数 据按相应的列排序,则MAX()返回最后一行,忽略NULL值

MIN()函数

对非数值数据使用MIN() ,MIN()函数与MAX()函数类似, MySQL允许将它用来返回任意列中的最小值,包括返回文本 列中的最小值。在用于文本数据时,如果数据按相应的列排序, 则MIN()返回最前面的行。同样忽略NULL值。

explain执行计划查看存储过程

id:sql子查询子语句执行顺序

select_type:查询类型

table:当前SQL语句执行的表名

partition:是不是一个分区表(又没有分区的字段信息)

type:查询对应的类型,高效率 system>const>eq_ref>ref>range>index>all,低效率。

possible_keys:可能用到的索引

key:当前SQL语句执行时用到的索引

key_len:使用索引的长度

ref:对应列的引用

rows:过滤行数(估值)

filtered:过滤的东西

Extra:可选的信息(额外的信息)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQLEXPLAIN命令用于解析查询语句的执行计划和性能优化。通过分析查询语句的执行计划,我们可以了解MySQL是如何执行查询的,进而进行调优和优化。 在MySQL官方文档中,你可以找到关于EXPLAIN命令的详细说明和解释器输出的含义。官方文档提供了对每个输出列的解释和示例,帮助你理解查询执行计划的各个方面。 在引用中的示例中,我们使用EXPLAIN命令解析了一个查询语句。通过这个示例,你可以了解到如何使用EXPLAIN命令来查看查询的执行计划,并理解查询执行计划的输出。 在引用中的示例中,我们使用EXPLAIN命令解析了一个带有ORDER BY和LIMIT子句的查询语句。通过这个示例,你可以了解到在查询中使用随机排序和限制结果集的影响。 总之,MySQLEXPLAIN命令是一个非常有用的工具,可以帮助我们理解和优化查询语句的执行计划。通过分析EXPLAIN输出,我们可以确定查询是否使用了正确的索引、是否存在潜在的性能问题以及如何改进查询性能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [MYSQL explain详解](https://blog.csdn.net/asd051377305/article/details/113979657)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [Mysql explain 参数解析(转载)](https://blog.csdn.net/Rouemm/article/details/123233601)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值