mysql区分外部表和内部表吗
时间: 2023-09-06 07:13:20 浏览: 112
在MySQL中,通常所说的“外部表”指的是Federated表,它是一种特殊的表类型,可以让MySQL服务器通过网络连接到另一个MySQL服务器上的表。而“内部表”则是指本地的普通表。
在MySQL中,可以通过SHOW TABLE STATUS命令查看表的信息,其中的Comment字段可以显示表的类型,如果是FEDERATED,则表示是一个外部表。另外,也可以通过查询INFORMATION_SCHEMA.TABLES表来获取表的信息,其中的TABLE_TYPE字段可以指示表的类型,如果值是FEDERATED,则表示是一个外部表。
相关问题
mysql中的相关自查询和非相关子查询
MySQL中的相关子查询和不相关子查询主要通过它们与外部查询的关系来区分。相关子查询(亦称为关联子查询)嵌套在另一个查询的FROM或WHERE子句中,其结果取决于外部查询的操作。例如:
相关子查询示例[^1]:
```sql
SELECT product_name, price
FROM products
WHERE price > (SELECT AVG(price) FROM products);
```
在这个例子中,内部查询计算products表中所有产品的平均价格,外部查询则查找价格高于这个平均值的产品。
相比之下,不相关子查询的结果在查询开始时就确定,不会随着外部查询的每次迭代而改变。例如:
不相关子查询示例:
```sql
SELECT product_name, price
FROM (
SELECT product_id, price
FROM products
WHERE category_id = 1
) AS subquery
JOIN categories ON subquery.product_id = categories.id;
```
这里,内部查询先找出category_id为1的产品ID和价格,然后再把这些信息用于外部查询,与外部查询的结果无关。
阅读全文