- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.2.4 空值查询 空值表示未知或不确定的值,空值表示为null IS null用于查询属性值为空值 IS NOT null用于查询属性值不为空值 IS不能用“=”替代 [例3.12] 在课程Course表中查询先修课程为空值的课程信息。 SELECT * FROM Course WHERE priorCourse IS NULL * * [例3.13] 在课程Course表中查询有先修课程的课程信息。 SELECT * FROM Course WHERE priorCourse IS NOT NULL * * 1.2.5 字符匹配查询 LIKE用于字符匹配查询,语法格式为: [NOT] LIKE 匹配字符串 [ESCAPE 换码字符] 查询的含义是: 如果在LIKE前没有NOT,则查询指定的属性列值与匹配字符串相匹配的元组; 如果在LIKE前有NOT,则查询指定的属性列值不与匹配字符串相匹配的元组。 * * 匹配字符串可以是一个具体的字符串,也可以包括通配符%和_ %表示任意长度的字符串 ab%,表示所有以ab开头的任意长度的字符串; zhang%ab,表示以zhang开头,以ab结束,中间可以是任意个字符的字符串。 符号_(下划线)表示任意一个字符 ab_,表示所有以 ab开头的3个字符的字符串,其中第3个字符为任意字符; a__b表示所有以a开头,以b 结束的4个字符的字符串,且第2、3个字符为任意字符。 * * [例3.14] 在班级Class表中查询班级名称中含有会计的班级信息 SELECT * FROM Class WHERE className LIKE %会计% 注意: 字符串必须用一对引号括起来 可单可双,小心匹配。 * * [例3.15] 在学生Student表中查询所有姓王且全名为3个汉字的同学学号和姓名 SELECT studentNo, studentName FROM Student WHERE studentName LIKE 王__ 注意:在中文SQL-Server中,如果匹配字符串为汉字,则一个下划线代表一个汉字;如果是西文,则一个下划线代表一个字符。 * * [例3.16] 在学生Student表中查询名字中不含有“福”的同学学号和姓名。 SELECT studentNo, studentName FROM Student WHERE studentName NOT LIKE %福% * * [例3.17] 在学生Student表中查询蒙古族的同学学号和姓名 SELECT studentNo, studentName FROM Student WHERE nation LIKE 蒙古族 注意:如果匹配字符串中不含有%和_,则LIKE与比较运算符“=”的查询结果一样 SELECT studentNo, studentName FROM Student WHERE nation=蒙古族 * * 转义 如果查询字串中本身要包含%和_,必须对通配符进行转义处理。mysql转义字符是‘\’。 [例3.18] 在班级Class表中查询班级名称中含有“08_”符号的班级名称 SELECT className FROM Class WHERE className LIKE %08\%% 紧跟在\符号后的%不是通配符,而是普通的用户要查询的符号 * * 1.2.6 逻辑查询 SQL提供AND、OR和NOT逻辑运算符分别实现逻辑与、逻辑或和逻辑非运算 [例3.19] 在选课Score表中查询选修了“001”、“005”或“003”课程的同学学号、课程号和相应成绩 SELECT studentNo, courseNo, score FROM Score WHERE courseNo=001 OR courseNo=005 OR courseNo=003 在例3.10中使用的是集合运算,本例中采用逻辑“或”运算 * * [例3.20] 在Student表中查询1991年出生且籍贯为“汉族”的同学学号、姓名、出生日期。 SELECT studentNo, studentName, birthday FROM Student WHERE year(birthday)=1991 AND nation=汉族 * * 注意:在逻辑运算中,不可以对同一个属性进行逻辑“与”的等值运算 例: 在选课Score表中查询同时选修了“001”和“002”课程的同学的选课信息,如下查询是错误的,得不到结果:
原创力文档


文档评论(0)