正则表达式和运算符.ppt_第1页
正则表达式和运算符.ppt_第2页
正则表达式和运算符.ppt_第3页
正则表达式和运算符.ppt_第4页
正则表达式和运算符.ppt_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

正则表达式查询,使用正则表达式查询,正则表达式是用某种模式去匹配一类字符串的一个方式。例如,使用正则表达式可以查询出包含A、B、C其中任一字母的字符串。正则表达式的查询能力比通配字符的查询能力更强大,而且更加的灵活。正则表达式可以应用于非常复杂查询。本节将详细讲解如何使用正则表达式来查询。 MySQL中,使用REGEXP关键字来匹配查询正则表达式。其基本形式如下: 属性名 REGEXP 匹配方式,1 查询以特定字符或字符串开头的记录,使用字符“”可以匹配以特定字符或字符串开头的记录。 下面从student表name字段中查询以字母“L”开头的记录。SQL代码如下: SELECT * FROM student WHERE name REGEXP L;,2 查询以特定字符或字符串结尾的记录,使用字符“$”可以匹配以特定字符或字符串结尾的记录。 下面从student表name字段中查询以字母“c”结尾的记录。SQL代码如下: SELECT * FROM student WHERE name REGEXP c$;,3 用符号“.”来替代字符串中的任意一个字符,用正则表达式来查询时,可以用“.”来替代字符串中的任意一个字符。 下面从student表name字段中查询以字母“L”开头,以字母“y”结尾,中间有两个任意字符的记录。SQL代码如下: SELECT * FROM student WHERE name REGEXP Ly$;,4 匹配指定字符中的任意一个,使用方括号()可以将需要查询字符组成一个字符集。只要记录中包含方括号中的任意字符,该记录将会被查询出来。 例如,通过“abc”可以查询包含a、b、c这三个字母中任何一个的记录。 下面从student表name字段中查询包含c,e,o3个字母中任意一个的记录。 SELECT * FROM student WHERE name REGEXP ceo;,5 匹配指定字符以外的字符,使用“字符集合”可以匹配指定字符以外的字符。 下面从student表name字段中查询包含a到w字母和数字以外的字符的记录。SQL代码如下SELECT * FROM student WHERE name REGEXP a-w0-9; Sno name 2 Lucy 4 Lily,6 匹配指定字符串,正则表达式可以匹配字符串。当表中的记录包含这个字符串时,就可以将该记录查询出来。如果指定多个字符串时,需要用符号“|”隔开。只要匹配这些字符串中的任意一个即可。 SELECT * FROM student WHERE name REGEXP ic; SELECT * FROM student WHERE name REGEXP |ic|uc|aa;,7 使用“*”和“+”来匹配多个字符,正则表达式中,“*”和“+”都可以匹配多个该符号之前的字符。但是,“+”至少表示一个字符,而“*”可以表示零个字符. 从STUDENT表中NAME字段中查询字母c之前出现a的记录 SELECT * FROM student WHERE name REGEXP a*c; Sno name Aric Eric Jack lucy,8 使用M或者M,N来指定字符串连续出现的次数,正则表达式中,“字符串M”表示字符串连续出现M次;“字符串M,N”表示字符串联连续出现至少M次,最多N次。例如,“ab2”表示字符串“ab”连续出现两次。“ab2,4”表示字符串“ab”连续出现至少两次,最多四次。 从STUDENT表中NAME字段中查询出现过a3次记录 SELECT * FROM student WHERE name REGEXP a3; Sno name aaa Dadaaa aaabd,运算符简介,当数据库中的表定义好了以后,表中的数据代表的意义就已经定下来了。通过使用运算符进行运算,可以得到包含另一层意义的数据。例如,学生表中存在一个birth字段,这个字段是表示学生的出生年份。如果,用户现在希望查找这个学生的年龄。而学生表中只有出生年份,没有字段表示年龄。这就需要进行运算,用当前的年份减去学生的出生年份,这就可以计算出学生的年龄了。 从上面可以知道,MySQL运算符可以指明对表中数据所进行的运算,以便得到用户希望得到的数据。这样可以使MySQL数据库更加灵活。MySQL运算符包括算术运算符、比较运算符、逻辑运算符和位运算符这四类。 算术运算符: 比较运算符: 逻辑运算符: 位运算符:,算术运算符,算术运算符是MySQL中最常用的一类运算符。MySQL支持的算术运算符包括加、减、乘、除、求余。,比较运算符,比较运算符是查询数据时最常用的一类运算符。SELECT语句中的条件语句经常要使用比较运算符。通过这些比较运算符,可以判断表中的哪些记录是符合条件的。 1运算符“=” 2运算符“”和“!=” 3运算符“” (与=是一样的,用来判断操作数是否相等。区别在于“” 可以用来判断NULL) 4运算符“” 5运算符“=” 6运算符“” 7运算符“=” 8运算符“IS NULL” 9运算符“BETWEEN AND” 10运算符“IN” 11运算符“LIKE” 12运算符“REGEXP”,逻辑运算符,逻辑运算符用来判断表达式的真假。逻辑运算符的返回结果只有1和0。如果表达式是真,结果返回1。如果表达式是假,结果返回0。逻辑运算符又称为布尔运算符。MySQL中支持四种逻辑运算符。这四种逻辑运算符分别是与、或、非和异或。 1与运算 2或运算 3非运算 4异或运算,1、与运算 操作数只有0时,结果返回0;,3、非运算 !或者NOT表示非运算。通过非运算将返回与操作数相反地结果。 如果操作数0,返回1; 如果操作数非0,返回0; 如果操作数十NULL,返回NULL; 4、异或运算 XOR表示异或运算; 只要其中任何一个操作数为NULL, 结果返回NULL; 如果X1和X2都是非0的数字或者都是0时,结果返回0; 如果X1和X2中一个是非0,另一个是0时,结果返回1;,位运算符,位运算符是在二进制数上进行计算的运算符。位运算会先将操作数变成二进制数,然后进行位运算。然后再将计算结果从二进制数变回十进制数。MySQL中支持六种位运算符。这六种位运算符分别是按位与、按位或、按位取反、按位异或、按位左移和按位右移。 1按位与 2按位或 3按位取反 4按位异或 5按位左移与按位右移,1、按位与 &表示按位与。先将十进制转换为二进制,结果再转为十进制。 1&1=1 1&0=0 2、按位或 |表示或。 1|1=1 1|0=1; 3、按位取反 表示按位取反。 1=0 0=1,上机实践,题目要求: (1)在MySQL中执行下面的表达式:4+3-1,3*2+7,8/3,9%2。 (2)在MySQL中执行下面的表达式:3028,17=16,3017,7NULL,NULLNULL。 (3)判断字符串“mybook”是否为空,是否以字母m开头,以字母k结尾。 (4)在MySQL中执行下列逻辑运算:2&0&NULL,1.5&2,3|NULL,NOT NULL,3 XOR 2,0 XOR NULL。,小结,本章介绍了MySQL中的运算符。MySQL中包括四类运算符,分别是算术运算符、比较运算符、逻辑运算符、位运算符。前三种运算符在实际操作中使用比较频繁,也是本章中重点讲述的内容。因此,读者需要认真学习这部分的内容。位运算符是本章的难点。因为,位运算符需要将操作数转换为二进制数,然后进行位运算。这要求读者能够掌握二进制运算的相关知识。位运算符在实际操作中使用的频率比较低。,本章习题,1在MySQL中执行如下算术表达式:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论