1. 子查询的返回值为单列单值
例1:查询与学号(sNo)为“1308013101”的同学在同一个班级的学生名单。

代码展示

SELECT *
FROM student
WHERE deptName = (
SELECT deptName
FROM student
WHERE sNo = "1308013101");```

例2:查询选修课程编号(cNo)为“01001”的课程且成绩超过该课程平均分的学生的学号、姓名、班级、课程名称和成绩。

SELECT sNo,sName,deptName,cName,grade
FROM course JOIN score ON course.id = score.cId
JOIN student ON student.id = score.sId
WHERE cNo ="01001" AND grade > (
SELECT AVG(grade)
FROM course JOIN score ON course.id = score.cId
WHERE cNo ="01001"
)

这道题代码不是很难,比较困难的是分析题目,和条件比对。

2. 子查询的返回值为单列多值
例1:查询选修课程编号(cNo)为“01001”的课程的学生名单。

SELECT *
FROM student
WHERE id IN
(SELECT sId
FROM score JOIN course ON score.cId = course.id
WHERE cNo="01001");

例2:查询学号为“1308013101”的学生选修的课程信息。

SELECT*FROM course
WHERE id IN(SELECT cId FROM score
JOIN student ON student.id=score.sId AND sNo='1308013101');

例3:查询没有选修课程的女生名单。

SELECT*FROM student
WHERE sex='女'
AND id NOT IN(SELECT sId FROM score);

例4:查询“软件131“班中比”网络131”班中所有学生年龄都要大的学生信息。

SELECT*
FROM student
WHERE deptName = "软件131" AND birthday <(
SELECT MIN(birthday)
FROM student
WHERE deptName = "网络131"
);
SELECT*
FROM student
WHERE deptName = "软件131" AND birthday < ALL(
SELECT birthday
FROM student
WHERE deptName = "网络131"
);

例5:查询非“网络131“班中比”网络131”班中任意一个学生年龄大的学生信息。

SELECT*
FROM student
WHERE deptName != "网络131" AND birthday < (
SELECT MAX(birthday)
FROM student
WHERE deptName = "网络131"
);

. 子查询的返回值为多列数据
例1:查询选修课程的女生名单,使用关键字EXISTS。

SELECT *
FROM student
WHERE sex = "女" AND EXISTS(
SELECT *
FROM score
WHERE student.id =score.sId);

五、 带子查询的数据更新

例1:创建数据表tempStudent,包含5个字段:学生ID(id)、学号(stuNo)、姓名(stuName)性别(sex)和班级名称(deptName);查询“网络131”班的学生记录,将查询结果插入到tempStudent表中。

CREATE TABLE tempStudent(
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
stuNo CHAR(10) NOT NULL,
stuName VARCHAR(20) NOT NULL,
sex CHAR(2) NOT NULL,
deptName VARCHAR(30) NOT NULL,
PRIMARY KEY(id)
);
INSERT INTO tempStudent
SELECT id,sNo,sName,sex,deptName
FROM student
WHERE deptName ="网络131";

例2:将“数据结构”课程的成绩统一减去5分。

UPDATE score
SET grade = grade - 5
WHERE cId =(
SELECT id
FROM course
WHERE cName ="数据结构"
);

例3:将“机电131”班的学生成绩记录全部删除。

DELETE FROM score
WHERE   sId IN
(SELECT id
FROM student
WHERE deptName = "机电131")

MySQL数据库应用与管理相关推荐

  1. 详解:MySQL数据库的权限管理和运维实操

    详解:MySQL数据库的权限管理 一.MYSQL权限简介 关于mysql的权限简单的理解就是mysql允许你做你权利以内的事情,不可以越界.比如只允许你执行select操作,那么你就不能执行updat ...

  2. Mysql数据库root密码管理四法

    Mysql数据库root密码管理四法 方法一: 管理员可以在系统命令行中使用mysqladmin命令设置mysql用户的密码. 使用mysqladmin设置密码的命令语法如下: mysqladmin ...

  3. Linux全攻略--MySQL数据库配置与管理

    MySQL是一种精巧的,多用户和多线程的中小型SQL数据库系统,由一个服务器守护进程mysqld和很多不同的客户程序和库组成.现在形成了一个"Linux+Apache+PHP+MySQL&q ...

  4. MySQL数据库的账户管理

    账户管理 在生产环境下操作数据库时,绝对不可以使用root账户连接,而是创建特定的账户,授予这个账户特定的操作权限,然后连接进行操作,主要的操作就是数据的crud MySQL账户体系:根据账户所具有的 ...

  5. mysql 数据库的基本管理

    ###### 1.数据库的介绍 ###### 1.什么是数据库 数据库就是个高级的表格软件 2.常见数据库 Mysql Oracle    mongodb  db2 sqlite sqlserver ...

  6. 4、mysql数据库的权限管理

    权限管理指的是对试图连接和操作数据库服务器的用户进行访问控制 关于权限管理的一些sql实例如下: -- 首先通过cmd窗口连接mysql服务器 mysql -u root -p *******-- m ...

  7. mysql linux附加数据库文件夹,Linux全攻略--MySQL数据库配置与管理

    MySQL是一种精巧的,多用户和多线程的中小型SQL数据库系统,由一个服务器守护进程mysqld和很多不同的客户程序和库组成.现在形成了一个"Linux+Apache+PHP+MySQL&q ...

  8. MySQL 数据库图形化管理界面应用种草之 Navicat Premium 如何使用

    文章目录 前言 一.工具/原料 二.安装和建立连接 2.1.连接本地数据库 2.2.连接远程数据库 三.Navicat Premium 的"增删改查"功能操作 3.1.数据库操作( ...

  9. MySQL数据库的基本管理操作

    目录 引言: 一.数据库日志 二.数据库管理 2.1进入数据库 2.2退出数据库 2.3查看数据库信息 2.4 查看数据库中包含的表信息 2.5查看数据表的结构(字段) 2.6 常用的数据类型 2.7 ...

  10. MySQL数据库web客户端管理工具软件

    TreeSoft数据库管理软件使用JAVA开发,采用稳定通用的springMVC+JDBC架构,实现基于web方式对 MySQL,Oracle,PostgreSQL, DB2 ,Cache ,达梦DM ...

最新文章

  1. jquery easy ui 简单字段选择搜索实现
  2. NFS服务器是什么?(Network File System 网络文件系统)(远程主机间 mount 挂载目录)(ubuntu:nfs-kernel-server)
  3. chrome调试js的小技巧
  4. MapReduce的工作原理,详细解释WordCount程序
  5. 前端学习(3159):react-hello-react之一个简单的helloworld
  6. 编码 括号_Java编码规范整理汇总
  7. Oracle分页小谈
  8. html5图片比例控制,按比例调整图像大小以适应HTML5画布
  9. JDK,JRE和JVM之间的区别
  10. OpenCV-基本图形绘制(圆、矩形、椭圆)
  11. Win10 PSCAD4.5安装心路历程Mark
  12. 基础知识:计算机网络--《趣谈网络协议》读书笔记
  13. mathtype安装教程
  14. 软件配置管理的作用?软件配置包括什么?
  15. 虚拟机VMware插入U盘操作系统崩溃死机的解决方法
  16. 个人收集资料分享(电子、计算机相关)
  17. 原生安卓开发!最详细的解释小白也能听懂,全网独家首发!
  18. MongoDB学习总结四(详细记录使用MongoTemplate操作MongoDB数据库)
  19. 青青子佩(朋友写给我的)
  20. docker目录 /var/lib/docker/containers 日志清理

热门文章

  1. Java程序员面试笔试宝典
  2. 基于Jsp+Servlet的户籍管理系统(JavaWeb毕业设计、课程设计)
  3. Linux C哲学家吃饭问题
  4. DEBUG系列二:ConfigureDebuggerLayer_SAP刘梦_新浪博客
  5. webots和ros2笔记05-新建
  6. view_video.php,Android_Android使用VideoView播放本地视频和网络视频的方法,1、效果展示2、布局文件- phpStudy...
  7. 从单个系统到云翼一体化支撑,京东云DevOps推进中的一波三折
  8. 比基尼女郎助威世界杯
  9. CSDN第11期周赛
  10. 如何通过python爬股票接口获取证券交易日?