- 浏览: 1349178 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (732)
- Java_about (146)
- Spring_Hibernate_Struts_OpenSource (27)
- linux_unix (62)
- life_sth (22)
- js_css_html_xml_nodejs (69)
- design_pattens (1)
- Perl (8)
- php_ecshop (4)
- DB_Mysql_Oracle_Informix_SqlServer (43)
- JSTL (8)
- Testing_自动化测试 (42)
- DB_ID_UUID (4)
- SEM_SEO (1)
- english_study_improvement (4)
- SVN_Git (9)
- WebService_SOA_CloudComputing (3)
- E-Commerce (1)
- Lucene_Solr (7)
- others (2)
- Regex (2)
- tomcat_jetty (8)
- zeroc-ice (1)
- java_excel (5)
- ant_maven_gradle (5)
- Unity_VR_AR_C# (2)
- jmeter (1)
- XPath_dom4j (1)
- Ruby_and_Rails (68)
- write_a_rails (17)
- manage_and_team (1)
- getting_real (1)
- ubuntu (20)
- git_and_git_flow (7)
- TODO (1)
- PM_design (2)
- Python_and_Django (8)
- NoSql_mongo_redis (24)
- C/C++ (3)
- vi_vim_gvim (0)
- c#_.Net_windows编程_dll (10)
- Php_and_Yii (9)
- Android_IOS (31)
- Mysql (5)
- sa_运维_network_硬件 (37)
- lua (2)
- c_cpp_VisualStudio (21)
- 硬件-RM-Arduino (6)
最新评论
-
shenkun58:
...
NoClassDefFoundError: Could not initialize springframework.BeanCreationException -
liaojia1:
正解,感谢
NoClassDefFoundError: Could not initialize springframework.BeanCreationException -
flingfox63:
谢谢分享,电脑上有IPV6,导致了Guard启动不了……
ruby错误解决: Address family not supported by protocol - connect(2) -
c39274936:
s = "hello_world_ruby" ...
驼峰格式和下划线格式转换_translation between camel and snake format -
yfj300:
学习了学习了学习了学习了
硬盘基本知识(磁道、扇区、柱面、磁头数、簇、MBR、DBR)
此功能同Oracle一样!
许多人都觉得MySQL不支持嵌套查询,其实MySQl从4.11版后已经完全支持嵌套查询了,那么下面我举些简单的嵌套查询的例子吧(源程序来自MySQL User Manual):
1. SELECT语句的子查询:
语法: (注意:AS 可省略)
CODE: | |
|
先创建一个表:
CODE: | |
|
我们就可以进行以下的嵌套查询了:
CODE: | |
|
结果是: 2, '2', 4.0.
我们知道下面语句是不会得到正确结果的,因为对经过Group by排序的集合进行求均值是不能得到正确答案的:
CODE: | |
|
所以我们可以通过下面的嵌套查询实现同样的效果:
CODE: | |
|
2.行的子查询(Row Subquery):
看下面的例子:
CODE: | |
|
这个查询是返回column1等于column2的结果行。Row函数中的1和2相当于构造参数。想必Blogjava上的同志对这些应该比较清楚,也不去详细介绍了。
3.使用Exist和Not Exist参数
这里的Exist和Not Exist用途及用法和在其他没有什么大的区别,我就简单举几个范例好了:
范例一:
CODE: | |
|
范例二:
CODE: | |
|
范例三: 这个例子中嵌套使用了Not Exist语法,稍微注意一下:
CODE: | |
|
4.条件关联关系查询:
解释起来麻烦,直接看例子吧:
CODE: | |
|
跟其他数据库做法是一样的。
5.其他使用方法和注意:
除了上面这些还有很多很多,不过就不去细讲了,因为这些跟别的数据库差不多,只是为了给大家一个参考,提提就够了。
CODE: | |
|
注意:
#1 这种用法是把select的结果“值”作为“字段值”使用
#2 select “aValue” from tableX; //其实是从表中选择这个值与表行数关联
支持子查询的语法有:SELECT,INSERT,UPDATE,DELETE,SET和DO。
子查询可以使用任何普通查询中使用的关键词:如DINSTINCT,GROUP BY,LIMIT,ORDER BY,UNION,ALL,UNION
ALL等。可以使用<,>, <=, >=, =, <>运算符进行比较,也可以使用ANY
,IN和SOME进行集合的匹配。
发表评论
-
【Mysql】Windows下data文件迁移到别的磁盘,win10_win7开发机磁盘满了怎么办?
2022-01-04 17:21 260= = = 网上的处理办法是: 1备份数据。 ... -
【转】MySQL数据库之数据类型BOOL/BOOLEAN与TINYINT测试总结
2020-04-12 15:54 705= = = (一) 数据类型测试 (1). 布尔类型 ... -
IDEA连接mysql又报错!Server returns invalid timezone.
2020-04-08 11:10 445= 解决方法: 在sql ... -
mysql.sock作用-解决mysql.sock直接找不到了的问题-重新生成mysql.sock
2018-04-11 14:48 4967= = = mysql.sock作用-解决mysql. ... -
Mybatis之foreach批量insert返回主键id列表_Jdbc批量插入并返回主键id列表
2017-01-17 17:35 24922016/05/14 14:14 然而官方已经修复了 @a ... -
Mysql的wait_timeout解决-MySQL查看和修改wait_timeout
2015-07-23 19:45 6298mysql存在一项属性“wait_timeout”, ... -
Ubuntu_Mysql_移动数据存储位置_软连接失败_软连接var目录失败
2013-06-10 23:48 2257linux系统对权限的控制很好,但也成为各种问题的多 ... -
DB-Mysql-Can't connect to local MySQL server through socket '/var/run/mysqld/mys
2013-04-24 11:03 1688错误病症: Error: Can't connec ... -
(摘)DB_MySql_命令行_SQL结果_导出到文本_方法小结
2012-05-20 00:01 1540点评:第3个方法很好阿! 有时候需要把数据 ... -
MySQL_使用group_distinct后_如何得到总记录数(行数)
2012-03-22 19:48 2064MySQL_使用group_distinct� ... -
MySQL_用一条SQL语句删除重复记录
2011-12-08 13:51 1690MySQL 一条SQL语句删除重复记录 不正确的 ... -
MySQL_导入导出工具mysqlimport用法详解
2011-09-30 17:00 2972MySQL_导入导出工具mys ... -
Mysql_mysqldump命令错误解决_
2011-09-30 16:16 1612Error|错误: mysqldump: Got er ... -
Mysql_不能用ip链接_能用localhost127.0.0.1链接_Ubuntu
2011-09-30 13:57 2964Mysql_不能用ip链接_能用localhost 和 ... -
Mysql_字符集设置
2011-09-20 22:48 1295Linux Ubuntu ubuntu上mys ... -
Mysql_字符串函数大全
2011-08-23 16:41 1170如果结果的长度大于服务器参数max_allowed ... -
数据库sql语句的exists总结
2011-08-11 18:53 4066数据库sql语句的exists总� ... -
查看memcache状态及缓存命中_持续整理中
2011-08-04 15:44 1956先占个位置: 之前是在使用网上有人用 ... -
Sql_拾疑_整理_搜集
2011-08-03 19:24 1202MYSQL是目前用的,如有变化,会说明。 #Union ... -
Mysql_AddOrUpdate_A better way to add or update MySQL rows
2011-03-03 13:11 1503有时候,这个东西能省略不少事情~ INSERT I ...
相关推荐
- 当子查询结果集过大时,考虑使用JOIN或其他方法优化。 通过以上介绍,我们可以看到MySQL子查询在数据查询和分析中的强大功能。正确理解和运用子查询能帮助我们编写出更加高效和灵活的SQL语句,解决复杂的数据库...
优化子查询可以通过使用JOIN操作、临时表或者将子查询结果缓存到变量中来提高效率。如果子查询结果不会改变,可以考虑使用存储过程或视图来预先计算并存储结果。 5. **子查询与联接**: 在某些情况下,子查询可以...
2. 子查询(Subquery):子查询是在一个查询语句中嵌套另一个查询,用于获取临时结果,然后这个结果被外部查询使用。子查询可以出现在SELECT、FROM或WHERE子句中。 3. 联合查询(UNION):联合查询用于合并两个或更...
子查询常用来筛选满足特定条件的数据,或者在不知道如何联接两个表时提供临时结果集。 索引(Index)是数据库管理系统中的一个重要组成部分,用于快速查找记录。MySQL支持多种类型的索引,包括B-Tree、Hash、R-Tree...
5. **减少子查询的重复执行**:如果子查询会被多次调用,尝试将其结果存储在一个临时表中,然后在后续查询中使用这个临时表。 6. **预处理数据**:在插入数据时,可以预先计算好某些字段,如上述示例中item的随机...
Oracle的物化视图在MySQL中没有直接对应的概念,可能需要通过创建临时表或定期更新的视图来实现类似功能。 10. **索引优化**: Oracle支持位图索引、函数索引等高级特性,MySQL则相对较简单,但也有覆盖索引、...
- 子查询通常用于复杂逻辑或临时数据集的构建,可以作为过滤条件,也可以在联接查询中作为源。 4. **联接条件与ON子句**: - 在JOIN操作中,ON子句用于指定连接两个表的条件,这通常是基于两个表中某个字段的等值...
2. **在FROM子句中**:子查询可以作为一个临时表,供主查询操作。这在处理复杂的多表关系时非常有用。例如,用子查询获取每个部门的最高薪水: ```sql SELECT department, MAX(salary) FROM (SELECT department, ...
第二种方法是将子查询结果与主查询合并,形成一个JOIN操作,这样可以减少对主表的扫描次数,提高查询速度。 ``` SELECT ps.* FROM cdb_playsgame ps, (select ps1.uid, ps1.gametag, MAX(credits) as credits ...
它通过递归调用自身,从起始节点开始向上查找其父节点,并将父节点的信息存储到临时表`tmpLst`中。 ##### 3.2 模拟Oracle中的SYS_CONNECT_BY_PATH功能 ```sql -- Procedure structure for pro_cre_pathlist DROP ...
子查询可以作为FROM子句的一部分,或者在WHERE、HAVING、SELECT或HAVING子句中作为表达式。例如,创建一个名为t1的表,并插入数据后,我们可以进行嵌套查询来选择s1大于1的记录并计算sb3(s3的两倍): ```sql ...
除了JOIN和子查询,还有其他跨表查询技术,如自连接、临时表和存储过程等。自连接是将一个表与自身进行连接,通常用于处理层次结构或自我参照的数据。临时表是在会话期间创建的临时存储区域,用于中间计算或存储结果...
【大厂面试题】史上最详细的一线大厂Mysql面试题详解MySQL执行计划及...执行子查询时,MYSQL需要创建临时表,查询完毕后再删除这些临时表,所以,子查询的速 度会受到一定的影响,这里多了一个创建和销毁临时表的过程。
**子查询**可以在 `SELECT`、`INSERT`、`UPDATE` 或 `DELETE` 语句中使用,用来嵌套查询以获取更复杂的结果。 - 示例:查询部门人数最多的部门及其人数。 ```sql SELECT d.name, COUNT(e.id) AS employee_count ...
5. **考虑使用临时表**:对于复杂的子查询,可以先将结果存入临时表,然后再进行后续操作。 6. **使用LIMIT优化**:如果只需要满足条件的第一条记录,可以使用LIMIT 1来减少查询开销。 通过理解子查询的工作原理并...
子查询允许在一个查询内部嵌套另一个查询,用于获取临时结果集: ```sql SELECT * FROM table_name WHERE column IN (SELECT column FROM another_table WHERE condition); ``` 五、视图 视图是虚拟表,基于一个...
有时,可以使用JOIN或临时表来替代子查询,从而提高性能。 此外,GROUP BY和HAVING子句用于分组和筛选数据,它们常与聚合函数(如COUNT、SUM、AVG等)一起使用。在处理大量数据时,合理地使用GROUP BY和HAVING可以...
子查询是多表查询的另一个重要组成部分,它可以嵌套在主查询中,用于提供临时的结果集。子查询可以作为选择条件,也可以用于计算或过滤数据。例如,找出工资高于部门平均工资的员工: ```sql SELECT * FROM emp ...