sql语言 含有包含关系的查询 (含mysql 和sql sever)
一、sql中查询包含关系的查询
sql语句中包含关系可以使用 in 和exist,但有些时候仅仅用这两个是不够的,还有表示方法是 not exist(b expect a )可以表示a包含b。
二、这里举一个例子
查询中涉及2个表,一个student表,一个sc表(用来储存每个学生的id和对应的选课id还有该学生该课的成绩)
具体表的内容如下(不全):
student表: sc表:

问题:查询至少选修了学号为“31401”的学生所选修的所有课程的学生的学号和姓名。
emmmm...
如果套用之前的公式:
select sno,sname
from student as s1
where not exists(
(select cno
from sc
where sno='')
except
(select sc.cno
from sc,student as s2
where sc.sno=s2.sno and s1.sname=s2.sname));
然而遗憾的是,mysql不能使用except语句,那么我们使用另一种解决方法
-- 找出学号为31401的同学所选课程的集合a
CREATE OR REPLACE VIEW a as
select sc.cno
from sc
where sno=31401; -- 找出其他同学选修了集合a里的学生id和课程id的集合
CREATE OR REPLACE VIEW b as
select a.cno,sno
from a left join sc on a.cno=sc.cno; -- 得出结果
select sno, sname
from student
where sno in(select sno
from b group by sno having count(distinct cno)=3);
sql语言 含有包含关系的查询 (含mysql 和sql sever)的更多相关文章
- 【数据库(一)】SQL语言-表定义、查询
基本模式定义+ SQL支持许多不同的完整性约束. not null, 在该属性上不允许空值 primary key 是否是是主码,主码必须非空且唯一 foreign key check(P),P是谓词 ...
- SQL语言学习-DQL条件查询
条件查询 1. where子句后跟条件 2. 运算符 * > .< .<= .>= .= .<> * BETWEEN...AND * IN( 集合) * LIKE: ...
- MySQL入门——MySQL数据库和SQL语言
MySQL入门——MySQL数据库和SQL语言 摘要:本文主要了解了MySQL关系型数据库和SQL语言的基本知识. MySQL数据库 简介 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB ...
- [SQL]SQL语言入门级教材_跟我学SQL(六)
跟我学SQL:(一)数据查询 且不说你是否正在从事编程方面的工作或者不打算学习SQL,可事实上几乎每一位开发者最终都会遭遇它.你多半还用不着负责创建和维持某个,但你怎么着也该知道以下的一些有关的SQL ...
- atitit.java解析sql语言解析器解释器的实现
atitit.java解析sql语言解析器解释器的实现 1. 解析sql的本质:实现一个4gl dsl编程语言的编译器 1 2. 解析sql的主要的流程,词法分析,而后进行语法分析,语义分析,构建sq ...
- SQL语言 之 SQL概述
SQL(Structured Query Language)语言,自1987年6月被国际标准化组织采纳为国际标准,SQL语言成为关系数据库的标准语言. SQL语言是关系数据库操作的基础语言,将数据查询 ...
- DB-MySql:MySQL 及 SQL 注入
ylbtech-DB-MySQL:MySQL 及 SQL 注入 1.返回顶部 1. MySQL 及 SQL 注入 如果您通过网页获取用户输入的数据并将其插入一个MySQL数据库,那么就有可能发生SQL ...
- [SQL]SQL语言入门级教材_SQL语言快速入门(五)
SQL语言快速入门(一) SQL是英文Structured Query Language的缩写,意思为结构化查询语言. SQL语言的主要功能就是同各种数据库建立联系,进行沟通.按照ANSI(美国国家标 ...
- SQL语言的组成
在正式学习SQL语言之前,首先让我们对SQL语言有一个基本认识,介绍一下SQL语言的 组成: 1.一个SQL数据库是表(Table)的集合,它由一个或多个SQL模式定义. 2.一个SQL表由行集构成, ...
随机推荐
- 如何设置openwrt在编译linux内核时不优化内核?
答:修改openwrwt源码目录下rule.mk文件中的HOST_CFLAGS即可 将HOST_CFLAGS:=-O2 $(HOST_CPPFLAGS)改成: HOST_CFLAGS:=-O1 $(H ...
- 在myeclipse中使用log4j记录日志
1.从官方网站下载 jakarta-log4j-1.2.17.tar.gz http://logging.apache.org/log4j/1.2/download.html 2.在eclipse中将 ...
- galera+mycat高可用集群部署
环境描述 10.30.162.29 client 环境描述 10.30.162.29 client 10.30.162.72 mysql1 10.30.162.73 mysql2 10.30.162 ...
- Qt下拉对话框 ComboBox的用法
介绍 ComboBox是Qt的下拉菜单的一个控件,通过下拉菜单选择不同的选项,样式如图: 基本用法 m_ComBox = ui.comboBox; //设置默认显示值的索引,从0开始 m_ComBox ...
- .Net文件压缩
NuGet中下载Ionic.Zip: public static class ZipHelper { /// <summary> /// 压缩文件 /// </summary> ...
- 浅谈 cosos2d-x 的ImageView和Sprite的区别
ImageView 1. ImageView是继承于Widget的,是cocos2d-x的基类 2. 实现了类似于按钮监听的事件,通过addTouchEventListener添加事件 var ima ...
- Java自带RPC实现,RMI框架入门
Java自带RPC实现,RMI框架入门 首先RMI(Remote Method Invocation)是Java特有的一种RPC实现,它能够使部署在不同主机上的Java对象进行通信与方法调用,它是一种 ...
- 从github上下载java项目导入到eclipse中
转载地址:https://blog.csdn.net/chyo098/article/details/79268136
- python 实现杨辉三角(依旧遗留问题)
1 #! usr/bin/env python3 #-*- coding :utf-8 -*- print('杨辉三角的generator') def triangles(): N=[1] while ...
- 解决安卓UI刷新卡屏,只显示最后一处刷新的问题
---恢复内容开始--- 错误1 安卓的机制决定了只有UI线程(也就是主线程)才能更新UI界面 否则会导致UI界面混乱的问题 这就说明了在new Thread中直接showImage是会报“出现非主线 ...