Maison >base de données >Oracle >clé étrangère de requête Oracle
Clés étrangères Oracle Query
Dans la conception de bases de données, les clés étrangères sont l'une des contraintes importantes qui connectent deux tables. Une clé étrangère est une ou plusieurs colonnes d'une table dont la valeur correspond à la valeur d'une clé primaire ou d'une colonne de clé unique dans une autre table. Les clés étrangères garantissent l’intégrité et la cohérence des données. Lorsqu'une clé étrangère est utilisée lorsqu'une ligne est insérée, mise à jour ou supprimée dans la table maître, elle effectue automatiquement l'opération correspondante dans la table esclave.
L'interrogation de clés étrangères est l'un des aspects importants de la gestion de bases de données. Dans Oracle Database, la manière dont vous interrogez les clés étrangères dépend des informations que vous souhaitez obtenir. Voici quelques requêtes de la liste qui peuvent être utiles.
Interroger toutes les clés étrangères d'une table spécifique
Dans Oracle, vous pouvez utiliser la requête suivante pour rechercher toutes les clés étrangères d'une table spécifique :
SELECT constraint_name, table_name, column_name,owner
FROM all_cons_columns
WHEREowner = ' YourTableName ' AND constraint_name LIKE 'FK_%' ORDER BY constraint_name;
Cette requête renverra le nom de la contrainte, le nom de la table, le nom de la colonne et le propriétaire de toutes les clés étrangères de la table donnée.
Requête d'une clé étrangère spécifique dans une table spécifique
Si vous souhaitez uniquement trouver une clé étrangère spécifique dans une table donnée, vous pouvez utiliser la requête suivante :
SELECT constraint_name, table_name, column_name,owner
FROM all_cons_columns
WHERE constraint_name = 'YourForeignKeyName' ANDowner = 'YourTableName';
Cela renverra le nom de la contrainte, le nom de la table, le nom de la colonne et le propriétaire de la clé étrangère spécifique portant le nom spécifié.
Requête des tables référencées par toutes les clés étrangères
Pour rechercher des tables référencées par des clés étrangères, utilisez la requête suivante :
SELECT DISTINCT f.constraint_name, r.table_name, f.table_name
FROM all_constraints r, all_constraints f
WHERE r. constraint_type = 'P'
AND f.r_constraint_name = r.constraint_name
and f.constraint_type = 'R';
Cette requête renverra les noms de contraintes de toutes les clés étrangères, tables de référence et noms de tables associés.
Interrogez les tables et colonnes référencées (principales) d'une clé étrangère
Pour trouver les tables et colonnes qui référencent une clé étrangère, utilisez la requête suivante :
SELECT c.table_name, c.column_name, cc.table_name ref_table, cc.column_name ref_column , c.constraint_name
FROM all_constraints c, all_constraints cc
WHERE cc.owner = c.r_owner AND cc.constraint_name = c.r_constraint_name
AND c.constraint_type = 'R';
Cela renverra le nom de la table , colonne de la clé étrangère Une liste de noms, de noms de tables associés, de noms de colonnes associés et de noms de contraintes.
Requête de détails sur les clés étrangères
Vous pouvez utiliser la requête suivante pour obtenir des détails sur les clés étrangères :
SELECT constraint_name, table_name, status, delete_rule, deferrable, validated
FROM all_constraints c
WHERE constraint_type = 'R' ANDowner = 'YourTableName' AND constraint_name = 'YourForeignKeyName';
Cette requête renverra des détails sur la clé étrangère tels que le nom de la contrainte, le nom de la table, le statut, les règles de suppression, la déférabilité et le statut de validation.
En conclusion, l'interrogation de clés étrangères est un aspect important de la gestion de bases de données pour garantir l'intégrité et la cohérence des données entre les tables. Dans Oracle, vous pouvez utiliser diverses requêtes pour rechercher des informations sur les clés étrangères. Les requêtes répertoriées ci-dessus font partie de quelques-unes que vous pouvez utiliser et qui renverront les détails d'une clé étrangère et des informations sur la table et la colonne auxquelles la clé étrangère fait référence.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!