首页
学习
活动
专区
圈层
工具
发布

常用的mysql子查询

下面是一些常用的 MySQL 子查询: 标量子查询(Scalar Subquery):返回单个值作为查询结果。...table_name WHERE column_name operator ANY (SELECT column_name FROM table_name WHERE condition); 这些是常用的...MySQL 子查询示例,根据具体的业务需求,您可以灵活运用它们来处理数据。...使用子查询的情况: 当查询需要使用一个查询的结果来作为另一个查询的条件时,使用子查询更为自然和直观。 当查询需要根据某些条件来过滤数据,并且子查询可以返回满足这些条件的结果集时,使用子查询更合适。...综上所述,根据查询需求和数据模型,您可以选择链接查询或子查询来实现查询目标,并根据性能需求进行调优。在实际使用中,对于复杂的查询逻辑,有时需要结合使用链接查询和子查询以满足复杂的查询需求。

1.9K10

mysql常用查询语句

values(6,'jack',55,85,45); insert into stu(id,name,chinese,english,math) values(7,'tom',89,65,30); # 1.最简单的查询...原因在于英语为null,在mysql里面null+其他数据=null # ifnull(参数1,参数2) 如果参数1有值,则有参数1;如果参数1位null,则走参数2; # 查询id,name,总成绩...>60分的学生信息; select * from stu1 where math>60; # 2.查询年龄不等于20的学生信息; select * from stu1 where age20; select...;english null,在mysql里面null不是0; -- 对于null的数据,不能用=,也不是0 select * from stu1 where english is null; # 6.模糊查询...,like,比较常用;%:表示多个字符; -- 6.1 查询所有姓马的人员信息; select * from stu1 where name like '马%'; -- 6.2 查询所有以‘华’结尾的人员信息

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

    Mysql常用查询语句

    SELECT * FROM tb_stu WHERE date = ‘2011-04-08’ 注:不同数据库对日期型数据存在差异: : (1)MySQL:SELECT * from tb_name...= 六利用变量查询数值型数据 SELECT * FROM tb_name WHERE id = ‘$_POST[text]’ 注:利用变量查询数据时,传入SQL的变量不必用引号括起来,因为PHP中的字符串与数值型数据进行连接时...year(data):返回data表达式中的公元年分所对应的数值 month(data):返回data表达式中的月分所对应的数值 day(data):返回data表达式中的日期所对应的数值 十四查询大于指定条件的记录... WHERE 查询条件 注:SQL语句中的DISTINCT必须与WHERE子句联合使用,否则输出的信息不会有变化 ,且字段不能用*代替 十六NOT与谓词进行组合条件的查询 (1)NOT BERWEEN... … AND … 对介于起始值和终止值间的数据时行查询 可改成 终止值 (2)IS NOT NULL 对非空值进行查询 (3)IS NULL 对空值进行查询 (4)NOT IN

    7.3K20

    Mysql 常用查询性能优化

    对于大多数中小型应用,最多和最明显的的性能问题应该是出自最底层的数据库,数据库的性能又很复杂,SQL优化,索引等等, 在我工作七年的生涯中,也踩过无数的坑,以下写6点比较常用的心得,帮助大家避免和绕过一些比较明显的坑...MYSQL不允许对同一张表进行查询和更新,比如: DELETE FROM tb1 WHERE id in (select id from tb2 where tb2.col = 1);//这句SQL虽然合法...,但是无法在MYSQL中执行 SQL本身没有问题,只是MYSQL不允许这样处理,可以生成新的表来绕过限制,比如 delete from tb1 where id in ( select a.id from...,使用关联查询代替,如果是MySQL5.6或者更新的版本,那么可以直接忽略 6.优化LIMIT分页 系统中需要进行分页操作的时候,我们通常会使用LIMIT加上偏移量实现,同时加上合适的ORDER BY字句...但是有一个常见的问题,就是在偏移量非常大的时候,例如 LIMIT 1000,20 这时候MySQL需要查询10020 条记录然后只返回最后20条,前面1000条都被抛弃,代价非常高。

    1.5K20

    Mysql手册查询之常用函数大全

    聚合函数(常用于GROUP BY从句的SELECT查询中) AVG(col)返回指定列的平均值 COUNT(col)返回指定列中非NULL值的个数 MIN(col)返回指定列的最小值 MAX(col)返回指定列的最大值...如:SELECT NULLIF(1,1),NULLIF('A','B'),NULLIF(2+3,4+1); 和许多脚本语言提供的IF()函数一样,MySQL的IF()函数也可以建立一个简单的条件测试,这个函数有三个参数...在这种情况下,MySQL提供了CASE函数,它和PHP及Perl语言的switch-case条件例程一样。...如果没有指定ELSE块,而且所有的WHEN-THEN比较都不是真,MySQL将会返回NULL。...ID FOUND_ROWS() 返回最后一个SELECT查询进行检索的总行数 USER()或SYSTEM_USER() 返回当前登陆用户名 VERSION() 返回MySQL服务器的版本 示例: SELECT

    2.8K21

    Mysql常用sql语句(14)- 多表查询

    测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 实际工作中,每次查询基本都是需要结合多个表去查询数据...,所以Mysql的多表查询我们必须掌握 多表查询可以是两张表,也可以是很多张表,取决于需要查询的数据要关联多少张表 有哪些多表查询 cross join:交叉连接 inner join:内连接 left...join:左外连接 right join:右外连接 union、union all:全连接 多表查询的区别 查询类型 简述 图表 inner join 获取两个表中字段相互匹配关系的记录 即两表记录都不为...null才会返回 left join 获取左表所有记录 右表为空的字段补null right join 获取右表所有记录 左表为空的字段补null union 获取左右表所有记录 cross join...两张表的笛卡尔积 执行SQL 后面详细讲每种多表查询的时候,会用到这些数据表和数据;先跑一跑创建下哦!

    1.5K10

    Mysql常用sql语句(12)- group by 分组查询

    测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 group by 关键字可以根据一个或多个字段对查询结果进行分组...group by 一般都会结合Mysql聚合函数来使用 如果需要指定条件来过滤分组后的结果集,需要结合 关键字;原因:where不能与聚合函数联合使用 having group by 的语法格式 GROUP...group by 单字段分组的栗子 对sex单个字段进行分组查询 select * from yyTest group by sex; ?...知识点 多个字段分组查询时,先按照第一个字段分组,如果第一个字段有相同值,则把分组结果再按第二个字段进行分组,以此类推 如果第一个字段每个值都是唯一的,则不会按照第二个字段再进行分组了,具体原理可看下图...count():统计记录的条数 sum():字段值的总和 max():字段值的最大值 min():字段值的最小值 avg():字段值的平均值 具体的栗子 # count统计条数 select count

    6.6K21

    MySQL常用SQL语句:插入更新删除查询

    整理一些MySQL常用SQL语句:插入、更新、删除、查询、根据指定的列对结果集进行排序等。...(1) 连接查询 连接查询是数据库查询中最常用的一种查询语句,是指通过连接字段和连接条件连接多个表从而进行查询,连接查询又分为小类:等值连接、非等值连接 、内连接、外连接、自然连接、自身连接。  ...mysql不支持full join,但可以通过左外连接 + union + 右外连接来实现(left join + union(可去除重复数据)+ right join) #select * from...形式的SQL语句称为查询块。当一个查询块的SELECT子句或者WHERE子句中嵌套了另一个查询块的查询语句就称为嵌套查询。最外层的查询称为外层查询或父查询,最内层的查询称为内层查询或子查询。...其中,UNION和UNION ALL都会做并集,但UNION会去除重复的记录。最后,MySQL不支持INTERSECT和EXCEPT。

    9K30

    Mysql常用sql语句(9)- like 模糊查询

    测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 like应该是最常用的查询条件了 必须滴掌握!...% 通配符查询的栗子 应该是最常用的通配符了,它代表任意长度的字符串,包括0 % 比如: 表示以字母 a 开头,以字母 b 结尾的任意长度的字符串;该字符串可以代表 ab、acb、accb、accrb...等字符串 a%b 查询username字段包含test的记录 select * from yyTest where username like "%test%"; ?...知识点 匹配的字符串必须加单引号或双引号 like "%test%" _ 通配符查询的栗子 只能代表单个字符,字符的长度不能等于0,即字符长度必须等于1;相对于 % 来说, _ 肯定没这么常用 _...注意头部、尾部多余的空格: 是不会匹配到“test1”的 " test% " 注意NULL:通配符是不能匹配到字段为NULL的记录的 不要过度使用通配符:因为Mysql对通配符的处理速度会比其他操作花费更长的时间

    5K20

    谈谈MySQL优化方面的常用方法(最详细)

    MySQL优化方法: 1.选取最适用的字段属性,可以的情况下,应该尽量把字段设置为NOT NULL 2.使用连接(JOIN)来代替子查询 3.使用联合来代替手动创建的临时表 4.增删改或者多条查询数据时使用事务操作...MySQL数据库引擎会在找到一条数据后停止搜索,而不是占据cpu继续往下查直到查询表中的最后一条数据为止。...EXPLAIN你的SELECT查询 EXPLAIN关键字的作用是让你可以让你知道MySQL是如何处理你的SQL语句的。这可以帮你分析你的查询语句或是表结构。...为搜索字段建索引 索引并不一定就是给主键或是唯一的字段。如果在你的表中,有某个字段你总要会经常用来做搜索,那么为其建立索引。...当MySQL开启了缓存模式(query_cache_type=1)后,mysql会把查询语句和查询结果保存在一张hash表中,下一次用同样的sql语句查询时,mysql会先从这张hash表中获取数据,

    2.4K40

    Mysql常用sql语句(8)- where 条件查询

    测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 条件查询应该是作为测试平时用到最多的关键字了!!...它可以用来指定查询条件,减少不必要的查询时间 where的语法格式 WHERE 查询条件 五种查询条件 比较运算符、逻辑运算符 between and 关键字 is null 关键字 in、exist...and、&&:所有查询条件均满足才会被查询出来 or、||:满足任意一个查询条件就会被查询出来 xor:满足其中一个条件,并且不满足另一个条件时,才会被查询出来 这里有个重点,当运算符混合使用时,需要关注它们的优先级...,具体可参考这篇博文:(后面补充) 单一条件的查询栗子 一般单一条件查询用的就是比较运算符 select * from yyTest where id = 1; select * from yyTest...where height >= 175; select * from yyTest where age < 20; select * from yyTest where age <= 20; 多条件的查询栗子

    3.4K20

    Mysql常用sql语句(19)- in exists 子查询

    测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 子查询在我们查询方法中是比较常用的,通过子查询可以实现多表查询...子查询是指:将一个查询语句嵌套在另一个查询语句中 子查询可以在select、update、delete语句中使用,还可以进行多层嵌套 子查询的语法格式 WHERE (子查询)...,返回 TRUE,否则返回 FALSE; 用于判断子查询的结果集是否为空,若子查询的结果集不为空,返回 TRUE,否则返回 FALSE; 适合外表大而内表小的情况 适合内表大而外表小的情况 无论哪个表大...in 的栗子 SQL分析 从 dept 表查询部门名字为销售部or财务部的部门 id 然后从 emp 表查询 depte_id 在上面 id 结果集的记录 select * from emp where...知识点 子查询的功能其实通过表连接(join)也可以完成 一般来说,表连接(内连接、外连接等)都可以用子查询查询,但反过来却不一定,有的子查询不能用表连接来替换 子查询比较灵活,适合作为查询的筛选条件

    1.7K20

    查询MySQL用户两种的最常用方法总结

    围绕 查询用户两种的最常用,原文主要从 前言、方法一:使用 MySQL 命令行工具(最直接的方法)、查询所有用户列表(核心方法) 这些层面展开。...在MySQL数据库管理中,查看用户信息是权限控制和安全审计的基础操作,这篇文章主要介绍了查询MySQL用户两种的最常用方法,文中通过代码介绍的非常详细,需要的朋友可以参考下 这版内容会保留与题目强相关的代码块...当前最值得关注的关键词包括 用户、最小权限、账号治理、授权边界、查询MySQL用户的方法。如果授权与审计没有形成闭环,权限越多,后续排查边界越模糊。前言前言 这一部分建议结合下面的代码一起看。...方法一:使用 MySQL 命令行工具(最直接的方法)方法一:使用 MySQL 命令行工具(最直接的方法) 这一部分建议结合下面的代码一起看。...权限类问题不要只记语法,更要梳理账号用途、授权对象和回收后的验证动作。总结来看,处理 查询用户两种的最常用 这类 MySQL 问题,关键不在背命令,而在看清对象状态、执行窗口和结果校验。

    40700

    Mysql常用sql语句(6)- limit 限制查询结果的条数

    测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 实际工作中,我们的数据表数据肯定都是万级别的,如果每次都把所有数据查出来...,不仅会增加查询的时间成本,还会给数据库服务器造成很大的压力 通过limit限制每次返回的数据量,可以有效减少查询时间和数据库压力 limit的三种用法 指定初始位置 不指定初始位置 结合offset使用...limit指定初始位置的栗子 语法格式 LIMIT 初始位置,记录数 知识点 初始位置从0开始 初始位置和记录数都必须为正整数 从第3条记录开始,一共返回两条记录 select * from yyTest...limit不指定初始位置的栗子 语法格式 LIMIT 记录数 知识点 记录数 > 表里总记录数的话,就返回所有记录 默认初始位置就是第1条记录 一共返回五条记录 select * from yyTest...limit + offset组合使用的栗子 语法格式 LIMIT 记录数 offset 初始位置 知识点 和 用法一样,只是多了个offset,参数位置换了下而已 limit 初始位置, 记录数 从第

    3.9K20

    MySql常用30种SQL查询语句优化方法

    2、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。...,SQL是根据表中数据来进行查询优化的,当索引列有大量数据重复时,SQL查询可能不会去利用索引,如一表中有字段 sex,male、female几乎各一半,那么即使在sex上建了索引也对查询效率起不了作用...17、尽量使用数字型字段,若只含数值信息的字段尽量不要设计为字符型,这会降低查询和连接的性能,并会增加存储开销。...18、尽可能的使用 varchar/nvarchar 代替 char/nchar ,因为首先变长字段存储空间小,可以节省存储空间,其次对于查询来说,在一个相对较小的字段内搜索效率显然要高些。...21、避免频繁创建和删除临时表,以减少系统表资源的消耗。 22、临时表并不是不可使用,适当地使用它们可以使某些例程更有效,例如,当需要重复引用大型表或常用表中的某个数据集时。

    2.3K10
    领券