数据库sql语句查询补充

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'

相关推荐

  1. 数据库SQL查询语句汇总详解

    2023-12-20 02:40:01       33 阅读
  2. 数据库系统概论:数据库查询语言 SQL

    2023-12-20 02:40:01       24 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-20 02:40:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-20 02:40:01       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-20 02:40:01       82 阅读
  4. Python语言-面向对象

    2023-12-20 02:40:01       91 阅读

热门阅读

  1. pytorch transpose 转置和梯度的传播

    2023-12-20 02:40:01       61 阅读
  2. react-next. 配置title信息

    2023-12-20 02:40:01       77 阅读
  3. 73. 矩阵置零

    2023-12-20 02:40:01       55 阅读
  4. 深入了解 |WPF的DependencyProperty

    2023-12-20 02:40:01       62 阅读
  5. cnn报错个人记录

    2023-12-20 02:40:01       57 阅读
  6. sql Server 单用户模式切换为正常模式

    2023-12-20 02:40:01       59 阅读
  7. SQL基础:SQL 介绍和数据库基础

    2023-12-20 02:40:01       74 阅读
  8. 虚拟化之成本

    2023-12-20 02:40:01       59 阅读