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

用SQL语句进行数据库查询(复杂查询)

前言 个人主页: :✨✨✨初阶牛✨✨✨ 推荐专栏: c语言初阶 个人信条: 知行合一 本篇简介:>:上一篇学习了如何使用SQL语句进行简单的数据查询,本篇记录一些在简单查询的基础上稍微复杂一点的查询...本篇可当做例题练习, 1.查询比”林红”年纪大的男学生信息 语句: select * from Student where Sex='男' and year(Birth)-(select year...(Birth)from Student--这里是需要告诉查询的表名,相当于嵌套 where Sname='林红')<0 1.检索所有学生的选课信息,包括学号、姓名、课程名、成绩,性别....“C语言程序设计”的学生的学号与姓名 –a.用内连接查询 语句: select sc.Sno,sname from student inner join sc on student.Sno=sc.Sno...='051' and Birth<(select min(Birth) from student where classno='051') (7)(选作)查询选修了全部课程的学生姓名。

1.6K50

MYSQL 8 MySQL DBA 也该学学复杂查询

MYSQL 一直被diss的就是数据分析尤其在窗口函数这一块,相对于O , S , P三个数据库MYSQL在这方面基本上属于空白。MYSQL 8 的到来后,这方面也有了改变。...在别的数据库上有的专门的课程 T-SQL, PLPGSQL, PLSQL等等,也是否有可能在MYSQL上,随着MYSQL8的使用,出现 M- SQL。...(这里我们使用了MYSQL 官方的练习库 employees) 1 对查询结果的排序 上面这段语句的作用是查找雇员表中每个人最高的工资中工资大于 91530的那些人的员工号和工资数,以及人名,并根据工资来一个从上到下的排序需要一个序号...这样的操作在MYSQL 5.7中如果要操作的话,这是达到同样结果的写法,在MySQL 5.7 但实际上有些查询MYSQL5.7是不能进行的。...这里使用了DENSE_RANK() 的窗口函数来完成这样的复杂的统计功能。

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

MySQL-复杂查询及条件-起别名-多表查询-04

目录 基本查询语句及方法 测试数据创建 创建数据库与表 插入表记录数据 数据展示 常见结果排版 另一种结果排版 \G 简单查询语句的书写与执行顺序 查询语句书写 执行顺序 科普-- 起别名 写法 可以对字段做四则运算...其他是可选的) 执行顺序 多表查询 前言 测试数据创建 创建数据库与表 插入表记录数据 笛卡尔集/积 -- 科普 联表查询 内连接 inner join ... on 左连接 left join ......,可以将所有字符编码统一设置成gbk(或者参照我安装配置MySQL的博客,将所有字符编码设置为 utf8) 创建数据库与表 create database db1; use db1; create...定制化查询结果 复杂查询实现小窍门: 写sql语句的时候,千万不要急着一口气写完(切忌心浮气躁) 前期按照歩鄹一步步写,将前一步操作产生的结果都当成是一张新的表,然后基于该表再进行其他操作,写一步查询看一下结果然后基于当前结果再往后写...要实现多表查询,有下面两种方式 联表查询查询 每一次的查询结果都是一张虚拟表,我们可以用 as 关键字给虚拟表取别名,然后将其当做普通表作为查询条件使用 测试数据创建 创建数据库与表 create

3.8K20

SQL 复杂查询

SQL 复杂查询指的就是子查询。 为什么子查询叫做复杂查询呢?因为子查询相当于查询嵌套查询,因为嵌套导致复杂度几乎可以被无限放大(无限嵌套),因此叫复杂查询。...,所以摇身一变成为了复杂查询!...所以复杂查询不一定真的复杂,甚至可能写出和普通查询等价的复杂查询,要避免这种无意义的行为。 我们也要借此机会了解为什么子查询可以这么做。 理解查询的本质 当我们查一张表时,数据库认为我们在查什么?...这点很重要,因为下面两个语句都是合法的: SELECT pv FROM test SELECT pv FROM ( SELECT pv FROM test ) 为什么数据库可以把子查询当作表呢?...因为复杂查询的真正用法并不在这里。

1.6K30

SQL复杂查询

复杂查询 视图 视图和表 从SQL的角度来看,视图就是一张表,两者的区别在于是否保存了实际的数据。...创建表时,会通过INSERT语句将数据保存到数据库中,而数据库中的数据实际上会保存到计算机的存储设备。 使用视图时,并不会将数据保存到任何地方,实际上视图保存的是SELECT语句。...子查询和视图 子查询就是一次性的视图(SELECT语句),子查询在SELECT语句执行完毕之后就会消失。...子查询的名称 原则上子查询必须设定名称,设定名称是需要使用AS关键字,有时也可以省略。 标量子查询 标量子查询就是返回单一值的子查询,必须而且只能返回表中某一行的某一列的值。...注意:如果子查询返回了多行结果,那么它就不再是标量子查询,而仅仅只是一个普通的子查询,因此不能被用在需要单一输入值的地方。

3.1K30

Nest 复杂查询

复杂查询包括分页、模糊查询、多条件筛选、排序等,满足前端对查询的所有诉求。 Nest 复杂查询,主要使用 repository.findAndCount()方法实现。...假设有一个能分页查询所有用户,可根据用户名进行筛选,并对结果按照更新时间倒序排序的需求,它的 controller 如下: @Post() @Roles(Role.Admin, Role.SuperAdmin...const res = await this.userService.pageQuery(dto); return successResult(res); } QueryUserDto是查询参数类型...筛选状态为正常的数据 const queryFilter: any = { status: DATA_STATUS.NORMAL }; if (username) { // 模糊查询...where 主要传入查询条件,是一个对象,对象的 key 是数据库字段,value 是要查询的值,把上面的 queryFilter 合并一下,就是如下这种形式,要查多少个属性都可以。

78630

MYSQL数据库-复合查询

MYSQL数据库-复合查询 零、前言 一、基本查询 二、多表查询 三、自连接 四、子查询 1、单行子查询 2、多行子查询 3、多列子查询 3、在from子句中使用子查询 五、合并查询 1、union 2...、union all 零、前言 本章主要讲解学习MYSQL数据库中的复合查询,前面我们讲解的mysql表的查询都是对一张表进行查询,在实际开发中这远远不够 一、基本查询 示例: 查询工资高于500...worker,给自己的表起别名,因为要先做笛卡尔积,所以别名可以先识别 四、子查询查询是指嵌入在其他sql语句中的select语句,也叫嵌套查询 1、单行子查询 返回一行记录的子查询...,单行数据;多行子查询是指返回单列多行数据,都是针对单列而言的,而多列子查询则是指查询返回多个列数据的子查询语句 示例:查询和SMITH的部门和岗位完全相同的所有雇员,不含SMITH本人 3、在from...子句中使用子查询查询语句出现在from子句中。

13.2K30

Mysql数据库-子查询

Mysql数据库-子查询 1. 什么是子查询 # 子查询定义 ## B语句作为A语句的一部分,B语句是select查询语句,那么B语句称之为子查询,内层查询(子集,subquery) -- 1....查询emp表的最高工资salary,然后再根据最高工资salary查询员工的信息 -- 2.1 通过max(salary)可以查询出emp表的最高工资为9000 mysql> select max(salary...查询部门平均工资超过全公司平均工资的部门id和部门平均工资 -- 3.1 先查询公司平均工资 mysql> select avg(salary) from emp; +-----------------...查询工资大于5000的员工,来自于哪些部门的名字 -- 1.1 首先查询salary>5000的部门ID,列子查询(多行单列) mysql> select dept_id from emp where...查询开发部与财务部所有的员工信息 -- 2.1 查询出 开发部 与 财务部 的部门ID mysql> select id from dept where name = '开发部' or name = '

45.5K10

MySQL数据库查询

SQL语句,子查询被嵌入到一对小括号里面 数据库设计之三范式 1、数据库设计之三范式的介绍 范式: 对设计数据库提出的一些规范,目前有迹可寻的共有8种范式,一般遵守3范式即可。...5、E - R模型的介绍 E-R模型即实体-关系模型,E-R模型就是描述数据库存储数据的结构模型。...E-R模型由 实体、属性、实体之间的关系构成,主要用来描述数据库中表结构。...开发流程是先画出E-R模型,然后根据三范式设计数据库中的表结构 外键SQL语句的编写 1、外键约束作用 外键约束:对外键字段的值进行更新和插入时会和引用表中字段的数据进行验证,数据如果不合法则更新和插入会失败...create database jing_dong charset=utf8; -- 使用 "京东" 数据库 use jing_dong; -- 创建一个商品goods数据表 create table

18.5K20

数据库MySQL查询优化

MySQL发送查询请求,到底做了什么工作? 下图是MySQL查询执行流程图: ? •客户端发送一条查询给服务器。•服务器先检查查询缓存,如果命中了缓存,则立刻返回查询在缓存中的结果。...•MySQL根据优化器生成的执行计划,调用存储引擎的API来执行查询。•将结果返回给客户端。 是什么导致MySQL查询变慢了?...对于MySQL,最简单的衡量查询开销的三个指标如下: •响应时间•扫描的行数•返回的行数 没有哪个指标能够完美地衡量查询的开销,但它们大致反映了MySQL在内部执行查询时需要访问多少数据,并可以大概推算出查询运行的时间...2.关联子查询 MySQL的子查询实现是非常糟糕的。...列表中的选项有专门的优化策略,一般会认为MySQL会先执行子查询返回所有包含author_id 为1的book_id。

13.4K10

MySQL数据库——连接查询

概述: 连接查询的作用将多张表进行内容上的连接,查看数据时可以同时看到多张表的多个数据 连接查询的分类 内连接查询 左连接查询 右连接查询 自连接查询 语法 #内连接 SELECT * FROM...inner join 实现多表查询查询共有记录。...SELECT * FROM 表1 inner join 表2 on 表1.字段=表2.字段 左连接查询 left join 以左表为主,查询右表的数据。若右表不存在数据,则返回null。...SELECT * FROM 表1 left join 表2 on 表1.字段=表2.字段 右连接查询 right join 以右表为主,查询左表的数据。若左表不存在数据,则返回null。...SELECT * FROM 表1 right join 表2 on 表1.字段=表2.字段 自连接查询 inner join 左表和右表是同一个表,查询两个表中的数据。

53.8K85

MYSQL 8 VS MYSQL 5.7 在复杂查询中 到底好了多少

MySQL 8 最终是要大面积替换MYSQL5.7 , 之前的文字可能给人感觉MYSQL 8 还不如 MYSQL 5.7 ,实际上不然,任何东西新的一定有问题,解决解决就好了,在复杂查询这块 MYSQL...下面是MYSQL 8 和 MYSQL 5.7 在一个稍微复杂查询的执行计划 对比上面的图,一样的语句,一样的数据库,一样的表,一样的数据行数和内容,mysql 8 由于各种优化,去掉了 using firesort...里面的子查询先 Materialized 一下,相对来说,如果 not exists not in 里面的要排除的数据越少越好,条件越精准越好,这样MYSQL 8 的 antijoin 的功能就会能帮助查询更有效的排除数据...最后总结一下, 如果当前MYSQL 5.X 中运行的系统逻辑并不复杂,执行的语句都是简单的,那换了MYSQL 8 可能并不能得到什么好处,甚至会“挨骂”。...而如果本身就是从其他数据库迁移过来的系统,语句写的比较“水”,则更换MYSQL 8 会让一些SQL 跑的好看一些, 期待MYSQL 也能并行查询

2.6K30

MySQL周内训参照3、简单查询与多表联合复杂查询

2、根据商品名称进行模糊查询,模糊查询需要可以走索引,需要给出explain语句。 3、统计用户订单信息,查询所有用户的下单数量,并进行倒序排列。...提交3条sql与对应的结果截图 1、中文显示姓名列与手机号列(2分) 2、使用explain测试给出的查询语句,需要显示走了索引查询。...(3分) 3、使用聚合函数查询处所有用户的订单数量(2分),倒序排列结果(3分),(共5分)。 6 DBA 复杂查询 15 SQL要求: 1、查询用户的基本信息,钱包信息。...3、查询下单总金额最多的用户,并查询用户的全部信息与当前钱包余额。...分),(共5分) 3、正确使用聚合函数(2分),正确使用子查询(2分),正确进行多表联合查询(2)(共6分)

11610

MYSQL 复杂查询超时连接 lost Error 与 错别字

使用MYSQL复杂查询的用法比较少见,都知道MYSQL在处理OLAP 以及复杂的语句的能力,在处理复杂的语句时有可能会看到下面的情况。...下面经过调整后,就可以查询出来,不会再有 Error Code 2013, Lost connection to Mysql server during query 的报错了。...的使用有误解) 很多人在调整了这些参数后还是发现,(例子里面使用 workbench)还是查询失败,还是30秒就自动断开。...比较慢的查询就可以通过客户端进行显示了。...以上例子在 MYSQL 5.7.23 与 MYSQL 8.018 是可以的,随着MYSQL 8 开始应用,到底MYSQL 5.7 和 MYSQL 8 在复制查询上的差距有多少,这个要好好看一看,要不怎么和领导提出要升级的要求

1.9K40

MySQL数据库】详细讲解MySQL查询

图片多表查询⭐多表关系在项目开发中,在进行数据库表结构设计时,会根据业务需求以及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在各种联系,基本分为以下三种一对多(多对一...varchar(10) comment '课程名称') comment '课程表';​insert into course values (null,'java'),(null,'php'),(null,'mysql...原来的表 图片联合查询对于联合查询(union),就是把多次查询的结果合并起来,形成一个新的查询结果集查询到的多张表的列数要保持一致,而且字段列表也要保持一致select 字段列表 from 表A……...;子查询的外部语句可以是insert update delete selete的任何一个️‍根据查询结果不同,分为查询方式查询结果标量子查询查询结果为单个值列子查询查询结果为一列行子查询查询结果为一行表子查询查询结果为多行多列...,或者文章有问题,欢迎大家在评论区讨论,指正我正在参与 腾讯云开发者社区数据库专题有奖征文。

24240

mysql数据库查询数据的语句怎么写_mysql数据库多表查询

单表查询 1、普通查询 (1)命令:select * from ;//通匹 (2)命令:select from ; 2、去重查询(distinct) 命令:select...distinct from 3、排序查询(order by) 升序:asc 降序:desc 降序排列命令:select from order...要求查询一个学生的总成绩。我们根据学号将他们分为了不同的组。...命令:mysql>select id, Sum(score) from result group by id; 多表查询 一、等值查询 现在有两个表: 现在要查询年龄小于20岁学生的不及格成绩...: 可见等值查询效率太低 二、连接查询 1、外连接查询 (1)左外连接查询 假设我们依旧使用的是上面的两个表,任然查询年龄小于20岁学生的不及格成绩 我们利用左外连接查询,先将学生表中所有年龄小于

29.8K20
领券