首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

一、连接查询 1、交叉连接:CROSS JOIN 把表A和表B的数据进行一个NM的组合,即笛卡尔积。如本例会产生44=16条记录,在开发过程中我们肯定是要过滤数据,所以这种很少用。..., 跟数据类型无关 SELECT * FROM t1 UNION all SELECT * FROM t2 联合查询的意义: 查询同一张表,但是需求不同: 如查询学生信息, 男生身高升序, 女生身高降序...多表查询: 多张表的结构是完全一样的,保存的数据(结构)也是一样的....子查询: 子查询出现where条件中 Exists子查询: 子查询出现在exists里面 按结果分类: 根据子查询得到的数据进行分类(理论上讲任何一个查询得到的结果都可以理解为二维表) 标量子查询...FROM t11 WHERE name='科技') 列子查询 行子查询 表子查询 Exists子查询 参考文章:MySQL数据高级查询之连接查询、联合查询、子查询 发布者:全栈程序员栈长,转载请注明出处

6.2K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    pymysql查询数据

    我们可以用fetchone来获取一行数据,也可以用fetchall来获取多条数据查询数据时,我们可以把指针设置为DictCursor,那么返回的就是一个字典,方便处理。...注意的是,fetchone和fetchall都是返回当前指针位置以后的数据,也就是说,不会返回指针位置之前的数据。 我们可以通过scroll方法来移动指针。...scroll方法有两个模式:absolute和relative 显然absolute模式就是以绝对位置来移动指针,0是第一条数据的位置。...#查询数据 import pprint import pymysql host = 'localhost' username = 'test' password = 'test' db_name =...'test' connect = pymysql.connect(host, username, password, db_name, charset='utf8') #获取游标对象查询返回字典 cursor

    1.1K20

    数据查询

    数据查询 ---- 单表查询 ---- select 字段名[,(字段名…)] from 表名; 字段别名 select 字段1 as 别名,字段2 别名,... from表名; 消除重复行 selectdistinct...,做数据统计功能 分组后如果需要设置条件要使用 having 指定 多表查询 ---- 普通多表查询 select 表名.字段 ... from 表名1,表名2......条件运算符(select 查询) 子查询有三种: 标量子查询 ,子查询 返回结果 为单行单列的值 列级子查询 ,子查询 返回结果 为多行一列的值 行级子查询 ,子查询 返回结果 为一行多列的值 自连接...(了解) 由于数据的特殊性,表示不同类型的数据保存到了同一张表中。...在查询数据时,需要做多表连接时,连接的多个表实际是同一张表,但是在表中取的数据是不同类型的数据

    82630

    3.4 《数据库系统概论》之数据查询—SELECT(单表查询、连接查询、嵌套查询、集合查询、多表查询

    文章目录 0.前言 1.思维导图 2.Student/SC/Course表数据及结构 3.SELECT语句的一般格式 4.单表查询 (1)选择表中的 ① 查询指定列 ② 查询全部列 ③ 查询经过计算的值...7.集合查询 (1) 集合操作的种类 (2)集合操作举例 ---- 0.前言 本篇文章是对《数据库系统概论》王珊老师主编的数据查询SELECT部分做的笔记,采用的是SQL Sever 数据库。...书上的结果和在机器上的结果可能略有不同,可能是数据库版本或软件显示的问题,或者是教材需要升级改版了。...*/ 执行过程: 关系数据库管理系统(Relational Database Management System:RDBMS) 1.RDBMS执行此查询时,首先处理子查询,找出 CS系中所有学生的年龄...谓词 存在量词 ∃ 带有EXISTS谓词的子查询不返回任何数据,只产生逻辑真值“true”或逻辑假值“false”。

    5.9K20

    SQL 数据查询(4)—— 嵌套查询

    文章目录 带有IN谓词的子查询 带有比较运算符的子查询 带有ANY(SOME)或ALL谓词的子查询 带有EXISTS谓词的子查询 型如下面这样的就是嵌套查询: SELECT Sname FROM Student...)查询步骤是: 从外层查询中选出一个SC的元组的x,将元组x的Sno的值在传到内层查询 执行内层循环,将得到的值代替内层查询 执行外层查询 带有ANY(SOME)或ALL谓词的子查询 >ANY 大于子查询结果中的某个值...>ALL 大于子查询结果中的所有值 <ANY 小于子查询结果中的某个值 <ALL 小于子查询结果中的所有值 >=ANY 大于等于子查询结果中的某个值 >=ALL 大于等于子查询结果中的所有值 <=ANY...小于等于子查询结果中的某个值 <=ALL 小于等于子查询结果中的所有值 =ANY 等于子查询结果中的某个值 =ALL 等于子查询结果中的所有值(通常没有实际意义) !...效率高 带有EXISTS谓词的子查询 EXISTS代表存在量词,带有EXISTS的子查询不返回任何数据,只产生true和false两个值 例3.60:查询所有选修了1号课程的学生姓名 SELECT Sname

    1.3K20

    数据库-多表查询-连接查询

    数据库-多表查询-连接查询 同时查询多张表获取到需要的数据 比如:我们想查询到开发部有多少人,需要将部门表和员工表同时进行查询 多表查询的分类: 准备数据 -- 创建部门表 create table...笛卡尔积 概念 左表的每条数据和右表的每条数据组合成新的数据 如:查询员工表和部门表,查询数据如下,结果就是笛卡尔积的数据 select * from emp,dept; 1566353721827...使用内连接查询: 无法查询出 dept_id 为 null 的 沙僧 数据,此时就要以 右表 emp 为准,使用右连接查询所有数据 mysql> select * from dept d inner join...使用右外连接查询: 基于右连接查询,不管 emp 的数据有没有关联 dept_id, 也可以查询出右表中的所有数据 mysql> select * from dept d right join emp...联合查询 Union (Mysql 支持) Mysql 为了查询所有表的关联数据,可以将左右连接的查询 联合一起来执行。

    13.5K20

    数据库,单表查询,多表查询,子查询

    数据库查找方式进阶 一.单表查询 1.查看表单选择段落 1.disinct 所有内容去重:select disinct * from 表名称; 指定字段去重:select disinct 字段 from...连接表示具有相同字段A以及相同字段B进行分组 having 判断内容 注意: having 必须分组后才能使用 分组后只能用having group_concat(字段),可以把由于分组后造成的折叠内的数据全部显示...限制显示记录 对于单页表操作 limit start count 其中start可以不填,不填默认从0开始,0是第一天记录 start表示起始位置,count 表示记录的数量 对于多页操作 分页原理:先查询数据条数...表1,表2 他会把多个表每行与另外个表统统匹配上,其中会有一些脏数据,我们可以用里面值的关系进行连接 2.内连接查询 其本质就是笛卡尔积查询 区别是把,变成 join 且不能用where,要先用on根据里面值的关系拼接好了再用...by dept_id having avg(age) > 25); "多表查询方式: 先把数据拼接到一起 在加以筛选" select dept.name from emp inner join dept

    5.3K40

    MySQL数据库——多表查询之内连接查询、外连接查询、子查询

    1 多表查询 1.1 多表查询概述 多表查询就是从多个表中进行数据查询操作,语法:select  列名列表 from 表名的列表  where......】:SELECT *FROM dept,emp; 从查询结果中可以看到共计15条数据,这个查询结果叫做笛卡尔积,如查询2个表,每个表中的数据条数分别为A,B,则查询的结果条数就是A*B;但是看如下结果,...1.2 多表查询的分类 1.2.1 内连接查询 1)隐式内连接:使用where条件来消除无用的数据; -- 查询所有员工信息和对应的部门信息 SELECT *FROM emp,dept WHERE emp...`id`; 3)内连接查询注意事项: 从哪些表中查询; 条件是什么; 查询哪些字段; 1.2.2 外连接查询 1)左外连接:查询的是左表所有的数据及其交集部分。...2)右外连接:查询的是右表所有的数据及其交集部分。

    11.8K10

    MySQL数据查询之单表查询

    Having发生在分组group by之后,因而Having中可以使用分组的字段,无法直接取到其他字段,可以使用聚合函数 分页查询 好处:限制查询数据条数,提高查询效率 #查询前5条数据 select...* from person limit 5; #查询第5条到第10条数据 select * from person limit 5,5; #查询第10条到第15条数据 select * from...# ^ 匹配 name 名称 以 "e" 开头的数据 select * from person where name REGEXP '^e'; # $ 匹配 name 名称 以 "n" 结尾的数据...= 'alex' # 'a|x' 匹配 条件中的任意值 select * from person where name REGEXP 'a|x';   #查询以w开头以i结尾的数据 select...首先执行 FROM 子句, 从 person 表 组装数据源的数据    (2). 执行 WHERE 子句, 筛选 person 表中 name 不为 NULL 的数据    (3).

    6.3K30

    使用联接和子查询查询数据

    --Chapter 3 使用联接和子查询查询数据 --内容提要 go /* (一)、使用联接查询数据 1. 内联接 2. 外联接 3. 交叉联接 4....自联接 */ go /* (二)、使用子查询查询数据 1. 使用比较运算符,IN和EXISTS关键字 2. 使用修改过的比较运算符 3. 使用聚合函数 4....交集,并集,差集 --操作两个select语句查询的结果 /* 前提条件 (1)两个结果集的列的数量和顺序要一致 (2)所有查询中的列的数据类型必须兼容 如char(10)和varchar...临时结果集 - 将一个查询结果在执行的时候临时存储,用于执行其他查询 --不保存在数据库中,只有在执行的时候存在,语句执行完之后不存在 --问题:查询工资最高的10位员工的平均工资 WITH RateCTE...) select '平均工资'=avg(Salary) from RateCTE --从临时结果集里面查询数据 --锚定查询/递归查询 WITH Employee_CTE(ManagerID,EmployeeID

    2.2K60
    领券