Comment utiliser les touches pour accéder rapidement aux informations dans une base de données SQL

Une bonne règle pour la conception de base de données SQL est de faire en sorte que chaque ligne d'une table de base de données se distingue de tous les autres row- chaque ligne doit être unique. Parfois, vous voudrez peut-être pour extraire des données à partir de votre base de données pour un objectif précis (comme une analyse statistique), et, ce faisant, finissent par créer des tableaux dans lesquels les lignes ne sont pas nécessairement unique.

Sommaire

Pour un tel but limité, ce genre de duplication n'a pas d'importance. Tables que vous pouvez utiliser dans plus d'une façon, cependant, ne doivent pas contenir de lignes dupliquées.

UN clé est un attribut (ou combinaison d'attributs) qui identifie de façon unique une ligne dans une table. Pour accéder à une ligne dans une base de données, vous devez disposer d'un moyen de distinguer cette ligne de toutes les autres lignes. Parce que les clés doivent être uniques, ils offrent un tel mécanisme d'accès.

En outre, une clé doit jamais contenir une valeur nulle. Si vous utilisez les touches NULL, vous ne pouvez pas être en mesure de faire la distinction entre deux rangées qui contiennent un champ clé nulle.

Prenons un exemple d'un vétérinaire-lab: vous pouvez désigner les colonnes appropriées comme clés. Dans le tableau de CLIENT, Nom du client est une bonne clé. Cette clé peut distinguer chaque client individuel de tous les autres clients. Par conséquent entrer une valeur dans cette colonne devient obligatoire pour chaque ligne de la table.

TestName et Nom de l'employé prendre les bonnes touches pour les tests et les tables de l'employé. Numéro de commande et ResultNumber prendre les bonnes touches pour les commandes et les tableaux de résultats. Assurez-vous que vous entrez une valeur unique pour chaque ligne.




Vous pouvez avoir deux types de clés: les clés primaires et clés étrangères.

Les clés primaires

UN clé primaire est une colonne ou une combinaison de colonnes dans un tableau avec des valeurs qui identifient de façon unique les lignes dans la table. Pour incorporer l'idée de clés dans la base de données de VetLab, vous pouvez spécifier la clé primaire d'une table que vous créez la table. Dans l'exemple suivant, une seule colonne est suffisante (en supposant que tous les clients de VetLab ont des noms uniques):

CREATE TABLE CLIENT (ClientName CHAR (30) PRIMARY KEY, Address1 CHAR (30), Address2 CHAR (30), CityCHAR (25), StateCHAR (2), PostalCode CHAR (10), PhoneCHAR (13), fax CHAR (13) , ContactPerson CHAR (30)) -

La contrainte CLÉ PRIMAIRE remplace la contrainte NOT NULL, donnée dans la définition antérieure de la table CLIENT. La CLÉ PRIMAIRE contrainte implique la NOT NULL contrainte, car une clé primaire ne peut pas avoir une valeur nulle.

Bien que la plupart des SGBD vous permettent de créer une table sans clé primaire, toutes les tables dans une base de données devraient en avoir un. Avec cela à l'esprit, remplacer le NOT NULL contrainte dans toutes vos tables. Dans l'exemple, les tests, tables EMPLOYÉS, commandes, et les résultats devraient avoir la CLÉ PRIMAIRE contrainte, comme dans l'exemple suivant:

Créer des tests DE TABLE (TestName CHAR (30) PRIMARY KEY, StandardCharge char (30)) -

Parfois, pas une seule colonne dans une table peut garantir l'unicité. Dans de tels cas, vous pouvez utiliser un clé composite - une combinaison de colonnes qui garantissent l'unicité lorsqu'ils sont utilisés ensemble. Imaginez que certains des clients de VetLab sont des chaînes qui ont des bureaux dans plusieurs villes. Nom du client ne suffit pas de faire la distinction entre deux succursales du même client. Pour gérer cette situation, vous pouvez définir une clé composée comme suit:

CREATE TABLE CLIENT (ClientName CHAR (30) NOT NULL, Address1CHAR (30), Address2CHAR (30), Ville CHAR (25) NOT NULL, StateCHAR (2), PostalCode CHAR (10), PhoneCHAR (13), fax CHAR (13 ), ContactPerson CHAR (30), la contrainte BranchPK PRIMARY KEY (ClientName, City)) -

Comme une alternative à l'aide d'une clé composite à identifier de manière unique un enregistrement, vous pouvez laisser vos SGBD attribuer un automatiquement, Access fait en suggérant que le premier champ dans une nouvelle table être nommé ID et être du type Autonumber. Une telle clé n'a pas de sens en soi. Son seul but est d'être un identifiant unique.

Les clés étrangères

UN clé étrangère est une colonne ou un groupe de colonnes dans un tableau qui correspond à ou fait référence à une clé primaire dans une autre table dans la base de données. Une clé étrangère ne doit pas être unique, mais il doit identifier de manière unique la colonne (s) dans le tableau particulier que les références clés.

Si le Nom du client colonne est la clé primaire dans la table de client (par exemple), chaque ligne de la table de client doit avoir une valeur unique dans la Nom du client colonne. Nom du client est une clé étrangère dans la table Orders. Cette clé étrangère correspond à la clé primaire de la table de client, mais la clé ne doit pas être unique dans la table Orders.

En fait, vous espérez la clé étrangère est pas unique- si chacun de vos clients vous a donné un seul ordre, puis n'a jamais ordonné à nouveau, vous souhaitez sortir de l'entreprise assez rapidement. Vous espérez que de nombreuses lignes de la table COMMANDES correspondent à chaque ligne de la table de clients, signalant que presque tous vos clients sont des clients réguliers.

La définition suivante de la table COMMANDES montre comment vous pouvez ajouter le concept de clés étrangères à un CREATE déclaration:

CREATE TABLE commandes (OrderNumber ENTIER clé primaire, ClientName CHAR (30), TestOrdered CHAR (30), Salesperson CHAR (30), OrderDate DATE, CONTRAINTE NameFK clé étrangère (ClientName) Références CLIENT (ClientName), la contrainte TestFK FOREIGN KEY (TestOrdered) Références TESTS (Nomtest), la contrainte SalesFK FOREIGN KEY (Salesperson) RÉFÉRENCES EMPLOYÉ (EmployeeName)) -

Dans cet exemple, les clés étrangères dans la table COMMANDES lien qui table pour les clés primaires des tables CLIENT, des tests, et l'employé.


» » » » Comment utiliser les touches pour accéder rapidement aux informations dans une base de données SQL