字符匹配
[NOT] LIKE ‘<匹配串>’ [ESCAPE ‘ <换码字符>’]
模糊查询⬆
<匹配串>可以是一个完整的字符串,也可以含有通配符%和 _
%:任意长度(长度可以为0)的字符串
_ :代表任意单个字符。
【例3.29】查询学号为201215121的学生的详细情况。
SELECT *
FROM Student
WHERE Sno LIKE '201215121';
--等价于
SELECT *
FROM Student
WHERE Sno = '201215121';
【例3.30】 查询所有姓刘学生的姓名、学号和性别。
SELECT Sname, Sno, Ssex
FROM Student
WHERE Sname LIKE '刘%';
【例3.31】查询姓"刘"且全名为两个汉字的学生的姓名。`
SELECT Sname
FROM Student
WHERE Sname LIKE '刘_';
【例3.31补充】
数据库字符集为ASCII时,一个汉字需要两个_
数据库字符集为 GBK 时,一个汉字需要一个_
我的SQL字符集使用的是GBK。
【字符集】是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、 GB18030字符集、Unicode字符集等。计算机要准确的处理各种字符集文字,就需要进行字符编码,以便计算机能够识别和存储各种文字。
另外查资料的时候发现:如果Sname是nchar(10)型,代码应该是
SELECT Sname
FROM Student
WHERE Sname LIKE '刘__________'; /*九个下划线或者%*/
因为nchar型会自动在名字后面补全空格。
SELECT Sname
FROM Student