查有成绩的学生信息

分析:这道题可以用到in或者exists的用法,主要就是筛选出sc表中的sid,然后查询出student中存在上一步查询出来的sid的数据

IN()用法: 只执行一次,它查出B表中的所有id字段并缓存起来。之后,检查A表的id是否与B表中的id相等,如果相等则将A表的记录加入结果集中,直到遍历完A表的所有记录。在这里,我们的sc表数据量很少,但是当sc表数据很大的时候不适合IN()用法,因为它会吧sc表的数据全部遍历一边.

select * fromstudentwhere student.sid in (select sc.sid from sc);

查询结果;

+------+--------+---------------------+------+

| SId | Sname | Sage | Ssex |

+------+--------+---------------------+------+

| 01 | 赵雷 | 1990-01-01 00:00:00 | 男 |

| 02 | 钱电 | 1990-12-21 00:00:00 | 男 |

| 03 | 孙风 | 1990-12-20 00:00:00 | 男 |

| 04 | 李云 | 1990-12-06 00:00:00 | 男 |

| 05 | 周梅 | 1991-12-01 00:00:00 | 女 |

| 06 | 吴兰 | 1992-01-01 00:00:00 | 女 |

| 07 | 郑竹 | 1989-01-01 00:00:00 | 女 |

+------+--------+---------------------+------+

EXISTS()用法: exists()会执行A.length次,它并不缓存exists()结果集,因为exists()结果集的内容并不重要,重要的是其内查询语句的结果集空或者非空,空则返回false,非空则返回true,当B表比A表数据大时适合使用exists(),因为它没有那么多遍历操作,只需要再执行一次查询就行.

select * fromstudentwhere exists (select sc.sid from sc where student.sid = sc.sid);

查询结果:

+------+--------+---------------------+------+

| SId | Sname | Sage | Ssex |

+------+--------+---------------------+------+

| 01 | 赵雷 | 1990-01-01 00:00:00 | 男 |

| 02 | 钱电 | 1990-12-21 00:00:00 | 男 |

| 03 | 孙风 | 1990-12-20 00:00:00 | 男 |

| 04 | 李云 | 1990-12-06 00:00:00 | 男 |

| 05 | 周梅 | 1991-12-01 00:00:00 | 女 |

| 06 | 吴兰 | 1992-01-01 00:00:00 | 女 |

| 07 | 郑竹 | 1989-01-01 00:00:00 | 女 |

+------+--------+---------------------+------+

这道题做完也可以得到一个结论:

IN()适合B表比A表数据小的情况;

EXISTS()适合B表比A表数据大的情况

以上

mysql4.1数据库_MySQL数据库练习-4.1相关推荐

  1. mysql新加不了数据库_MySQL数据库之mysql增加新用户无法登陆解决方法

    本文主要向大家介绍了MySQL数据库之mysql增加新用户无法登陆解决方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 今天安装openstack folsom版本,安装完m ...

  2. mysql命令导出数据库_MYSQL 数据库导入导出命令

    在不同操作系统或MySQL版本情况下,直接拷贝文件的方法可能会有不兼容的情况发生.所以一般推荐用SQL脚本形式导入.下面分别介绍两种方法. MySQL命令行导出数据库 1,进入MySQL目录下的bin ...

  3. mysql通过局域网访问数据库_MySQL数据库之局域网内访问同一个mysql数据库

    本文主要向大家介绍了MySQL数据库之局域网内访问同一个mysql数据库 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 局域网内访问同一个mysql数据库. 一.运行cmd,输 ...

  4. yum删除mysql数据库_MySQL数据库之Centos中彻底删除Mysql(rpm、yum安装的情况)

    本文主要向大家介绍了MySQL数据库之Centos中彻底删除Mysql(rpm.yum安装的情况) ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 我用的centos6,mysq ...

  5. mysql test数据库_mysql数据库test

    Re介绍一下CentOS下MySQL数据库的安装与配置方法 MySQL数据库配置的具体步骤: 1.编辑MySQL的配置文件,使用vi /etc/my.cnf [root@sample ~]# vi / ...

  6. mysql利用binlog删除数据库_MySQL数据库之mysql手动删除BINLOG的方法

    本文主要向大家介绍了MySQL数据库之mysql手动删除BINLOG的方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 在MySQL中执行以下命令: 复制代码 代码如下: P ...

  7. 我的世界使用mysql数据库_mysql数据库常用命令笔记

    连接数据库:mysql -h localhost -u root -p 000000 退出:exit;    \q;    quit; SET foreign_key_checks = 0; 禁用外键 ...

  8. mysql数据库状态如何监控数据库_MySQL数据库之zabbix3.2监控MYSQL状态

    本文主要向大家介绍了MySQL数据库之zabbix3.2监控MYSQL状态 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 一.概述 zabbix自带的MySQL插件来监控mys ...

  9. mysql 创建相同数据库_mysql数据库找出相同数据MySQL常用操作

    一.MYSQL的命令行模式的设置:桌面->我的电脑->属性->环境变量->新建-> Path=";pathmysqlbin;"其中path为MySQL ...

  10. 怎么进入命令行操作mysql数据库_MySQL数据库之如何用命令行进入mysql具体操作步骤...

    本文主要向大家介绍了MySQL数据库之如何用命令行进入mysql具体操作步骤 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 如何用命令行进入mysql?最近无意在论坛上看到有朋 ...

最新文章

  1. Java深入了解String对象
  2. [转] linux下.tar .gz .tgz .bz2 .bz等解、压包命令详解
  3. 「Swift」笔记第二章 Basic Operators
  4. python众数问题给定含有n个元素的多重集合s_2-1 问题描述:给定含有n个元素的多重集合S - 下载 - 搜珍网...
  5. 低压抽屉柜常见故障处理方法_低压配电设备常见故障分析,处理办法介绍
  6. 如何利用开源项目,帮助企业免费搭建小程序官网
  7. VERP中建立集合collection
  8. SQL学习笔记四之MySQL数据操作
  9. Thymeleaf-extras-Spring Security 权限控制
  10. sop8封装尺寸图_IC封装原理及功能特性汇总
  11. 对象转JSON首字母大写
  12. SD卡驱动-基础知识
  13. 中国传统四大菜系之:淮扬菜
  14. RecordCount
  15. GitHub下载提速
  16. dns劫持教您dns被劫持如何修复、dns劫持如何修复
  17. 搭配Online:瑞幸昔日“盟友”神州优车,与北汽集团达成战略合作
  18. 关于游戏打击感的帖子[转]
  19. vray物理相机具体参数
  20. jit和jitx区别_JIT模式

热门文章

  1. C# 中的委托和事件 (转)
  2. python 列表生成式 字典生成式
  3. 无计算机权限无法更改时间,Win10电脑没权限不允许更改时间怎么办?Win10获取更改时间权限的方法...
  4. Android Vendor Test Suite (VTS) 作用及测试方法
  5. Linux内核之capabilities能力
  6. Glib2之spec编译打包rpm(九)
  7. iOS平台一套完善的Crash Report解决方案
  8. python之heapq
  9. Linux网络配置与远程连接
  10. 代码证年审 年报 附文档 短消息类服务接入代码 电信业务资源综合管理系统用户手册-码号年报 (码号使用单位)