Sql 查询一张表中哪些字段做了外键跟哪些表关联了

要查询一张表中哪些字段做了外键以及它们与哪些表关联了,你可以使用SQL的系统表或信息模式(Information Schema)来查询。

以下是一个通用的方法,适用于大多数关系型数据库(如MySQL, PostgreSQL, SQL Server等):

复制代码
复制代码
`SELECT
fk.table_name AS 'Child Table',
fk.column_name AS 'Foreign Key Column',
ref.table_name AS 'Parent Table',
ref.column_name AS 'Referenced Column'
FROM
information_schema.key_column_usage AS fk
JOIN
information_schema.key_column_usage AS ref
ON
fk.constraint_name = ref.constraint_name
WHERE
fk.table_schema = 'your_database_name' -- 替换为你的数据库名
AND fk.table_name = 'your_table_name'; -- 替换为你想要查询的表名`

这个查询会返回你指定的表中所有外键字段及其对应的父表和父表中的引用字段。

请注意,不同的数据库可能会有细微的语法差异或额外的系统表/视图来提供此类信息。所以,如果上述查询在你的数据库上不工作,你可能需要查阅该数据库的官方文档来找到正确的方法。

另外,如果你只是想快速查看表的结构和关系,许多数据库管理工具(如MySQL Workbench, pgAdmin, SQL Server Management Studio等)都提供了图形化的界面来查看这些信息。

相关推荐
Adair_z9 小时前
[SEO艺术重读] 第13篇 SEO教育与研究
java·网络·数据库
不爱吃糖の糖糖9 小时前
RAG 04:向量数据库与索引算法
数据库·算法
逍遥德9 小时前
PostgreSQL --- JSON 函数详解
数据库·sql·postgresql·json
Larcher9 小时前
后续:上次的优化又崩了?这次是 SQLite WAL 把 Codex 直接卡死了
数据库·人工智能·github
小马爱打代码9 小时前
MySQL高可用与扩展:主从复制、读写分离、分库分表
服务器·数据库·mysql
m0_740859629 小时前
Docker安装常见数据库命令汇总(2026)
数据库·docker·容器
j7~9 小时前
【MYSQL】 复合查询--详解(重点)
数据库·mysql·子查询·多表查询·自链接·合并查询
睡不醒男孩0308239 小时前
PostgreSQL 高可用怎么做?我为什么选择了 CLup
数据库·postgresql
正在走向自律9 小时前
标量子查询消除这事儿,我琢磨了三个晚上
数据库
better_liang9 小时前
每日Java面试场景题知识点之-数据库与缓存的一致性
java·数据库·redis·面试·分布式系统·缓存一致性·cache aside