【MySQL——子查询及相关练习】

文章目录

  • 子查询
    • (一)查询例子
    • (二)查询练习

子查询

  • 子查询可以理解为,在一个SQL语句A(SELECT、INSERT、UPDATE等)中嵌入一个查询语句B,作为执行的条件或查询的数据源(代替FROM后的数据表),那么B就是子查询语句。

(一)查询例子

  • 查询商品类别为“零食”的商品ID、名称、价格及销售量
    SELECT gdID,gdName,gdPrice,gdSaleQty FROM goods WHERE tid=2;
    SELECT tid FROM goodstype WHERE tName=“零食”;

  • 合在一起
    SELECT gdID,gdName,gdPrice,gdSaleQty FROM goods WHERE tid=(SELECT tid FROM goodstype WHERE tName=“零食”)

  • 在线商城数据库中查询库存超过1000的商品类别
    SELECT tID FROM goods WHERE gdQuantity>1000;
    SELECT tName FROM goodstype WHERE tID in (1,2);

  • 合在一起
    SELECT tName FROM goodstype WHERE tID in (SELECT tID FROM goods WHERE gdQuantity>1000);

  • 查询销售量最大的商品tid是属于哪类商品(合并式)
    SELECT tName FROM goodstype WHERE tID=(SELECT tID FROM goods ORDER BY gdSaleQty DESC LIMIT 1);

(二)查询练习

  • 插入连接studb数据库
    【MySQL——子查询及相关练习】_第1张图片

  • stucourse
    【MySQL——子查询及相关练习】_第2张图片

  • stuinfo
    【MySQL——子查询及相关练习】_第3张图片

  • stumarks
    【MySQL——子查询及相关练习】_第4张图片

  • 利用子查询查询选修了课程的学生的基本信息。
    SELECT * FROM stuinfo WHERE stuno in(SELECT stuno FROM stumarks);

  • 利用子查询查询没有选修课程的学生的基本信息。
    SELECT DISTINCT * FROM stuinfo WHERE stuno not in(SELECT stuno FROM stumarks);

  • 查询选修了“高等数学”这门课的学生的基本信息。
    SELECT * FROM stuinfo WHERE stuno in(SELECT stuno FROM stumarks WHERE cno=0005);

  • 利用子查询查询成绩最高的选课记录。
    SELECT cname FROM stucourse WHERE cno=(SELECT cno FROM stumarks ORDER BY stuscore DESC LIMIT 1);

欢迎指正!

你可能感兴趣的:(MySQL课程学习,大数据,mysql)