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

MySQL【三】---数据库查询详细教程{分页、连接查询、自关联、子查询、数据库设计规范}

4.1标量子查询; 查询最高的男生信息 select * from students where height=(select max(height) from students); 子查询即先执行子语句得到结论...,再把这个结论当作条件再执行主语句; 对于:上面河北省自关联可以采用子查询解决: select* from areas where pid = (select aid from areas where...atitle=" 河北省");  区别在于查询时间,子查询慢一点。...4.2列级子查询 查询学生的班级号能对应学生的信息: select * from students where cls_id in (select id from classes);  5.数据库设计...5.1 三范式 经过研究和对使用中的问题的总结,对于设计数据库提出了一些规范,这些规范称为范式。

1.7K20

数据库子查询

数据库子查询 百度官方定义:子查询是一种常用计算机语言SELECT-SQL语言中嵌套查询下层的程序模块。当一个查询是另一个查询的条件时,称之为子查询。...按照我的理解,子查询,就是将查询的结果,即返回的结果,作为条件来进行优先查询, 比如 5+2*3=21 ,真实的答案为11,但是怎么才能得到21,便将前两位用括号括起来, (5+2)*3 = 21; 括号中的条件就是最优先执行的条件...; 举个例子: 在当前的数据表中,有三条数据 ?...我们写上条件查询,查询userId为1的用户 这是正常写法,但是我们可以将userId=后面的条件,变成查询语句来进行查询 ?...一定要加入括号,才是优先查询,不然会报错 很好理解上面的问题,因为在数据库中,直接输入select 1,便会返回为1的结果 ?

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

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

    --Chapter 3 使用联接和子查询来查询数据 --内容提要 go /* (一)、使用联接查询数据 1. 内联接 2. 外联接 3. 交叉联接 4....自联接 */ go /* (二)、使用子查询查询数据 1. 使用比较运算符,IN和EXISTS关键字 2. 使用修改过的比较运算符 3. 使用聚合函数 4....HumanResources.Employee b where a.ManagerID=b.EmployeeID --根据其主管的员工编号找到对应的职位 go ---------------------- (二)、使用子查询查询数据...---------------------------- --子查询:将一个select的查询结果作为另外一个select查询的输入/条件,查询里面的查询 --1....使用嵌套子查询 --子查询里面可以包含一个或多个子查询,这样叫做嵌套子查询 --问题:查询工资最高的员工的编号 HumanResources.EmployeePayHistory select * from

    2.2K60

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

    一、连接查询 1、交叉连接:CROSS JOIN 把表A和表B的数据进行一个NM的组合,即笛卡尔积。如本例会产生44=16条记录,在开发过程中我们肯定是要过滤数据,所以这种很少用。...多表查询: 多张表的结构是完全一样的,保存的数据(结构)也是一样的....不能直接使用,需要对查询语句使用括号才行;另外,要orderby生效: 必须搭配limit: limit使用限定的最大数即可. ** 三、子查询 ** 子查询: 查询是在某个查询结果之上进行的....子查询: 子查询出现where条件中 Exists子查询: 子查询出现在exists里面 按结果分类: 根据子查询得到的数据进行分类(理论上讲任何一个查询得到的结果都可以理解为二维表) 标量子查询...FROM t11 WHERE name='科技') 列子查询 行子查询 表子查询 Exists子查询 参考文章:MySQL数据高级查询之连接查询、联合查询、子查询 发布者:全栈程序员栈长,转载请注明出处

    6.2K10

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

    数据库查找方式进阶 一.单表查询 1.查看表单选择段落 1.disinct 所有内容去重:select disinct * from 表名称; 指定字段去重:select disinct 字段 from...表1,表2 他会把多个表每行与另外个表统统匹配上,其中会有一些脏数据,我们可以用里面值的关系进行连接 2.内连接查询 其本质就是笛卡尔积查询 区别是把,变成 join 且不能用where,要先用on根据里面值的关系拼接好了再用...emp on dept.id=emp.dept_id union select from dept right join emp on dept.id=emp.dept_id; 可以完成全外连接 三.子查询..........) as 新名字 2.in关键字查询 "查询平均年龄大于25的部门名称 子查询方式: 平均年龄大于25的部门id有哪些?...on emp.dept_id = dept.id group by dept.name having avg(age) >25; 3.exists关键字查询 xists 后跟子查询 子查询有结果是为

    5.3K40

    Python数据分析—子查询

    在对海量数据进行分析的过程中,可能需要对数据进行子查询的操作。 比如要查询所有借钱男性中年龄最大的人的信息,首先要查出所有男性的信息,再查在这些人中间年龄最大的人的信息,这就是子查询。...这在数据分析过程中必不可少,本节教大家如何在python中对数据框进行一些子查询的操作。...本文目录 查询最大年龄的学生姓名 查询最大年龄的男生姓名 查询身高前几的学生信息 注意:本文沿用数据分析第一课【Python数据分析—数据建立】里的数据框date_frame: ?...1 查询最大年龄的学生姓名 如果我们想查询最大年龄的学生姓名,该怎么办? 可以先查询所有学生中的最大年龄,再去查询该年龄对应的学生姓名。...至此,在python中对数据框进行子查询的操作已介绍完毕,大家可以动手练习一下,思考一下还可不可以对数据框进行别的子查询操作 。

    50010

    数据库查询优化技术(二):子查询优化

    数据库查询优化技术总览 本章内容: 1查询的基本操作 2查询的2种类型 3Query Execution Plan of MySQL 4子查询的优化 5How to optimize SubQuery?...子查询如果位于目标列,则只能是标量子查询,否则数据库可能返回类似“错误:子查询必须只能返回一个字段”的提示。...FROM子句中,数据库可能返回类似“在FROM子句中的子查询无法参考相同查询级别中的关系”的提示,所以相关子查询不能出现在FROM子句中; 非相关子查询出现在FROM子句中,可上拉子查询到父层,在多表连接时统一考虑连接代价然后择优...6ORDERBY子句位置 可将子查询写在ORDERBY位置处,但ORDERBY操作是作用在整条SQL语句上的,子查询用在ORDERBY处没有实用意义。...MySQl支持对简单SELECT查询中的子查询优化,包括: 1 简单SELECT查询中的子查询。 2 带有DISTINCT、ORDERBY、LIMIT操作的简单SELECT查询中的子查询。

    3.3K00

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

    】:SELECT *FROM dept,emp; 从查询结果中可以看到共计15条数据,这个查询结果叫做笛卡尔积,如查询2个表,每个表中的数据条数分别为A,B,则查询的结果条数就是A*B;但是看如下结果,...2)右外连接:查询的是右表所有的数据及其交集部分。...语法:select 字段列表 from 表1 right [outer] join 表2 on 条件 1.2.3 子查询 【概念】:子查询就是查询中嵌套查询,称嵌套查询为子查询。...【子查询的不同情况】 1)子查询的结果是单列的 子查询可以作为条件,使用运算符进行判断(> >= < <= =),如上述的举例,下例也是    -- 查询员工工资小于平均工资的人    SELECT...3)子查询的结果是多行多列的 子查询可以作为一张虚拟表 -- 查询员工的入职日期是2011-11-10之后的员工信息及部门信息 SELECT *FROM emp WHERE emp.

    11.8K10

    mysql子查询和连接查询(大数据联合计算)

    一、连接查询 1、交叉连接:CROSS JOIN 把表A和表B的数据进行一个NM的组合,即笛卡尔积。如本例会产生44=16条记录,在开发过程中我们肯定是要过滤数据,所以这种很少用。...多表查询: 多张表的结构是完全一样的,保存的数据(结构)也是一样的....不能直接使用,需要对查询语句使用括号才行;另外,要orderby生效: 必须搭配limit: limit使用限定的最大数即可. ** 三、子查询 ** 子查询: 查询是在某个查询结果之上进行的....子查询: 子查询出现where条件中 Exists子查询: 子查询出现在exists里面 按结果分类: 根据子查询得到的数据进行分类(理论上讲任何一个查询得到的结果都可以理解为二维表) 标量子查询...FROM t11 WHERE name='科技') 列子查询 行子查询 表子查询 Exists子查询 参考文章:MySQL数据高级查询之连接查询、联合查询、子查询 发布者:全栈程序员栈长,转载请注明出处

    1.6K10

    数据库sql嵌套查询题_sql子查询嵌套优化

    外层的查询块称为外层查询或父查询,内层的查询称为内层查询或子查询。 注意点:子查询的select语句不能使用order by 子句,order by 只能对最终查询结果排序。...嵌套查询分类: 1、相关子查询/关联子查询:子查询的查询条件依赖于父查询,比如,如果子查询需要执行多次,即采用循环的方式,先从外部查询开始,每次都传入子查询进行查询,然后再将结果反馈给外部,这种嵌套的执行方式就称为关联子查询...2、不相关子查询/非相关子查询:子查询的查询条件不依赖于父查询,比如:子查询从数据表中查询了数据结果,这个数据结果只执行一次,然后这个数据结果作为主查询的条件进行执行,这样的子查询叫做非关联子查询。...二、嵌套查询方式 2.1 带有比较运算符的子查询 带有比较运算符的子查询是指父查询和子查询之间用比较运算符连接,当用户能确切知道子查询返回的是单个值时,可以用带有比较运算符的子查询; 比较运算符:...2.4 带有exists谓词的子查询 exists直译就是存在,代表存在量词。带有exists谓词的子查询不返回任何数据,只产生逻辑真值”true“或逻辑假值”false“。

    2.7K10

    Spring-data-jpa(spring数据持久层解决规范)详解

    大致整理一个提纲:   1、Spring-data-jpa的基本介绍;   2、和Spring整合;   3、基本的使用方式;   4、复杂查询,包括多表关联,分页,排序等; 现在开始:   1、Spring-data-jpa...,通过这个对象来操作数据库。...下面我们通过一个完整的项目来基本使用spring-data-jpa,然后我们在介绍他的高级用法。   a.数据库建表:user,主键自增 ?   b.对应实体:User ?...接下来:就是比较复杂的操作了,比如动态查询,分页,下面详细介绍spring-data-jpa的第二大杀手锏,强大的动态查询能力。...in是主键,或者说是带有索引的,效率是很高的,mysql中如果in是子查询貌似不会走索引,不过我个人经验,在我遇到的实际应用中,in(ids)这种是比较多的,所以一般来说是没有性能问题的。

    3K20

    MySQL数据库,子查询学习,高手必备(四)

    ⾏⼦查询(⼦查询结果集⼀⾏多列) 示例 查询员⼯编号最⼩并且⼯资最⾼的员⼯信息,3种⽅式。.../*查询员⼯编号最⼩并且⼯资最⾼的员⼯信息*/ /*①查询最⼩的员⼯编号*/ SELECT min(employee_id) FROM employees; /*②查询最⾼⼯资*/ SELECT max...exists后⾯(也叫做相关⼦查询) 1. 语法:exists(完整的查询语句)。 2. exists查询结果:1或0,exists查询的结果⽤来判断⼦查询的结果集中是否有值。3....和前⾯的查询不同,这先执⾏主查询,然后主查询查询的结果,在根据⼦查询进⾏过 滤,⼦查询中涉及到主查询中⽤到的字段,所以叫相关⼦查询。...NULL的时候,外查询的结果为空。

    38540

    MySQL数据库,子查询学习,高手必备(三)

    列⼦查询(⼦查询结果集⼀列多⾏) 列⼦查询需要搭配多⾏操作符使⽤:in(not in)、any/some、all。 为了提升效率,最好去重⼀下distinct关键字。...示例1 返回location_id是1400或1700的部门中的所有员⼯姓名 /*返回location_id是1400或1700的部门中的所有员⼯姓名*/ /*⽅式1*/ /*①查询location_id...1400或1700的部门编号*/ SELECT DISTINCT department_id FROM departments WHERE location_id IN (1400, 1700); /*②查询员...ITPROG'⼯种任意⼯资低的员⼯的员⼯号、姓名、 job_id、salary /*返回其他⼯种中⽐job_id为'IT_PROG'⼯种任⼀⼯资低的员⼯的员⼯号、姓名、job_id、 salary*/ /*①查询...job_id为'IT_PROG'部门任-⼯资*/ SELECT DISTINCT salary FROM employees WHERE job_id = 'IT_PROG'; /*②查询员⼯号、姓名、

    38220
    领券