四、MySQL数据库之通配符

四、MySQL数据库之通配符,第1张

    本节主要介绍在“like” *** 作符的搭配下,通配符的使用, 常用的通配符有"% " 、"_"、"[ ]"、"[^ ]"、"[! ]"等

    本节使用的表依然是上一次使用的表,表名: customer ,表有列: cus_id,cus_no,cus_name,cus_age,cus_adds。

通配符"%"解析:

1) "***%" 表示匹配任意字符开头的数据,如cus_name like '张%' 代表匹配姓名以“张”开头的所有客户信息; eg:select * from customer where cus_name like '张%'

2) "%***" 表示匹配任意字符结尾的数据,如cus_age like "%8" 代表匹配年龄以“8”结尾的所有客户信息; eg:select * from customer where cus_age like '%8'

3) "%***%"表示匹配包含任意字符的数据,如cus_id like "%100%" 代表匹配id包含“100”的所有客户信息; eg:select * from customer where cus_id like '%100%'体验

4) "*_" 表示匹配任意一个字符开头的数据,只能以一个字符开头,如cus_name like '_**' ,代表匹配姓名后两个字为“二小”的所有客户信息; eg:select * from customer where cus_name like '_二小'

5) "_*" 表示匹配任意一个字符结尾的数据,只能以一个字符结尾,如cus_age like "%8" 代表匹配年龄以“8”结尾的所有客户信息; eg:select * from customer where cus_age like '_8'

6) "_*_*"表示匹配中间包含任意一个字符的数据,如cus_id like " 1_0_ " 代表匹配id包含“ 1_0_ ”的所有客户信息; eg:select * from customer where cus_id like '1_0_'

7)eg:select * from customer where cus_age like '^[2]'  --表示查询年龄不以2开头的客户信息

8)eg:select * from customer where cus_age like '[2 | 3]'  --表示查询年龄以2或者3开头的客户信息

“_” 匹配单个字符,”\_” 匹配”_”

“%” 匹配任意个字符,包括零个字符

sql模式下的匹配,缺省是忽略大小写的,并且sql模式下的模糊匹配不能使用“=”或”!=”,而使用 like 或 not like.

首先,题干中的 *.* 表示的意思是 任意数据库 下的 任意数据表,即所有数据库都有效的意思。

在MySQL中*和.都有特殊的含义

* 代表通配符,表示匹配任意或者所有的意思,如:

select * from table# 这里的*表示匹配所有字段,是字段列表的代指

grant select on *.*# 这里的*有两个,第一个*代表所有数据库,第二个*代表所有数据表,如果是Test.test表示Test数据库下的test数据表

. 代表连接符,表示后者属于前者的关系,如:

select a.*,b.id from tableA as a left join tableB as b on a.bid = b.id# 这里a是tableA的别名,b是tableB的别名,a.*表示a表下的所有字段,b.id表示b表下的id字段

grant select on *.*# 这里的.也类似,表示指定数据库下的指定数据表

想要了解更多关于MySQL的知识,可以去6天玩转MySQL看看


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8637339.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存