数据库sql语句查询补充
2023-12-19 00:48:56
0.前言
数据库期末复习,对自己做错的题进行知识总结和梳理
1.Like谓语
like谓语主要有两个操作
- %:百分号,表示任意长度的字符串
- _:下划线,表示任意单个字符
like谓语的语法格式如下:
LIke谓语容易出现的难点:需要在查询的内容当中本身带有’_‘或者’%’
此时要使用到换码字符
eg:
插叙开头为’DB_'的课程情况
对应的sql查询语句:
SELECT *
FROM S
WHERE SNAME LIKE 'DB\_' ESCAPE '\'
意思也就是在’_‘的前面要添加相应的换码符号,然后在后面进行一个逃脱ESCAPE,需要注意到的是,’‘可以进行多种符号更改,比如可以更改成’@',那么对应查询语句如下:
SELECT *
FROM S
WHERE SNAME LIKE 'DB@_' ESCAPE '@'
2.带有Having当中的分组查询
最终只输出满足指定条件的组
eg. 例题:
在SC表当中查询选修了2门以上课程的学生学号
对应的Sql语句
Select SNO
FROM SC
GROUP BY SNO
HAVING COUNT(CNO)>2
可以通过添加DIstinct
避免输出的结果重复
错题重做:
在spj表当中,查询使用3种以上零件的工程号
这道题和同学沟通了一下,发现了自己的问题,我理解成是多表查询了,但是其实不是的,应该是先进行按照JNO的组队,然后在通过HAVING进行一定条件的限制,正确的sql语句如下
SELECT JNO
FROM SPJ
GROUP BY JNO
HAVING COUNT(DISTINCT PNO)>3
3.内连接
主要是在需要同时使用到两次同一个表的情况下如何进行书写,那么此时就要对该表进行一个内连接的操作
例题
至少选修了课程号为0121和0125两门课的学生学号
那么此时关键次有’至少’并且要求的操作是在同一个表当中同一列的不同数据的一个查询
对应的sql语句如下:
SELECT A.SNO--这里也可以写成B.SNO
FROM SC a join SC b ON a.SNO=b.SNO--给同一个表设定不同的名称
AND a.CNO='0121'
AND b,CNO='0125'
文章来源:https://blog.csdn.net/qq_62904883/article/details/134587129
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!