Tutoriel SQL

ACCUEIL SQL Introduction SQL Syntaxe SQL Sélection SQL SQL Select Distinct SQL Où SQL et, ou, pas Tri SQL par Insertion SQL dans Valeurs nulles SQL Mise à jour SQL Supprimer SQL SQL Sélectionner Haut Min et Max SQL Nombre SQL, Moy, Somme J'aime SQL Caractères génériques SQL Entrée SQL SQL Entre Alias ​​SQL Jointures SQL Jointure interne SQL Jointure gauche SQL Jointure droite SQL Jointure complète SQL Auto-jointure SQL Union SQL Regrouper SQL par SQL ayant SQL existe SQL Tout, Tout SQL Sélectionner dans Insertion SQL dans la sélection Cas SQL Fonctions nulles SQL Procédures stockées SQL Commentaires SQL Opérateurs SQL

Base de données SQL

SQL Créer une base de données BD de suppression SQL Base de données de sauvegarde SQL Créer une table SQL Table de dépôt SQL Table de modification SQL Contraintes SQL SQL non nul SQL unique Clé primaire SQL Clé étrangère SQL Vérification SQL SQL par défaut Index SQL Incrément automatique SQL Dates SQL Vues SQL Injection SQL Hébergement SQL Types de données SQL

Références SQL

Mots clés SQL Fonctions MySQL Fonctions SQL Server Fonctions MS Access Référence rapide SQL

Exemples SQL

Exemples SQL Questionnaire SQL Exercices SQL Certificat SQL

Champ SQL AUTO INCREMENT


Champ AUTO INCREMENT

L'auto-incrémentation permet de générer automatiquement un numéro unique lorsqu'un nouvel enregistrement est inséré dans une table.

Il s'agit souvent du champ de clé primaire que nous aimerions voir créé automatiquement chaque fois qu'un nouvel enregistrement est inséré.


Syntaxe pour MySQL

L'instruction SQL suivante définit la colonne "Personid" comme étant un champ de clé primaire à incrémentation automatique dans la table "Persons" :

CREATE TABLE Persons (
    Personid int NOT NULL AUTO_INCREMENT,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    PRIMARY KEY (Personid)
);

MySQL utilise le mot- AUTO_INCREMENTclé pour effectuer une fonction d'auto-incrémentation.

Par défaut, la valeur de départ pour AUTO_INCREMENTest 1, et elle sera incrémentée de 1 pour chaque nouvel enregistrement.

Pour que la AUTO_INCREMENTséquence commence par une autre valeur, utilisez l'instruction SQL suivante :

ALTER TABLE Persons AUTO_INCREMENT=100;

Pour insérer un nouvel enregistrement dans la table "Persons", nous n'aurons PAS besoin de spécifier une valeur pour la colonne "Personid" (une valeur unique sera ajoutée automatiquement) :

INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen');

L'instruction SQL ci-dessus insérerait un nouvel enregistrement dans la table "Persons". La colonne "Personid" se verrait attribuer une valeur unique. La colonne "FirstName" serait définie sur "Lars" et la colonne "LastName" serait définie sur "Monsen".


Syntaxe pour SQL Server

L'instruction SQL suivante définit la colonne "Personid" comme étant un champ de clé primaire à incrémentation automatique dans la table "Persons" :

CREATE TABLE Persons (
    Personid int IDENTITY(1,1) PRIMARY KEY,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int
);

Le serveur MS SQL utilise le mot- IDENTITYclé pour effectuer une fonction d'auto-incrémentation.

Dans l'exemple ci-dessus, la valeur de départ pour IDENTITYest 1, et elle sera incrémentée de 1 pour chaque nouvel enregistrement.

Conseil : Pour spécifier que la colonne "Personid" doit commencer à la valeur 10 et s'incrémenter de 5, remplacez-la par IDENTITY(10,5).

Pour insérer un nouvel enregistrement dans la table "Persons", nous n'aurons PAS besoin de spécifier une valeur pour la colonne "Personid" (une valeur unique sera ajoutée automatiquement) :

INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen');

L'instruction SQL ci-dessus insérerait un nouvel enregistrement dans la table "Persons". La colonne "Personid" se verrait attribuer une valeur unique. La colonne "FirstName" serait définie sur "Lars" et la colonne "LastName" serait définie sur "Monsen".



Syntaxe pour l'accès

L'instruction SQL suivante définit la colonne "Personid" comme étant un champ de clé primaire à incrémentation automatique dans la table "Persons" :

CREATE TABLE Persons (
    Personid AUTOINCREMENT PRIMARY KEY,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int
);

Le MS Access utilise le mot- AUTOINCREMENTclé pour effectuer une fonction d'auto-incrémentation.

Par défaut, la valeur de départ pour AUTOINCREMENTest 1, et elle sera incrémentée de 1 pour chaque nouvel enregistrement.

Astuce : Pour spécifier que la colonne "Personid" doit commencer à la valeur 10 et s'incrémenter de 5, changez l'auto-incrémentation en AUTOINCREMENT(10,5).

Pour insérer un nouvel enregistrement dans la table "Persons", nous n'aurons PAS besoin de spécifier une valeur pour la colonne "Personid" (une valeur unique sera ajoutée automatiquement) :

INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen');

L'instruction SQL ci-dessus insérerait un nouvel enregistrement dans la table "Persons". La colonne "Personid" se verrait attribuer une valeur unique. La colonne "FirstName" serait définie sur "Lars" et la colonne "LastName" serait définie sur "Monsen".


Syntaxe pour Oracle

Dans Oracle, le code est un peu plus compliqué.

Vous devrez créer un champ auto-incrémenté avec l'objet séquence (cet objet génère une séquence de nombres).

Utilisez la CREATE SEQUENCEsyntaxe suivante :

CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10;

Le code ci-dessus crée un objet de séquence appelé seq_person, qui commence par 1 et s'incrémentera de 1. Il mettra également en cache jusqu'à 10 valeurs pour les performances. L'option de cache spécifie le nombre de valeurs de séquence qui seront stockées en mémoire pour un accès plus rapide.

Pour insérer un nouvel enregistrement dans la table "Persons", nous devrons utiliser la fonction nextval (cette fonction récupère la valeur suivante de la séquence seq_person) :

INSERT INTO Persons (Personid,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen');

L'instruction SQL ci-dessus insère un nouvel enregistrement dans la table "Persons". La colonne "Personid" se verrait attribuer le numéro suivant de la séquence seq_person. La colonne "FirstName" serait définie sur "Lars" et la colonne "LastName" serait définie sur "Monsen".