重温《MySQL必知必会》学习到的一些关键点(三)

77 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第39天,点击查看活动详情

之前在其他平台发表过的文章,今天分享在掘金,跟大家一起学习~

9.IN可以替代OR,使用IN操作符的优势:

  1. 在使用长的合法选项清单时,IN操作符的语法更清楚且更直观。
  2. 在使用IN时,计算的次序更容易管理(因为使用的操作符更少)。
  3. IN操作符一般比OR操作符清单执行更快。
  4. IN的最大优点是可以包含其他SELECT语句,使得能够更动态地建立WHERE子句。(后续介绍)

10.NOT取反

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

11.LIKE操作符与通配符

(1)百分号(%)通配符,区分大小写。%代表搜索模式中给定位置的0个、1个或多个字符。 (2)下划线(_)通配符,区分大小写。下划线的用途与%一样,但下划线只匹配单个字符而不是多个字符。 (3) 使用通配符的技巧。

  • 不要过度使用通配符。如果其他操作符能达到相同的目的,应该使用其他操作符。
  • 在确实需要使用通配符时,除非绝对有必要,否则不要把它们用在搜索模式的开始处。把通配符置于搜索模式的开始处,搜索起来是最慢的。
  • 仔细注意通配符的位置。如果放错地方,可能不会返回想要的数据。

12.使用MySQL正则表达式

(1)关键字:REGEXP

(2)基本字符匹配。REGEXP '字符串'

(3)LIKE和REGEXP的区别: LIKE与REGEXP 在LIKE和REGEXP之间有一个重要的差别。LIKE匹配整个列。如果被匹配的文本在列值中出现,LIKE将不会找到它,相应的行也不被返回(除非使用通配符)。而REGEXP在列值内进行匹配,如果被匹配的文本在列值中出现,REGEXP将会找到它,相应的行将被返回。 REGEXP使用^和$定位符(anchor)用来匹配整个列值。

(4)匹配不区分大小写。 MySQL中的正则表达式匹配(自版本3.23.4后)不区分大小写(即,大写和小写都匹配)。为区分大小写,可使用BINARY关键字,如WHERE prod_name REGEXP BINARY 'JetPack .000'。

(4)进行OR匹配。 1000|2000。|为正则表达式的OR操作符。它表示匹配其中之一,因此1000和2000都匹配并返回。

(5)匹配几个字符之一。使用[abc]表示匹配a或b或c。使用[^abc]却匹配除这些字符外的任何东西。

(6)匹配范围。匹配[012345]这样的集合,可以用[0-5]来进行匹配。

(7)匹配特殊字符。使用转义字符“//”,如“//.”表示匹配字符“.”。

(8)匹配字符类。存在找出经常使用的数字、所有字母字符或所有数字字母字符等的匹配。 在这里插入图片描述 (9)匹配多个实例。使用场景:可能需要寻找所有的数,不管数中包含多少数字,或者可能想寻找一个单词并且还能够适应一个尾随的s(如果存在),等等。 在这里插入图片描述

(10)定位符。为了匹配特定位置的文本,需要使用表9-4列出的定位符。 在这里插入图片描述