失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 数据库MySQL数据查询---模糊查询(like和relike(或regexp))

数据库MySQL数据查询---模糊查询(like和relike(或regexp))

时间:2023-06-08 11:39:41

相关推荐

数据库MySQL数据查询---模糊查询(like和relike(或regexp))

数据库MySQL数据查询—模糊查询(like和relike(或regexp))

like和relike(或regexp)的格式:

Like的格式是A(表名) like B(表达式),表示能否用B去完全匹配A的内容,简单来讲like是从头逐一字符匹配的,是全部匹配,返回的结果是True/False。

A(表名) relike B (表达式) ,表示A里边只要含有B即可,B中一般放正则表达式。regexp与其用法相似,即A(表名) regexp B (表达式)。

几种简单的匹配符号:

(1)"_“表示任意单个字符

(2)"%“表示任意数量的字符

(3)如果想在A中匹配字符”_“和”%“或者“;”就需要转义。以“%”为例,即用”\%"(匹配一个%字符)。

大家可以通过以下例子对模糊查询做更进一步的了解:

例一、mySchool数据库中有如下表:

1.student表:学生(学号,密码,姓名,性别,年级编号,电话,地址,出生日期,邮件账号,身份证号);2.subject表:课程表(课程编号,课程名称,学时,年级编号);

查询河北省的学生的学生姓名、地址、手机号码,列名用汉字显示。

补充一点:这里给属性列起别名一共有三种方式(本人习惯用第一种形式):

(1)select C(原来属性名) as 别名

(2)select C(原来属性名) = 别名

(3)select C(原来属性名) 别名

SELECT studentName as 姓名,address as 住址,phone as 手机号from studentwhere address like'河北%';

查询姓李的男生信息。

SELECT *from studentwhere studentName like'李%' and sex='男';

查询名字中包含“萍”字的女生信息。

SELECT *from studentwhere studentName like'%萍%' and sex='女';

查询名字中第二个字为“秋”的学生信息。

SELECT *from studentwhere studentName like'_秋%';

查询课程名第一个字符为“j”,第二字字符为“a”或“s”的课程信息。

SELECT *from subjectwhere subjectName regexp '^j[as]';

查询课程名中包含“_”(下划线)的课程信息。

SELECT *from subjectwhere subjectName like '%\_%';

例二、mySchool数据库中有如下表:

1.book表:图书(图书编号,书名,作者姓名,出版社,出版日期,现存数量,单价)

2.reader表:读者(读者编号,读者姓名,已借数量,联系地址)

3.pentlay表 罚款记录表(读者编号,图书编号,罚款日期,罚款类型,罚款金额)

查询图书名以“欣赏”结尾的图书信息。

SELECT *from bookwhere bname regexp '欣赏$';

查询图书名中包含“数据库”的图书编号、图书名、出版社、单价,列名以汉字显示。

SELECT bid as 图书编号,bname as 图书名,pubcomp as 出版社,price as 单价from bookwhere bname regexp '数据库';

检索读者名中第三个字为“伟”的读者信息。

SELECT *from readerwhere rname like '__伟';

查询姓张的和姓王的读者信息。

SELECT *from readerwhere mname regexp'^[张王]';

查询罚款金额大于5元的罚款记录,输出读者编号、图书编号、罚款日期、罚款类型、罚款金额和一列“已处理”,最后一列的列名为“处理情况”,其他列的列名使用汉字。

SELECT rid as 读者编号,bid as 图书编号,pdate as 罚款日期,ptype as 罚款类型,amount as 罚款金额 ,'已处理' as 处理情况from penaltywhere amount>5 ;

如果觉得《数据库MySQL数据查询---模糊查询(like和relike(或regexp))》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。