SQL2000数据库查询讲解006--查询满足条件的元组03:字符匹配like及通配符%_

时间:2022-03-24 09:50:17

知点(一):like的运用

         如果LIKE后面的匹配串中不含通配符,则可用 =   运算符取代LIKE谓词,用!=或<>运算符取代not like谓词。

例15:查询所有姓刘的学生的姓名、学号和性别

select sname,sno ,ssex
from student
where sname like '刘%'

例16:查询姓“欧阳”且全名为三个汉字的学生的姓名

select sname
from student
where sname like '殴阳_ _'

注意:一个汉字要占两个字符合位置,所以匹配串欧阳后面需要跟两个_

例17:查询名字中第2个字为“阳”字的学生的姓名和学号。

select sname,sno
from student
where sname like '_ _阳%'

例18:查询所有不姓刘的学生姓名

select sname,sno
from student
where sname not like '刘%'

知点(二):换码字符的运用

如果要查询的字符串本身就含有%或 _ _,这时就要使用ESCAPE'<换码字符>'短语对通配符进行转义了。

例19 :查询DB _Design课程的课程号和学分。

select cno,credit
from course
where cname like 'DB\_Design'ESCAPE'\'

ESCAPE ‘\'  短语表示 \  为换码字符,这样匹配串中紧跟在 \   后面的字符 _  不再具有通配行的含义,转义为普通的" _"字符。

例20 查询以“DB_“开头,且倒数第3个字符为 i  的课程的详细情况。

select *
from course
where cname like 'DB\_%i_ _'ESCAPE'\'

这里的匹配串“DB\_%i_ _“。第一个 _  前面有换码字符 \  ,所以它被转义为普通的 _  字符。而 %  后的第2个和第3个_ 前面均没有换码字符 \ ,所以它们作为通配符。