zoukankan      html  css  js  c++  java
  • 10月17日下午MySQl数据库CRUD高级查询

    高级查询:
    1.连接查询        #适用于有外键关系的  没有任何关系没法用
    select * from Info,Nation  #同时查询这俩表并把两表每个数据相互组合,形成笛卡尔积

    select * from Info,Nation where Info.nation=Nation.code

    select Info.code,Info.name,Info.sex,Nation.name as '民族',Info.birthday from Info,Nation where Info.nation=Nation.code

    #关键字链接

    select * from Info join Nation on Info.nation=Nation.code    #join on 关键字

    2.联合查询    #列要一致
    select code,name from Info
    union
    select code,name from Nation

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

    (1)无关子查询:子查询执行的时候和父查询没有关系
    查民族为'汉族'的所有学生信息
    select * from Info where nation=        #父查询

    (

    select code from nation where name='汉族'    #子查询

    )

    查询生产厂商为'一汽大众'的所有汽车信息
    select * from car where brand=()
    select brand_code from brand where prod_code=()
    select prod_code from productor where prod_name='一汽大众'

    #合并演变
    select * from car where brand in(select brand_code from brand where prod_code=(select prod_code from productor where prod_name='一汽大众'))

    很确定的信息用‘=’ 不确定的用‘in’

    (2)相关子查询
    子查询在执行的时候需要用到父查询的内容

    查询汽车表中,汽车油耗小于该系列平均油耗的所有汽车信息

    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)

     

  • 相关阅读:
    Java中的break和continue关键字使用总结
    Java Foreach语句使用总结
    Android的线程(Thread)和服务(Service)的区别
    Android终止无限循环线程和程序退出时销毁线程
    IoC(Inversion of Control,控制反转)模式
    浅谈手机app测试注意点
    Android获取手机相关信息
    深搜
    5种排序方式
    一个简单的文本编辑器
  • 原文地址:https://www.cnblogs.com/xiaofox0018/p/5969927.html
Copyright © 2011-2022 走看看