在西面内容中    car  和  nation   都表示 表名

1.无论 高级查询还是简单查询   都用  select.. from..语句   from  后面 加表名  可以使一张表也可以是多张表   表和表之间用逗号隔开

2. 简单查询和高级查询 不是 独立的   高级查询里面 同样可以用到 简单查询  

3.简单查询与复杂查询的联系: 简单查询里面 后面的条件 未知时 需要用另一个 查询来代替  这样就变成了高级查询

4.链接查询  和  联合查询的区别:1. 链接查询 连接两张以上的表  输出时 显示在一张表里 ; 联合查询 以另一张表为条件  只输出 一张表的内容 

                                               联合查询时 注意 相关查询  : 子查询  和父查询 的关系  父查询  的条件 时子查询  子查询的条件同样引用子查询

                                                2.相同点 关联在一起时 表示必须建立外键关系;

一.链接查询

1.链接查询 对结果集列的扩展

select*from  表名

查询多张表 查询结果 在一张表中显示

select * from info,nation  #形成笛卡尔积   缺点  查询速度慢(产生大量冗余数据)

select * from 表1名, 表1名where 表1名.列名=表2名.列名

select * from info,nation where info.code=nation.code

select info.code, info. name, birthday  from info,nation where info.code=nation.code

因为 birthday 在两张表里  没有重复  所以可以直接写  (比如简单查询里面)

select * from info join nation on info.nation=nation.code

二.联合查询   union

select 列名

union

select 列名

三.  子查询(查询效率高 重要)

父查询 : 外层查询

子查询: 里层查询

子查询 查询出的结果作为父查询的条件

  1. 无关子查询

子查询和父查询没有关系  子查询可以单独执行

父查询:select *from info where nation=()

子查询: select code from nation where name=’汉族’

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

②.查询系列名为‘宝马5系’的所有汽车信息
select * from car where brand=(select brand_code from brand where brand_name='宝马5系')

  1. 相关子查询

子查询在执行的时候 和父查询有关系   子查询不能单独执行

1.查询汽车表中 油耗小于平均油耗的所有汽车信息

父查询: 汽车的信息: select * from car where oil<平均油耗

子查询: 平均油耗;  select avg(oil) from car where brand =该系列

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

Mysql 基础 高级查询的更多相关文章

  1. 2-14-1 MySQL基础语句,查询语句

    一. SQL概述 结构化查询语言(Structured Query Language)简称SQL 1. 它是一种特殊目的的编程语言 2. 它还是一种数据库查询和程序设计语言 (用于存取数据以及查询.更 ...

  2. MYSQL SQL高级查询技巧

    1.UNION,EXCEPT,INTERSECT运算符 A,UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表. ...

  3. MySQL的高级查询

    高级查询 1.连接查询(对列的扩展) 第一种形式select * from Info,Nation #会形成笛卡尔积 select * from Info,Nation where Info.Nati ...

  4. MYSQL之高级查询

    PHP高级查询 分组查询.联合查询.连接查询.子查询 版权声明:本文为博主原创文章,未经博主允许不得转载.

  5. python数据库-MySQL数据库高级查询操作(51)

    一.什么是关系? 1.分析:有这么一组数据关于学生的数据 学号.姓名.年龄.住址.成绩.学科.学科(语文.数学.英语) 我们应该怎么去设计储存这些数据呢? 2.先考虑第一范式:列不可在拆分原则 这里面 ...

  6. MYSQL基础02(查询)

    查询是很大的一块,所以这里我只会写mysql的特点,就我目前使用的情况,MYSQL对标准SQL是比较支持,如果是新手的话,建议去w3school 学习标准SQL. 1.DUAL DUAL是一个虚拟表, ...

  7. mysql基础之查询缓存、存储引擎

    一.查询缓存 "查询缓存",就是将查询的结果缓存下载,如果查询语句完全相同,则直接返回缓存中的结果. 如果应用程序在某个场景中,需要经常执行大量的相同的查询,而且查询出的数据不会经 ...

  8. 关于Mysql的高级查询的操作

    前言:作为一名后端的程序员操作数据库的能力是我们基本的技能,而连表查询是我们的这个技能的关键点所在.注意这里顾明思义是对数据的查询的操作 (一).联合查询(关键字union/union all) 什么 ...

  9. MySQL 数据库 高级查询

    1.连接查询select * from Info,Nation #笛卡尔积select * from Info,Nation where Info.Nation=Nation.Code join on ...

随机推荐

  1. oracle 中的round()函数、null值,rownum

    round()函数:四舍五入函数 传回一个数值,该数值按照指定精度进行四舍五入运算的结果. 语法:round(number[,decimals]) Number:待处理的函数 Decimals:精度, ...

  2. Java实现zip压缩多个文件下载

    为了更好的演示,首先创建一个文件实体FileBean,包含了文件路径和文件名称: package com.javaweb.entity; import java.io.Serializable; /* ...

  3. 黑客攻防技术宝典Web实战篇(二)工具篇DVWA Web漏洞学习

    DVWA是一个学习Web漏洞的很好的工具. DVWA全程是Damn Vulnerable Web Application,还有一个跟它一样好的工具尽在http://www.360doc.com/con ...

  4. ThinkPHP 修改,删除数据,全部显示

    1,修改数据 //数据修改 function Update() { $model = D("info"); /* //1,数组方式 $attr = array( "Cod ...

  5. 如何在网页端启动WinForm 程序

    在逛淘宝或者使用QQ相关的产品的时候,比如淘宝我要联系店家点击旺旺图标的时候能够自动启动阿里旺旺进行聊天.之前很奇怪为什么网页端能够自动启动客户端程序,最近在开发吉特仓储管理系统的时候也遇到一个类似的 ...

  6. 0821找不到Command Line Utility的解决方案

    在Object-C基础教程中写到,要求选择Xcode中Mac OS X - Command Line Utility - Foundation Tool 但在Xcode4.5中Mac OS X中没有C ...

  7. vncserver和Ubuntu Xfce4远程桌面环境的配置,解决不显示图形界面

    vncserver和Ubuntu Xfce4远程桌面环境的配置 参考的http://blog.163.com/thinki_cao/blog/static/8394487520130301453180 ...

  8. iOS开发——源代码管理——git(分布式版本控制和集中式版本控制对比,git和SVN对比,git常用指令,搭建GitHub远程仓库,搭建oschina远程仓库 )

    一.git简介 什么是git? git是一款开源的分布式版本控制工具 在世界上所有的分布式版本控制工具中,git是最快.最简单.最流行的   git的起源 作者是Linux之父:Linus Bened ...

  9. 带你走进rsync的世界

    导读 Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件,也可以使用 Rsync 同步本地硬盘中的不同目录.rsync共有3种使用方 ...

  10. java项目导入IntelliJ IDEA

    (0)之所以有第0步,是因为第一次倒入失败,所以从删除上次倒入的数据开始- 开始删除数据. 启动Intelli J,点击右键删除上次的导入的项目 把配置拷贝到.m2文件夹下,并且删除上次下载的一些依赖 ...