Créer ou modifier des tables ou index à l’aide d’une requête Définition des données

Remarque : Nous faisons de notre mieux pour vous fournir le contenu d’aide le plus récent aussi rapidement que possible dans votre langue. Cette page a été traduite automatiquement et peut donc contenir des erreurs grammaticales ou des imprécisions. Notre objectif est de faire en sorte que ce contenu vous soit utile. Pouvez-vous nous indiquer en bas de page si ces informations vous ont aidé ? Voici l’article en anglais à des fins de référence aisée.

Vous pouvez créer et modifier des tables, des contraintes, des index et des relations dans Access en écriture de requêtes Définition des données en mode SQL. Cet article explique les requêtes Définition des données et comment les utiliser pour créer des tables, des contraintes, des index et des relations. Cet article peut également vous aider à déterminer quand utiliser une requête Définition des données.

Contenu de cet article

Vue d’ensemble

Créer ou modifier une table

Créer un index

Créer une contrainte ou une relation

Vue d’ensemble

Contrairement aux autres requêtes Access, une requête Définition des données ne récupère pas les données. En revanche, une requête Définition des données utilise Data Definition Language pour créer, modifier ou supprimer des objets de base de données.

Remarque : Langage DDL (Data Definition) fait partie du langage SQL (Structured Query).

Définition des données peut être très pratique. Vous pouvez régulièrement supprimer et recréer certaines parties du schéma de votre base de données simplement en exécutant des requêtes. Envisagez d’utiliser une requête Définition des données si vous connaissez les instructions SQL et que vous souhaitez supprimer et recréer tables particuliers, contraintes, index ou des relations.

Avertissement : À l’aide de requêtes Définition des données pour modifier des objets de base de données peut être risquée, car les actions ne sont pas accompagnées de boîtes de dialogue de confirmation. Si vous faites une erreur, vous pouvez perdre des données ou modifier par inadvertance la conception d’une table. En veillant à ne lorsque vous utilisez une requête Définition des données pour modifier des objets dans votre base de données. Si vous n’êtes pas responsable de la base de données que vous utilisez, vous devez consulter l’administrateur de la base de données avant d’exécuter une requête Définition des données.

Important : Créer une copie de sauvegarde de toutes les tables concernées avant d’exécuter une requête Définition des données.

Mots clés DDL

Mot-clé

Utilisez

CREATE

Créer un index ou une table qui n’existe pas déjà.

ALTER

Modifier une table existante ou une colonne.

DROP

Supprimer une table existante, une colonne ou une contrainte.

ADD

Ajouter une colonne ou une contrainte à une table.

COLUMN

Utilisez avec l’option Ajouter, modifier, ou supprimer

CONSTRAINT

Utilisez avec l’option Ajouter, modifier, ou supprimer

INDEX

Utilisation avec créer

TABLE

Utiliser avec ALTER, CREATE, ou supprimer

Haut de la page

Créer ou modifier une table

Pour créer un tableau, vous utilisez une commande Créer un tableau. Une commande CREATE TABLE utilise la syntaxe suivante :

CREATE TABLE table_name 
(field1 type [(size)] [NOT NULL] [index1]
[, field2 type [(size)] [NOT NULL] [index2]
[, ...][, CONSTRAINT constraint1 [, ...]])

La seule obligatoire éléments d’une commande CREATE TABLE sont la commande Créer une TABLE elle-même et le nom de la table, mais en règle générale, vous souhaitez définir certains champs ou autres aspects de la table. Prenons l’exemple simple.

Supposons que vous voulez créer une table pour stocker le nom, année et le prix de voitures que vous envisagez d’à l’achat. Vous voulez autoriser jusqu'à 30 caractères du nom et de 4 caractères pour l’année. Pour utiliser une requête Définition des données pour créer une table, procédez comme suit :

Remarque : Vous devrez tout d’abord activer le contenu de la base de données pour une requête Définition des données à exécuter :

  • Dans la barre des messages, cliquez sur Activer le contenu.

Créer un tableau

  1. Sous l’onglet créer, dans le groupe Macros et Code, cliquez sur Création de requête.

  2. Fermez la boîte de dialogue Afficher la table.

  3. Sous l’onglet Création, dans le groupe Type de requête, cliquez sur La définition des données.

    La grille de création est masquée, et l’onglet d’objet SQL vue s’affiche.

  4. Tapez l’instruction SQL suivante :

    CRÉER la TABLE course (nom TEXT(30), année TEXT(4), prix devise)

  5. Sous l’onglet Créer, dans le groupe Résultats, cliquez sur Exécuter.

Modifier un tableau

Pour modifier une table, vous utilisez une commande ALTER TABLE. Vous pouvez utiliser une commande ALTER TABLE pour ajouter, modifier ou supprimer des colonnes (supprimer) ou les contraintes. Une commande ALTER TABLE utilise la syntaxe suivante :

ALTER TABLE table_name predicate

où prédicat peut être l’une des opérations suivantes :

ADD COLUMN field type[(size)] [NOT NULL] [CONSTRAINT constraint]

ADD CONSTRAINT multifield_constraint

ALTER COLUMN field type[(size)]

DROP COLUMN field

DROP CONSTRAINT constraint

Supposons que vous voulez ajouter un champ de texte de 10 caractères pour stocker des informations sur la condition de chaque voiture. Vous pouvez effectuer les opérations suivantes :

  1. Sous l’onglet créer, dans le groupe Macros et Code, cliquez sur Création de requête.

  2. Fermez la boîte de dialogue Afficher la table.

  3. Sous l’onglet Création, dans le groupe Type de requête, cliquez sur La définition des données.

    La grille de création est masquée, et l’onglet d’objet SQL vue s’affiche.

  4. Tapez l’instruction SQL suivante :

    ALTER TABLE voitures Ajouter colonne Condition TEXT(10)

  5. Sous l’onglet Créer, dans le groupe Résultats, cliquez sur Exécuter.

Haut de la page

Créer un index

Pour créer un index sur une table existante, vous utilisez une commande Créer un INDEX. Une commande CREATE INDEX utilise la syntaxe suivante :

CREATE [UNIQUE] INDEX index_name
ON table (field1 [DESC][, field2 [DESC], ...])
[WITH {PRIMARY | DISALLOW NULL | IGNORE NULL}]

Les seuls éléments requis sont la commande CREATE INDEX, le nom de l’index, l’argument activé, le nom de la table qui contient les champs que vous souhaitez index et la liste des champs à inclure dans l’index.

  • Les causes argument DESC l’index doit être créé dans l’ordre décroissant, qui peut être utile si vous exécutez fréquemment des requêtes qui recherchez premières valeurs pour le champ indexé ou qui trier l’indexé du champ dans l’ordre décroissant. Par défaut, un index est créé dans l’ordre croissant.

  • L’argument WITH PRIMARY définit l’ou les champs indexés comme clé primaire de la table.

  • L’argument avec interdire NULL entraîne l’index obligatoire l’introduction d’une valeur pour le champ indexé — c'est-à-dire que les valeurs null ne sont pas autorisés.

Supposons que vous ayez une table nommée voitures avec des champs qui stockent le nom, année, prix et condition de voitures que vous envisagez d’à l’achat. Supposons également que la table est devenu volumineuse et que le champ year fréquemment inclure dans les requêtes. Vous pouvez créer un index sur le champ Year pour aider vos requêtes retourner des résultats plus rapidement à l’aide de la procédure suivante :

  1. Sous l’onglet créer, dans le groupe Macros et Code, cliquez sur Création de requête.

  2. Fermez la boîte de dialogue Afficher la table.

  3. Sous l’onglet Création, dans le groupe Type de requête, cliquez sur La définition des données.

    La grille de création est masquée, et l’onglet d’objet SQL vue s’affiche.

  4. Tapez l’instruction SQL suivante :

    CRÉER des INDEX YearIndex ON voitures (année)

  5. Sous l’onglet Créer, dans le groupe Résultats, cliquez sur Exécuter.

Haut de la page

Créer une contrainte ou une relation

Une contrainte établit une condition logique un champ ou une combinaison de champs doit respecter lorsque les valeurs sont insérés. Par exemple, une contrainte UNIQUE empêche le champ limité d’accepter une valeur qui serait dupliquer une valeur existante pour le champ.

Une relation est un type de contrainte qui fait référence aux valeurs d’un champ ou une combinaison de champs dans une autre table afin de déterminer si une valeur peut être insérée dans le champ contrainte ou une combinaison de champs. Vous n’utilisez pas un mot clé spécial pour indiquer qu’une contrainte est une relation.

Pour créer une contrainte, vous utilisez une clause de contrainte dans une commande CREATE TABLE ou ALTER TABLE. Il existe deux types de clauses CONSTRAINT : une pour la création d’une contrainte sur un seul champ et un autre pour la création d’une contrainte sur plusieurs champs.

Contraintes de champ unique

Une clause de contrainte champ unique suit immédiatement la définition du champ qu’il restreint et utilise la syntaxe suivante :

CONSTRAINT constraint_name {PRIMARY KEY | UNIQUE | NOT NULL |
REFERENCES foreign_table [(foreign_field)]
[ON UPDATE {CASCADE | SET NULL}]
[ON DELETE {CASCADE | SET NULL}]}

Supposons que vous ayez une table nommée voitures avec des champs qui stockent le nom, année, prix et condition de voitures que vous envisagez d’à l’achat. Supposons également que vous avez oublié fréquemment entrer une valeur condition de la voiture, et que vous voulez toujours enregistre les informations ci-dessous. Vous pouvez créer une contrainte sur le champ Condition qui vous évite de laisser le champ vide, à l’aide de la procédure suivante :

  1. Sous l’onglet créer, dans le groupe Macros et Code, cliquez sur Création de requête.

  2. Fermez la boîte de dialogue Afficher la table.

  3. Sous l’onglet Création, dans le groupe Type de requête, cliquez sur La définition des données.

    La grille de création est masquée, et l’onglet d’objet SQL vue s’affiche.

  4. Tapez l’instruction SQL suivante :

    ALTER TABLE voitures ALTER colonne Condition texte contrainte condition non NULL

  5. Sous l’onglet Créer, dans le groupe Résultats, cliquez sur Exécuter.

Supposons à présent que, après un certain temps, vous remarquerez qu’il existe plusieurs valeurs similaires dans le champ de Condition doit être identique. Par exemple, certaines des voitures ont une valeur de Condition d’un problème et d’autres personnes ont une valeur de mauvaises.

Remarque : Si vous voulez suivre ainsi que les autres procédures, ajouter des liens fictifs de données à la table de voitures que vous avez créé des étapes précédentes.

Après avoir nettoyé les valeurs afin qu’ils soient plus cohérentes, vous pouvez créer une table, nommée CarCondition, avec un champ nommé Condition, qui contient toutes les valeurs que vous souhaitez utiliser pour la condition de voitures :

  1. Sous l’onglet créer, dans le groupe Macros et Code, cliquez sur Création de requête.

  2. Fermez la boîte de dialogue Afficher la table.

  3. Sous l’onglet Création, dans le groupe Type de requête, cliquez sur La définition des données.

    La grille de création est masquée, et l’onglet d’objet SQL vue s’affiche.

  4. Tapez l’instruction SQL suivante :

    CRÉER la TABLE CarCondition (Condition TEXT(10))

  5. Sous l’onglet Créer, dans le groupe Résultats, cliquez sur Exécuter.

  6. Créer une clé primaire pour la table à l’aide d’une instruction ALTER TABLE :

    ALTER TABLE CarCondition ALTER colonne Condition texte contrainte CarConditionPK clé primaire

  7. Pour insérer les valeurs du champ Condition de la table de voitures dans la nouvelle table CarCondition, tapez l’instruction SQL suivante dans l’onglet objet du mode SQL :

    INSERTION dans CarCondition SELECT DISTINCT Condition de voitures ;

    Remarque : L’instruction SQL dans cette étape est un requête Ajout. Contrairement à une requête Définition des données, une requête Ajout se termine par un point-virgule.

  8. Sous l’onglet Créer, dans le groupe Résultats, cliquez sur Exécuter.

Créer une relation à l’aide d’une contrainte

Pour exiger que n’importe quelle valeur nouveau inséré dans le champ Condition de la table Course correspond à une valeur du champ Condition dans la table CarCondition, vous pouvez puis créer une relation entre CarCondition et de voitures sur le champ nommé Condition, en utilisant la commande Procédure :

  1. Sous l’onglet créer, dans le groupe Macros et Code, cliquez sur Création de requête.

  2. Fermez la boîte de dialogue Afficher la table.

  3. Sous l’onglet Création, dans le groupe Type de requête, cliquez sur La définition des données.

    La grille de création est masquée, et l’onglet d’objet SQL vue s’affiche.

  4. Tapez l’instruction SQL suivante :

    ALTER TABLE voitures ALTER colonne Condition texte contrainte FKeyCondition références CarCondition (Condition)

  5. Sous l’onglet Créer, dans le groupe Résultats, cliquez sur Exécuter.

Contraintes multichamp

Une clause de contrainte multichamp peut être utilisée uniquement en dehors d’une clause de définition de champ et utilise la syntaxe suivante :

CONSTRAINT constraint_name 
{PRIMARY KEY (pk_field1[, pk_field2[, ...]]) |
UNIQUE (unique1[, unique2[, ...]]) |
NOT NULL (notnull1[, notnull2[, ...]]) |
FOREIGN KEY [NO INDEX] (ref_field1[, ref_field2[, ...]])
REFERENCES foreign_table
[(fk_field1[, fk_field2[, ...]])] |
[ON UPDATE {CASCADE | SET NULL}]
[ON DELETE {CASCADE | SET NULL}]}

Prenons un autre exemple qui utilise la table Course. Supposons que vous voulez vous assurer que les deux enregistrements de la table de voitures n’ont le même jeu de valeurs pour nom, année, Condition et prix. Vous pouvez créer une contrainte UNIQUE qui s’applique à ces champs, à l’aide de la procédure suivante :

  1. Sous l’onglet créer, dans le groupe Macros et Code, cliquez sur Création de requête.

  2. Fermez la boîte de dialogue Afficher la table.

  3. Sous l’onglet Création, dans le groupe Type de requête, cliquez sur La définition des données.

    La grille de création est masquée, et l’onglet d’objet SQL vue s’affiche.

  4. Tapez l’instruction SQL suivante :

    ALTER TABLE voitures Ajouter contrainte NoDupes uniques (nom, année, condition, prix)

  5. Sous l’onglet Créer, dans le groupe Résultats, cliquez sur Exécuter.

Haut de la page

Développez vos compétences dans Office
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoignez le programme Office Insider

Ces informations vous ont-elles été utiles ?

Nous vous remercions pour vos commentaires.

Merci pour vos commentaires. Il serait vraisemblablement utile pour vous de contacter l’un de nos agents du support Office.

×