SQL中EXISTS的用法

查询所有选修了1号课程的学生的姓名,年龄,性别
首先取Student表中的一个元组,
然后在SC表中依次找SC.Sno=该元组的So,
并且对应的Cno='2',
如果存在,则外层查询的where子句返回为真,
则Student表中的该元组可以输出。
然后依次遍历Student表中的其他元组。

新建表:
(1)Student
So Sname Ssex Sage
1511010100 小明 男 10
1511010101 小粒 男 11
1511010102 小花 女 12
1511010103 小莉 女 13


(2)Course
Cno Cname Ccre Credit
1 JAVA 2 2
2 C 2 2
3 ANDROID 4 4
4 SQL 3 3
5 PASCAL 2 2


(3)
SC
Sno Cno Credit
1511010100 2 96
1511010101 2 98
1511010100 1 90
1511010104 3 98
1511010102 4 97

查询:
对于在学生表中学号等于151010100这个元组,在SC表中第一条记录即符合条件,然后where 子句返回 true,所以该条元组可以输出。然后依次遍历。

select Sname,Sage,Ssex

from Student

where exists

(

select *

from SC

where SC.Sno = Student.So AND Cno='2'

);

  

结果:
Sname Sage Ssex
小明 10 男
小粒 11 男

2018-04-27   11:06:40

sql (6) exists的更多相关文章

  1. MySQL通过视图(或临时表)实现动态SQL(游标)

    >参考de优秀文章 写MySQL存储过程实现动态执行SQL Dynamic cursor in stored procedure MySQL通过视图(或临时表)实现动态SQL(游标). 因在实现 ...

  2. 一步一步学Linq to sql(五):存储过程

    普通存储过程 首先在查询分析器运行下面的代码来创建一个存储过程: create proc sp_singleresultset as set nocount on select * from cust ...

  3. 第3章 关系数据库标准语言SQL(重点) | 数据库知识点整理

    第3章 关系数据库标准语言SQL(重点) 了解 SQL语言发展过程 关系数据库技术和关系数据库管理系统RDBMS产品的发展过程 掌握 SQL语言的特点和优点 面向过程的语言和SQL语言的区别 关系数据 ...

  4. Spark学习之Spark SQL(8)

    Spark学习之Spark SQL(8) 1. Spark用来操作结构化和半结构化数据的接口--Spark SQL. 2. Spark SQL的三大功能 2.1 Spark SQL可以从各种结构化数据 ...

  5. 使用Mybatis实现动态SQL(二)

    使用Mybatis实现动态SQL 作者 : Stanley 罗昊 [转载请注明出处和署名,谢谢!] 写在前面:        *本章节适合有Mybatis基础者观看* 使用Mybatis实现动态SQL ...

  6. 十步完全理解 SQL(转载)

    英文出处:Lukas Eder. 很多程序员视 SQL 为洪水猛兽.SQL 是一种为数不多的声明性语言,它的运行方式完全不同于我们所熟知的命令行语言.面向对象的程序语言.甚至是函数语言(尽管有些人认为 ...

  7. [SQL]SQL语言入门级教材_跟我学SQL(六)

    跟我学SQL:(一)数据查询 且不说你是否正在从事编程方面的工作或者不打算学习SQL,可事实上几乎每一位开发者最终都会遭遇它.你多半还用不着负责创建和维持某个,但你怎么着也该知道以下的一些有关的SQL ...

  8. 十步完全理解SQL(转载)

    1. SQL 是一种声明式语言 首先要把这个概念记在脑中:“声明”. SQL 语言是为计算机声明了一个你想从原始数据中获得什么样的结果的一个范例,而不是告诉计算机如何能够得到结果.这是不是很棒? (译 ...

  9. 经典SQL(sqlServer)

    一.基础 .说明:创建新表create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) .分组: ...

随机推荐

  1. Serializable 和Parcelable 详解

    序列化:为了保存在内存中的各种对象的状态,并可以把保存的对象的状态读出来 安卓中实现序列化的接口有两个,一个是serializable,一个是parcelable. 一.实现序列化: 1.是可以将对象 ...

  2. 20140702 赋值构造函数的形参为什么一定用引用。string类的赋值运算函数的注意点

    1.复制构造函数为什么一定要用引用,而不是用值 类名::复制构造函数(类名&引用名) 传递引用,可以避免复制,如果一个数据相当大的化,进行复制会浪费很多时间的. 类名::复制构造函数(类名 变 ...

  3. 自动化监控系统(二)连接数据库,创建app,添加model,同步数据库

    数据库我使用:mysql5.7 程序连接数据库的模块:pymysql 一.创建数据库: dbname:automatedmonitor 二.使用pip安装pymysql,这里我直接在pycharm上安 ...

  4. pytest_fixture--scope="session"

    import pytest@pytest.fixture(scope="session")def login(): print("\n输入用户名密码登陆! configt ...

  5. 判断字符串是否为JSON

    function isJSON(str) { if (typeof str == 'string') { try { var obj=JSON.parse(str); if(typeof obj == ...

  6. ubuntu apache配置检测及重启 nginx配置检测及重启

    apache 配置文件检测:sudo apachectl configtestapache 重启:sudo service apache2 restartnginx 配置文件检测:sudo nginx ...

  7. mfc中的_T

    mfc 中的字符串表示常用_T,意为text,定义为宏定义,可以方便的定义所有字符串为UNICODE(16位,长字符)或者ANSI(8位,短字符). 如果对于所有的字符串定义了_T并且定义了预处理标志 ...

  8. 使用 async await 封装微信小程序HTTP请求

    1. 编写将普通回调函数形式的方法转换为promise方法的promisic方法 // util.js const promisic = function (func) { return functi ...

  9. PHP 实现斐波那契数列

    使用循环实现 <?php $arr[1] = 1; for($i = 2;$i < 100;$i++) { $arr[$i] = $arr[$i-1] + $arr[$i-2]; } ec ...

  10. Annotation详解

    转自:http://www.doc88.com/p-995532241886.html 首先我们定义一个简单的注解 package com.qjy.annotation; import java.la ...