本节使用的表依然是上一次使用的表,表名: 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看看
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)