一、创建数据库,创建表结构CREATE DATABASE Test_sub DEFAULT CHARACTER SET utf8;

USE Test_sub;

CREATE TABLE student(

id INT PRIMARY KEY AUTO_INCREMENT, -- 学号 id

NAME VARCHAR(10) -- 姓名 name

);

CREATE TABLE course(

id INT PRIMARY KEY AUTO_INCREMENT, -- 课程号 id

NAME VARCHAR(10) -- 课程名 name

);

CREATE TABLE sc(

student_id INT,

course_id INT,

PRIMARY KEY(student_id, course_id),

CONSTRAINT student_fk FOREIGN KEY(student_id) REFERENCES student(id) ON UPDATE CASCADE ON DELETE CASCADE,

CONSTRAINT course_fk FOREIGN KEY(course_id) REFERENCES course(id) ON UPDATE CASCADE ON DELETE CASCADE

);

二、插入数据INSERT INTO student(NAME) VALUES

('aaa'), ('bbb'), ('ccc'), ('ddd');

INSERT INTO course(NAME) VALUES

('课程_1'), ('课程_2'), ('课程_3'), ('课程_4');

INSERT INTO sc VALUES

(1, 1), (1, 2), (1, 3), (1, 4),

(2, 1), (2, 2), (2, 3),

(3, 1), (3, 2),

(4, 1);

三、操作

查询学生ddd未选的课程:使用左外连接,并查询为空的SELECT course.name

-- select *

FROM

course LEFT JOIN

(

SELECT *

FROM sc

WHERE sc.student_id =

(

SELECT id

FROM student

WHERE NAME = 'ddd'

-- limit 0,1

)

) AS sc_1

ON course.id = sc_1.course_id

WHERE sc_1.student_id IS NULL;

补:课本案例,实现左外、右外:

1.创建表结构:CREATE TABLE R(

A CHAR(2),

B CHAR(2),

C CHAR(2)

);

CREATE TABLE S(

B CHAR(2),

E CHAR(2)

);

2.插入值:INSERT INTO R VALUES

('a1', 'b1', '5'),

('a1', 'b2', '6'),

('a2', 'b3', '8'),

('a2', 'b4', '12');

INSERT INTO S VALUES

('b1', '3'),

('b2', '7'),

('b3', '10'),

('b3', '2'),

('b5', '2');

3.测试左外:SELECT *

FROM r

LEFT JOIN s ON r.b = s.b;

4.测试右外:SELECT *

FROM r

RIGHT JOIN s ON r.b = s.b;

mysql数据库查询减法计算_我对数据库关系代数中减法sql实现的思考:mysql脚本...相关推荐

  1. mysql实验四数据库查询和视图_实验四 数据库查询和视图.doc

    实验四 数据库查询和视图 测试过程:(实验中出现的问题.错误.解决方法) 问题一:新建查询,调试过程中出现提示无效行或列 问题二:新建查询,调试过程中出现第几行出现错误 解决办法:检查新建的查询,标点 ...

  2. mysql实验四数据库查询和视图_数据库-第四次实验报告-视图-t-sql语句

    实验十报告 创建视图 实验目的 1.掌握创建视图的SQL语句的用法. 2.掌握使用企业管管理器创建视图的方法. 3.掌握使用创建视图向导创建视图的方法. 4.掌握查看视图的系统存储过程的用法. 5.掌 ...

  3. mysql数据库查询源码_超简单php mysql数据库查询类

    本文章为你免费提供一款漂亮的超简单php mysql数据库查询类哦 */ class Config{ private $host; //主机名称:一般是localhost private $root; ...

  4. MySQL查询实验报告_实验报告数据库的基本查询'

    <实验报告数据库的基本查询'>由会员分享,可在线阅读,更多相关<实验报告数据库的基本查询'(5页珍藏版)>请在人人文库网上搜索. 1.一.实验目的:通过该实验掌握应用SQL 查 ...

  5. java mysql单库多表_第69节:Java中数据库的多表操作

    第69节:Java中数据库的多表操作 前言 学习数据库的多表操作,去电商行业做项目吧!!! 达叔,理工男,简书作者&全栈工程师,感性理性兼备的写作者,个人独立开发者,我相信你也可以!阅读他的文 ...

  6. mysql killed进程不结束_优秀的数据库产品——MySQL 云数据库服务

    作为一种低成本,高性能,高可靠性和开放源代码的数据库产品,MySQL已在Internet公司中广泛使用. 例如,淘宝有数千个MySQL服务器. 尽管NoSQL在过去两年中发展迅速,新产品层出不穷,但N ...

  7. Prometheus时序数据库-报警的计算 及 Prometheus时序数据库-数据的查询

    前言 在前面的文章中,笔者详细的阐述了Prometheus的数据插入存储查询等过程.但作为一个监控神器,报警计算功能是必不可少的.自然的Prometheus也提供了灵活强大的报警规则可以让我们自由去发 ...

  8. Mysql慢查询深入剖析_《深入精通Mysql(六)》系列之如何通过慢查询日志进行SQL分析和优化...

    深入精通Mysql系列其他文章推荐: 从本系列第一篇<深入精通Mysql(一)>系列之Mysql整体架构和sql执行过程我们就可以知道一条sql语句的执行过程会经过优化器进行优化. 优化器 ...

  9. mysql 按时间累计计算_精通MySQL索引背后的数据结构及算法原理

    本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,mysql支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree ...

最新文章

  1. JavaScript中Object的总结
  2. Flutter 动画全解析(动画四要素、动画组件、隐式动画组件原理等)
  3. Nginx和Tengine
  4. 满足什么条件的两个量才可以被分类?
  5. Spring TX源码分析
  6. 如何在servlet刚启动时候获取服务器根目录?
  7. SpringBoot之基础
  8. log4j之log4j2.xml使用
  9. Bash基础——快捷键
  10. Codeforces Round #442 (Div. 2) 877E - Danil and a Part-time Job dfs序+线段树
  11. Putty CentOS SSH 总是自动断开连接
  12. msvcr71.dll丢失的解决方法,哪种解决方法更好?
  13. Bugku misc 旋转跳跃wp
  14. Win10应用商店提示0x80070422解决方法
  15. debian 屌丝日记
  16. 代码坏的味道13:夸夸其谈未来性(Speculative Generality)
  17. android 英语词库
  18. 《增强现实:原理、算法与应用》读书笔记(1)基础矩阵、本质矩阵与单应性矩阵
  19. 学计算机专业选i5四核还是6核,计算机CPU的4核和6核有什么区别?
  20. 优派vx2480功能简评

热门文章

  1. python的实时音频传送_python – 使用Alexa传输音频的最简单示例
  2. java 读取mysql日志_如何在MySQL中查看日志文件?
  3. 计算机课平时成绩重要吗,大学计算机基础课程平时成绩评定方法的研究.pdf
  4. Java set的区别_Java Set集合详解及Set与List的区别
  5. visionpro 窗口显示文字
  6. Open3d之非阻塞可视化
  7. php 3des 兼容java,java版3des加密程序,可与php兼容
  8. oracle indices,Oracle PL/SQL INDICES
  9. 模型驱动开发 - 产品线架构的演进
  10. 线性筛法--------2013年1月2日