mysql嵌套查询方式

嵌套查询
语法格式:
SELECT 字段名表达式
FROM 表名
WHERE 表达式 运算符(SELECT 子查询)
SQL语言允许多层嵌套查询,即一个子查询中还可以嵌套其他子查询。需要特别指出的是,子查询的 SELECT语句中不能使用 ORDER BY子句, ORDER BY子句只能对最终查询结果排序。

带有比较运算符的子查询
带有比较运算符的子查询指父查询与子查询之间用比较运算符进行连接,当用户能确切知道内层查询返回的是单值时可以用>、<、=、>=、<=、!=、<>等比较运算符

带有EXISTS谓词的子查询
带有EXISTS 谓词的子查询不返回任何数据,只产生逻辑真值“true”或逻辑假值“false”。

带有IN谓词的子查询
在嵌套查询中,子查询的结果往往是一个集合,所以谓词 IN 是嵌套查询中最经常使用的谓词。
聚合函数
聚合函数就是对一组值执行计算并返回单一的值
(1) count()统计行的数量;
(2) sum()计算某个列的合计值;
(3) avg()计算某个列的平均值;
(4) max()计算某个列的最大值;
(5) min()计算某个列的最小值;
(6) count_big()返回指定组中的项目数量。
(7) grouping()产生一个附加的列。
(8) binary_checksum() 返回对表中的行或表达式列表计算的二进制校验值,用于检测表中行的更改。
(9) checksum_agg() 返回指定数据的校验值,空值被忽略。
(10) checksum() 返回在表的行上或在表达式列表上计算的校验值,用于生成哈希索引。
(11) stdev()返回给定表达式中所有值的统计标准偏差。
(12) stdevp() 返回给定表达式中的所有值的填充统计标准偏差。
(13) var() 返回给定表达式中所有值的统计方差。
(14) varp()返回给定表达式中所有值的填充的统计方差。
索引类型
1.普通索引:是最基本的索引,它没有任何限制。
CREATE INDEX 索引名 ON 表名 (字段名);
2.唯一索引:索引列的值必须唯一,但允许有空值。
CREATE UNIQUE INDEX索引名ON表名(字段名);
3.主键索引:是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值。一般是在建表的时候同时创建主键索引。
建表时使用PRIMARY KEY 关键字创建。
4.组合索引:指多个字段上创建的索引,只有在查询条件中使用了创建索引时的第一个字段,索引才会被使用。使用组合索引时遵循最左前缀集合。
ALTER TABLE 表名 ADD INDEX 索引名 (字段名, 字段名, 字段名,……);
5.全文索引:主要用来查找文本中的关键字,只能在 CHAR、VARCHAR 或 TEXT 类型的列上创建。在 MySQL 中只有 MyISAM 存储引擎支持全文索引。全文索引允许在索引列中插入重复值和空值
CREATE FULLTEXT INDEX 索引名 ON 表名(字段名);

### MySQL 嵌套查询语法示例 在 MySQL 中,嵌套查询通常通过子查询实现。子查询可以出现在 `SELECT`、`INSERT`、`UPDATE` 或 `DELETE` 语句中,并且可以在 `WHERE` 子句或 `FROM` 子句中使用[^3]。 以下是几个常见的嵌套查询语法示例: #### 示例 1: 使用子查询作为条件 ```sql SELECT a, b FROM t1 WHERE a IN ( SELECT DISTINCT a + 1 AS e FROM t2 ); ``` 此查询从表 `t2` 中计算列 `a + 1` 的唯一值,并将其用于过滤表 `t1` 中的记录。 #### 示例 2: 左连接中的子查询 ```sql SELECT a, b FROM t1 LEFT JOIN ( SELECT DISTINCT a + 1 AS e FROM t2 ) d ON t1.a = d.e WHERE t1.b < 0 OR d.e IS NOT NULL; ``` 在此查询中,子查询被用作临时表 (`d`) 并与主表 `t1` 进行左连接操作。 #### 示例 3: 多层嵌套查询 ```sql SELECT * FROM t1 WHERE id IN ( SELECT parent_id FROM t2 WHERE status = 'active' AND value > ANY ( SELECT amount FROM t3 WHERE category = 'A' ) ); ``` 该查询展示了多层嵌套结构。外层查询基于中间层的结果筛选数据,而中间层又依赖于最内层的比较结果[^5]。 --- ### JSON 数据处理中的路径表达式支持 如果涉及 JSON 类型的数据,则可以通过 `JSON_SEARCH` 函数配合路径表达式来查找特定键对应的值[^1]。例如: ```sql SELECT JSON_SEARCH('{"key": "value"}', 'one', 'value') AS result; ``` 上述例子会返回匹配到的第一个位置字符串表示形式 `"$.key"`。 --- ### 输入文件字段顺序调整时的要求 当导入外部数据源至数据库表时,若输入文件中的字段排列次序不同于目标表格定义,则需显式声明对应关系;否则系统无法自动映射两者之间的关联[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一叶一码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值