接作业五的内容!!!!!
SELECT
4、字符匹配
谓词LIKE可以用来进行字符串的匹配。
[NOT] LIKE‘<匹配串>’ [ESCAPE '<换码字符>']
<匹配串>可以是一个完整的字符串,也可以含有通配符%和_。其中:
·%(百分号)代表任意长度(长度也可以为0)的字符串。例如a%b表示以a开头,以b结尾的任意长度的字符串。
·_(下横线)代表着任意单个字符。例如a_b表示以a开头,以b结尾的长度为3的任意字符串。
例3.29
查询学号为201215121的学生的详细情况。
SELECT *
FROM Student
WHERE Sno LIKE '201215121';
注意:这里的LIKE相当于等于的意思,如果LIKE后面的匹配串中不含通配符,则可以用=(等于号)运算符取代LIKE谓词,用!=或<>(不等于)运算符取代NOT LIKE谓词。
例3.30
查询所有姓刘的学生的姓名、学号和性别。
SELECT Sname,Sno,Ssex
FROM Student
WHERE Sname LIKE '刘%';
例3.31
查询姓“欧阳”且全名为三个汉字的学生的姓名。
SELECT Sname,Sno,Ssex
FROM Student
WHERE Sname LIKE '欧阳__';
注意:数据库字符集为ASCII时一个汉字需要两个__;当字符集为GBK时只需要一个_.在我的电脑MySQL里应该是GBK字符集,一个汉字只需要一个_
例3.32
查询名字中第二个为“阳”的学生的姓名和学号。
SELECT Sname,Sno
FROM Student
WHERE Sname LIKE '_阳%';
例3.33
查询所有不姓刘的学生的姓名、学号和性别。
SELECT Sname,Sno,Ssex
FROM Student
WHERE Sname NOT LIKE '刘%';
如果用户要查询的字符串本身就含有通配符%或_,这时就要使用ESCAPE '<换码字符>'短语对通配符进行转义了。
例3.34
查询DB_Design课程的课程号和学分。