连接查询: 将多张表(>=2)进行记录的连接(按照某个指定的条件进行数据拼接)。

连接查询的意义: 在用户查看数据的时候,需要显示的数据来自多张表.

连接查询: join, 使用方式: 左表 join 右表;左表: 在join关键字左边的表;右表: 在join关键字右边的表

连接查询分类:SQL中将连接查询分成四类: 内连接,外连接,自然连接和交叉连接

交叉连接:交叉连接: cross join, 从一张表中循环取出每一条记录, 每条记录都去另外一张表进行匹配: 匹配一定保留(没有条件匹配), 而连接本身字段就会增加(保留),最终形成的结果叫做: 笛卡尔积。但是基本不会用到(反正我是从没有用过)

基本语法: 左表 cross join 右表 或 from 左表,右表;

内连接: [inner] join, 从左表中取出每一条记录,去右表中与所有的记录进行匹配: 匹配必须是某个条件在左表中与右表中相同最终才会保留结果,否则不保留.

基本语法:左表 [inner] join 右表 on 左表.字段 = 右表.字段; on表示连接条件: 条件字段就是代表相同的业务含义(如my_student.c_id和my_class.id)

字段别名以及表别名的使用: 在查询数据的时候,不同表有同名字段,这个时候需要加上表名才能区分, 而表名太长, 通常可以使用别名.

内连接可以没有连接条件: 没有on之后的内容,这个时候系统会保留所有结果(笛卡尔积)

内连接还可以使用where代替on关键字,但效率差很多。

外连接: 以某张表为主,取出里面的所有记录, 然后每条与另外一张表进行连接: 不管能不能匹配上条件,最终都会保留: 能匹配,正确保留; 不能匹配,其他表的字段都置空NULL.

外连接分为两种: 是以某张表为主: 有主表

left join: 左外连接(左连接), 以左表为主表

right join: 右外连接(右连接), 以右表为主表

基本语法: 左表 left/right join 右表 on 左表.字段 = 右表.字段;

自然连接:略(基本不用自然连接)

联合查询

联合查询:将多次查询(多条select语句), 在记录上进行拼接(字段不会增加)

基本语法:多条select语句构成: 每一条select语句获取的字段数必须严格一致(但是字段类型无关)

Select 语句1

Union [union选项]

Select语句2...

Union选项: 与select选项一样有两个

All: 保留所有(不管重复)

Distinct: 去重(整个重复): 默认的

联合查询只要求字段一样, 跟数据类型无关

联合查询的意义:

1. 查询同一张表,但是需求不同: 如查询学生信息, 男生身高升序, 女生身高降序.

2. 多表查询: 多张表的结构是完全一样的,保存的数据(结构)也是一样的.

Order by使用

在联合查询中: order by不能直接使用,需要对查询语句使用括号才行;另外,要orderby生效: 必须搭配limit: limit使用限定的最大数即可.

子查询

子查询: 查询是在某个查询结果之上进行的.(一条select语句内部包含了另外一条select语句).

子查询分类

子查询有两种分类方式: 按位置分类;和按结果分类

按位置分类: 子查询(select语句)在外部查询(select语句)中出现的位置

From子查询: 子查询跟在from之后

Where子查询: 子查询出现where条件中

Exists子查询: 子查询出现在exists里面

按结果分类: 根据子查询得到的数据进行分类(理论上讲任何一个查询得到的结果都可以理解为二维表)

标量子查询: 子查询得到的结果是一行一列

列子查询: 子查询得到的结果是一列多行

行子查询: 子查询得到的结果是多列一行(多行多列) (1,2,3出现的位置都是在where之后)

表子查询: 子查询得到的结果是多行多列(出现的位置是在from之后)

标量子查询

需求: 找到分类为科技的所有文章标题

列子查询

这个时候我就想起以前面试的情形,当时有一道题,给我一个表,让我找出语文和数学都及格人的名字。表是这样的:

行子查询

行子查询: 返回的结果可以是多行多列(一行多列)

需求:找出年龄最大且身高最高的人

方案一:

方案二:

表子查询

表子查询: 子查询返回的结果是多行多列的二维表: 子查询返回的结果是当做二维表来使用

需求:找出每个人最好的成绩

Exists子查询

Exists: 是否存在的意思, exists子查询就是用来判断某些条件是否满足(跨表), exists是接在where之后: exists返回的结果只有0和1.

需求:如果存在的话身高大于2米的人,列出表中所有数据

MySQL数据高级查询之连接查询、联合查询、子查询

mysql关联查询关键字_MySQL数据高级查询之连接查询、联合查询、子查询相关推荐

  1. mysql sql 连接查询语句_Mysql——sql数据库中的连接查询

    1.1.1   交叉连接(CROSS JOIN) 交叉连接(CROSS JOIN):有两种,显式的和隐式的,不带ON子句,返回的是两表的乘积,也叫笛卡尔积. 例如:下面的语句1和语句2的结果是相同的. ...

  2. mysql数据库多表查询(内连接,外连接,自连接,子查询及案例分析)

    mysql数据库多表查询 之前接触的项目或者自己涉及的部分对于多表查询的使用都比较的少,常常是自己更具案例进行学习,最近见到的比较的多,所以今天就好好的总结一下,为下一步学习做准备! 1.多表查询关系 ...

  3. power bulider 9.0 如何将sql语句查询的值返回给变量_SQL—你应该知道的子查询

    (本文结合<SQL基础教程>整理) 文章结构 视图 子查询 变量子查询 关联子查询 如何用SQL解决业务问题 常见函数 视图 视图的定义: 视图究竟是什么呢?如果用一句话概述的话,就是&q ...

  4. mysql数据库查询游戏_MySQL数据库高级查询和多表查询

    MySQL多表查询 添加练习表 -- 用户表(user) CREATE TABLE `user`( `id` INT AUTO_INCREMENT PRIMARY KEY COMMENT '用户id( ...

  5. 从mysql中查询关键字_mysql中查询常用的关键字

    最简单的查询: 这里需要注意的是where子句中条件过滤使用到的关键字,比如用到逻辑运算符like中的'%'(匹配一个或多个字符)和'_'(仅匹配一个)等. distinct关键字 这个关键字,主要用 ...

  6. 【数据库1】mysql,DDL/DML,DQL,外键约束,多表/子查询,事务,登陆,连接池,jdbc,redis,crontab,ftp,oracle,数据交换/存储/收集

    文章目录 1.mysql安装:存储:集合(内存:临时),IO流(硬盘:持久化) 1.1 服务端:双击mysql-installer-community-5.6.22.0.msi 1.2 客户端:命令行 ...

  7. mysql内连接查询原理_MySQL全面瓦解12:连接查询的原理和应用

    概述 MySQL最强大的功能之一就是能在数据检索的执行中连接(join)表.大部分的单表数据查询并不能满足我们的需求,这时候我们就需要连接一个或者多个表,并通过一些条件过滤筛选出我们需要的数据. 了解 ...

  8. mysql view 子查询_mysql – View的SELECT包含FROM子句中的子查询

    我有两个表,我需要创建一个视图.表格是: credit_orders(id, client_id, number_of_credits, payment_status) credit_usage(id ...

  9. MySQL 基础 -- 多表关系(一对一、1对多(多对一)、多对多)、多表查询(内连接、外连接、自连接、子查询(嵌套查询)、联合查询 union)、笛卡儿积

    文章目录 1. 多表关系 1.1 一对多 1.2 多对多 1.3 一对一 2. 多表查询 2.1 数据准备 2.2 概述 2.3 笛卡尔积 2.4 多表查询分类 3. 内连接 3.1 示例1:查询每一 ...

  10. 【Flask】ORM高级操作之分组、过滤和子查询

    一.数据准备:配置数据库.创建数据库引擎.创建基类.创建session from sqlalchemy import create_engine, Column, Integer, ForeignKe ...

最新文章

  1. postman接口测试系列:接口参数化和参数的传递
  2. iscsi没有可用于使用快速连接登陆的目标_iSCSI的基本架构及操作简介
  3. 对于随机过程方面书籍的评论(转贴)
  4. python中的__new__和__init__
  5. Windows SDK编程之一 窗口示例程序
  6. java下载json需要的包_jenkins 获取插件,下载插件提速,配置国内镜像
  7. 03MFC的ODBC类简介
  8. 史上最详细的Linux网卡ifcfg,史上最详细的Linux网卡ifcfg-eth0配置详解
  9. 软件测试--selenium脚本编写注意点(一)
  10. spark 源码分析之八--Spark RPC剖析之TransportContext和TransportClientFactory剖析
  11. mt4交易系统源码_mt4周边:一款免费的数据下载工具
  12. HALCON 20.11:深度学习笔记(6)---有监督训练
  13. 商城系统使用redis做什么_B2B2C商城系统与B2C商城系统有什么区别呢?企业该如何选择?...
  14. 迎建国七十周年,Linux厂商巡礼之一铭软件
  15. 如何保证消息不被重复消费【[如何保证消息消费的幂等性】?
  16. 数学建模学习1.18——模糊综合评价模型
  17. AJAX框架眼镜穿搭夏天,夏日太阳镜别乱戴,时髦型男必备这几款太阳镜,防晒帅气兼具...
  18. 根据计算机配置设置bios,设置BIOS让计算机每天都按时自动开机
  19. 华为应用市场,浏览器PC版
  20. 手动修改Spyder的背景颜色(手动配色)

热门文章

  1. Delphi视频教程
  2. IDEA添加外部插件-yuicompressor压缩js/css 笔记
  3. quartz spring配置实例代码demo下载
  4. 小米的过去、现在和未来
  5. 闪迪内存卡软件测试,闪迪存储卡怎么样
  6. 用c语言写图书管理系统设计,C语言图书管理系统设计及实现.doc
  7. 操作系统课程设计之磁盘调度系统的设计与实现c语言
  8. ios 输入法扩展_iOS8、iOS9都可用的原生输入法扩展词库(搜狗词库)
  9. 术业专攻丨认识系泊系统
  10. 新手菜鸟防***必备知识