• CRUD操作二(查询——高级查询)


          高级查询:

                1.联合查询:为对行的扩展,

                      select 列名 from 表名 union select 列名 from 表名,

                            union表示联合;

                2.连接查询:为对行的扩展,会形成笛卡尔积,所以不适于数据量大的数据,会导致运行速度很慢,

                      select 表名1.列名1,表名1.列名2,表名2.列名3 from 表名1,表名2 where 表名1.列名4=表名2.列名5,

                      其中列名如果有重名的则必须在其前面加上表名,如果不重名则可以不加;

                      select 表名.列名,表名.列名,列名 from 表名 join 表名 on 表名.n列名=表名.列名,

                      join表示连接表,on后面加条件,如果在join前面加上left或right则表示以左边或者右边的表为主,该部分全部显示,如果没有则会自动补空;

                3.子查询:子查询的结果作为父查询的条件使用

                      无关子查询:子查询和父查询没有关系,子查询单独拿出来可以执行

                            例1:查找民族为“汉族”的所有人员信息

                            select * from info where nation =(select code from nation where name='汉族')

                            例2:查询所有厂商是“一汽大众”的汽车信息

                            select * from car where brand in(select brand_code from brand where prod_code in(select prod_code from Productor where prod_name='一汽大众')

                      相关子查询:子查询和父查询有关系,子查询不能单独拿出来执行

                            例:查询油耗低于该系列平均油耗的汽车信息

                            分析:

                            select * from car where oil<(该系列平均油耗)

                            select avg(oil) from car where brand='该系列'

                            答:

                            select * from car a where oil<(select avg(oil) from car b where b.brand=a.brand)

  • 相关阅读:
    [置顶] kubernetes资源类型--DaemonSet
    Docker容器的自动化监控实现
    [置顶] docker--基础镜像和dockerfile
    Target runtime Apache Tomcat v8.0 is not defined
    jeecg-org.jeecgframework.web.system.listener.InitListener
    tomcat:利用tomcat部署war包格式的项目
    更换jdk版本:jdk1.8更换为jdk1.7之后输入java -version还是出现1.8的版本号
    Maven项目下WEB-INFO目录下没有编译的classes文件
    解决maven web项目Cannot detect Web Project version. Please specify version of Web Project through...的错误
    如何提高maven的下载速度:享受一下mvn时飞的感觉
  • 原文地址:https://www.cnblogs.com/maoqiaoyu123/p/8176293.html
Copyright © 2020-2023  润新知