Formation MySQL : syntaxes et fonctions de base de MySql avec php


Télécharger Formation MySQL : syntaxes et fonctions de base de MySql avec php

★★★★★★★★★★3.5 étoiles sur 5 basé sur 1 votes.
Votez ce document:

Télécharger aussi :


Formation MySQL :syntaxes et fonctions de base de MySql avec php

Théorie des bases de données

Concepts du modèle relationnel

Avant d’attaquer le vif du sujet, un petit glossaire du jargon des bases de données :

Domaine : ensemble des valeurs d’un attribut.

Relation : sous ensemble du produit cartésien d’une liste de domaines. C’est en fait un tableau à deux dimensions dont les colonnes correspondent aux domaines et dont les lignes contiennent des tuples. On associe un nom à chaque colonne.

Attribut : une colonne d’une relation, caractérisé par un nom.

Tuple : liste des valeurs d’une ligne d’une relation.

Une relation est un peu une classe (programmation orientée objet) qui ne possèderait que des attributs et donc chaque instance représenterait un tuple.

Les relations

Une relation est une table comportant des colonnes (appelées aussi attributs) dont le nom et le type caractérisent le contenu qui sera inséré dans la table.

Imaginons que l’on veuille stocker dans notre base de données notre carnet d’adresses. On va donc créer la relation Personne qui aura pour attributs : nom, prénom, adresse, téléphone. Autrement dit, c’est une table nommée

Personne possédant les colonnes : nom, prénom, adresse, téléphone.

Les lignes que contiendra cette table seront appelées enregistrements ou tuples.

Dupond Marc 8 rue de l’octet 0123456789 nom prénom adresse téléphone

Personnes

Algèbre relationnelle

L’algèbre relationnelle regroupe toutes les opérations possibles sur les relations. Voici la liste des opérations possibles :

Projection : on ne sélectionne qu’un ou plusieurs attributs d’une relation (on ignore les autres). Par exemple n’afficher que les colonnes nom et prénom de la table Personnes.

Jointure : on fabrique une nouvelle relation à partir de 2 ou plusieurs autres en prenant comme pivot 1 ou plusieurs attributs. Par exemple, on concatène la table du carnet d’adresse et celle des inscrits à la bibliothèque en fonction du nom de famille (c’es typiquement du recoupement de fichiers).

Sélection : on sélectionne tous les tuples ou bien seulement une partie en fonction de critères de sélection qui portent sur les valeurs des attributs. Par exemple n’afficher que les lignes de la table Personnes qui vérifient la condition suivante : le nom ne commence pas par la lettre ‘C’.

Cette algèbre est facilement possible avec les commandes de MySQL

(SELECT… FROM… WHERE…).

...

Syntaxe de

MySQL

2

Types des attributs (I)

Les propriétés de vos objets peuvent être de types très différents :

  • Nombre entier signé ou non (température, quantité commandée, âge)
  • Nombre à virgule (prix, taille)
  • Chaîne de caractères (nom, adresse, article de presse)
  • Date et heure (date de naissance, heure de parution)
  • Énumération (une couleur parmi une liste prédéfinie)
  • Ensemble (une ou des monnaies parmi une liste prédéfinie)

Il s’agit de choisir le plus adapté à vos besoins.

Ces types requièrent une plus ou moins grande quantité de données à stocker.

Par exemple, ne pas choisir un LONGTEXT pour stocker un prénom mais plutôt un VACHAR(40) !

...

Types des attributs (V) – chaînes

Les types TINYTEXT, TEXT, MEDIUMTEXT et LONGTEXT peuvent être judicieusement remplacés respectivement par TINYBLOB, BLOB,

MEDIUMBLOB et LONGBLOB.

Ils ne diffèrent que par la sensibilité à la casse qui caractérise la famille des

BLOB. Alors que la famille des TEXT sont insensibles à la casse lors des tris et recherches.

Les BLOB peuvent être utilisés pour stocker des données binaires.

Les VARCHAR, TEXT et BLOB sont de taille variable. Alors que les CHAR et

DECIMAL sont de taille fixe.

...

Types des attributs (VII) – dates et heures

Idem mais M vaut un entier pair entre 2 et 14. Affiche les M premiers caractères de TIMESTAMP.

TIMESTAMP(M)

TIME Heure au format HH:MM:SS.

DATETIME Date et heure au format anglophone AAAA-MM-JJ HH:MM:SS.

TIMESTAMP Affiche la date et l’heure sans séparateur : AAAAMMJJHHMMSS.

YEAR Année au format AAAA.

DATE Date au format anglophone AAAA-MM-JJ.

nom description

Le format de date AAAA-MM-JJ signifie : année sur 4 chiffre, mois sur 2 chiffres et jour sur 2 chiffres avec pour séparateur le tiret. Le format d’heure

HH:MM:SS signifie : heure, minute et seconde chacune sur 2 chiffres, avec pour séparateur les deux points.

Dans le format étendu qui comprend la date et l’heure, des deux dernières sont séparées par un espace. Les formats de date sont assez permissifs car des variantes sont tolérées. Il est possible de mettre n’importe quel caractère qui ne soit pas un chiffre en guise de séparateur, il est aussi possible de na pas en mettre, comme cela est affiché par TIMESTAMP.

Types des attributs (VIII) – énumérations

Un attribut de type ENUM peut prendre une valeur parmi celles définies lors de la création de la table plus la chaîne vide ainsi que NULL si la définition le permet. Ces valeurs sont exclusivement des chaînes de caractères. Une énumération peut contenir 65535 éléments au maximum.

Définition d’un tel attribut :

nom_attribut ENUM(‘’valeur 1’’,’’valeur 2’’…)

nom_attribut ENUM(‘’valeur 1’’,’’valeur 2’’…) NULL

A chaque valeur est associée un index allant de 0 à N si N valeurs ont été définies. L’index 0 est associé à la chaîne nulle, l’index 1 à la première valeur… L’index NULL est associé à la valeur NULL.

Si une sélection (SELECT ou WHERE) est faite dans un contexte numérique, l‘index est renvoyé. Sinon, c’est la valeur qui est retournée.

Il peut être défini jusqu’à 65535 valeurs distinctes insensibles à la casse.

Types des attributs (IX) – ensembles

Un attribut de type SET peut prendre pour valeur la chaîne vide, NULL ou une chaîne contenant une liste de valeurs qui doivent être déclarées lors de la définition de l’attribut lors de la création de la relation.

Par exemple, un attribut déclaré comme ci :

SET(‘‘voiture’’, ‘’moto’’, ’’vélo’’) NOT NULL

peut prendre les valeurs suivantes :

‘’’’ (chaîne vide)

‘’voiture,moto’’

‘’vélo,voiture,moto’’

et autres combinaisons de listes des trois valeurs définie plus haut.

Un attribut déclaré comme suit :

SET(‘‘voiture’’, ‘’moto’’, ’’vélo’’) NULL

peut prendre, en plus ce celles précédentes, la valeur NULL.

Il ne peut être défini que 64 éléments maximum.



Identificateurs

Les noms des bases, relations, attributs, index et alias sont constitués de caractères alphanumériques et des caractères _ et $.

Un nom comporte au maximum 64 caractères.

Comme les bases de données et les relations sont codées directement dans le système de fichiers, la sensibilité à la casse de MySQL dépend de celle du système d’exploitation sur lequel il repose. Sous Windows, la casse n’a pas d’importance ; alors que sous Unix, elle en a !

Le point . est un caractère réservé utilisé comme séparateur entre le nom d’une base et celui d’une relation, entre le nom d’une relation et celui d’un attribut.

Exemple :

SELECT base1.table25.attribut5

FROM base1.table25

Exemple (I)

Imaginons que l’on veuille construire la version web d’un journal papier. Nous devrons créer une table pour stocker les articles de presse. Les informations relatives à un article sont les suivantes : titre, texte, date de parution, auteur, rubrique.

Un titre ayant une longueur raisonnable, il sera de type VARCHAR(80), le texte pourra être très grand : TEXT (65535 caractères !), la date sera au format DATE (YYYY:MM:JJ). L’auteur pourra être codé sur un VARCHAR(80). Et la rubrique pourrait être un ENUM.

CREATE TABLE article (

id MEDIUM INT UNSIGNED PRIMARY KEY,

titre VARCHAR(80),

texte TEXT,

parution DATE,

auteur VARCHAR(80),

rubrique ENUM(‘économie’,’sports’,’international’,’politique’,’culture’)

)

Exemple (II)

Cette définition apporte certaines limitations : le nombre et le nom des rubriques sont fixés à la création de la relation (CREATE TABLE). Bien sûr, il sera toujours possible de modifier la définition de la table (ALTER TABLE) pour modifier ou ajouter une rubrique ; mais ce ne sera pas pratique du tout.

On peut imaginer une interface web qui permette à un administrateur d’ajouter, de renommer ou de supprimer des rubriques. Pour cela on va créer une nouvelle relation : la table rubrique.

La relation article contiendra non plus le nom de la rubrique mais une référence vers le nom de cette rubrique. Ainsi, lors d’une sélection, il faudra faire une jointure entre les deux tables ‘article’ et ‘rubrique’ pour connaître le nom de la rubrique associée à un article.

CREATE TABLE rubrique (

id TINYINT UNSIGNED PRIMARY KEY,

label VARCHAR(40)

)

CREATE TABLE article (

rubrique_idx TINYINT

)

SELECT *

FROM article,rubrique

WHERE article.rubrique_idx=rubrique.id

Créer une relation (I)

La création d’une relation utilise la commande CREATE TABLE selon la

syntaxe suivante :

CREATE [TEMPORARY] TABLE nom_relation [IF NOT EXISTS] (

nom_attribut TYPE_ATTRIBUT [OPTIONS]

)

TEMPORARY donne pour durée de vie à la table : le temps de la connexion de l’utilisateur au serveur, après, elle sera détruite. En l’absence de cette option, la table sera permanente à moins d’être détruite par la commande DROP TABLE.

L’option IF NOT EXIST permet de ne créer cette table que si une table de même nom n’existe pas encore.

A l’intérieur des parenthèses, il sera listé tous les attributs, clés et indexs de la table.

Créer une relation (II)

Le type de l’attribut doit être d’un type vu précédemment.

Les options seront vues au fur et à mesure du cours.

Exemple du carnet d’adresse :

CREATE TABLE Personne (

nom VARCHAR(40),

‘prénom’ VARCHAR(40),

adresse TINYTEXT,

‘téléphone’ DECIMAL(10,0)

)

Notre carnet d’adresse est stocké dans un tableau (appelé Relation) de nom

Personne qui comporte les colonnes (dites aussi attributs) suivantes : nom (chaîne de 40 caractères maximum), prénom (idem), adresse (texte de longueur variable mais inférieure à 255 caractères) et téléphone (chaîne de 10 caractères). Chacune des personnes à ajouter au carnet d’adresse occupera une ligne de cette table. Une ligne est dite enregistrement dans le jargon des bases de données.

Créer une relation (III)

A sa création, la table peut être remplie par une requête SELECT (qui sera vue en détail plus tard). Par défaut, une table est vide à sa création.

Exemple :

CREATE TABLE Personne (

nom VARCHAR(40),

‘prénom’ VARCHAR(40),

adresse TINYTEXT,

‘téléphone’ DECIMAL(10,0)

) SELECT firstname, name, town, tel FROM Users

Les options IGNORE et REPLACE à placer entre la parenthèse fermante et le SELECT permettent respectivement d’ignorer les doublons et de remplacer les doublons par la dernière valeur trouvée. Ces options ne sont prises en compte que pour gérer le problème des contraintes d’unicité (UNIQUE, PRIMARY KEY).

Clé primaire (I)

Pour des raisons pratiques, nous souhaitons pouvoir associer à chacun des enregistrements de la relation un identifiant numérique unique qui puise être passé en paramètre à nos scripts PHP.

Pour cela on rajoute un nouvelle attribut de type entier. Pour nous facilité la tâche, cet entier ne devra pas être signé mais être suffisamment grand pour identifier tous nos enregistrements car destiné à un décompte (donc débute forcément à 1 et pas à -127 par exemple).

Dans notre exemple, le carnet d’adresse ne devrait pas excéder plusieurs centaines de personnes. Ainsi un attribut de type SMALLINT UNSIGNED devrait faire l’affaire. Nous le nommerons par la suite : id.

Cet attribut devra ne jamais être vide, il faut donc préciser l’option NOT NULL pour le forcer à prendre une valeur de son domaine (entre 0 et 65535).

Il devra aussi être unique, c’est-à-dire que deux enregistrements ne pourront pas avoir une valeur identique de id. Il faut alors faire la déclaration suivante :

UNIQUE (id) à la suite de la liste des attributs.

Pour simplifier, on utilisera l’option PRIMARY KEY qui regroupe NOT NULL et UNIQUE en remplacement des deux dernières déclarations.

Et pour finir, il faut signifier que cette valeur doit s’incrémenter automatiquement à chaque insertion d’un enregistrement grâce à l’option AUTO_INCREMENT.

Clé primaire (II)

Notre exemple devient :

CREATE TABLE Personne (

id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,

nom VARCHAR(40),

‘prénom’ VARCHAR(40),

adresse TINYTEXT,

‘téléphone’ DECIMAL(10,0)

)

Cet identifiant numérique unique auto-incrémental, s’appelle une « clé primaire ».

La numérotation des clés primaires, débute à 1 et pas à 0.

1 Marc 8 rue de l’octet 0123456789



Id prénom adresse téléphone

Personnes

Clé primaire (III)

Notre clé primaire peut être associée simultanément à plusieurs attributs mais selon une syntaxe différente.

Si au lieu de créer un identifiant numérique unique, on souhaite simplement interdire d’avoir des doublon sur le couple (nom,’prénom’) et d’en interdire la nullité, on va créer une clé primaire sur ce couple.

La connaissance des seuls nom et prénom suffit à identifier sans ambiguïté un et un seul enregistrement.

Bonne syntaxe :

CREATE TABLE Personne (

nom VARCHAR(40),

‘prénom’ VARCHAR(40),

adresse TINYTEXT,

‘téléphone’ DECIMAL(10,0),

PRIMARY KEY (nom,’prénom’)

)

Mauvaise syntaxe :

CREATE TABLE Personne (

nom VARCHAR(40) PRIMARY KEY,

‘prénom’ VARCHAR(40) PRIMARY KEY,

adresse TINYTEXT,

‘téléphone’ DECIMAL(10,0)

)

Attribut non nul

Considérons que l’on souhaite que certains attributs aient obligatoirement une valeur. On utilisera l’option NOT NULL.

Dans ce cas, si malgré tout, aucune valeur n’est fournie, la valeur par défaut – si elle est déclarée à la création de la relation – sera automatiquement affectéenà cet attribut dans l’enregistrement.

Si aucune valeur par défaut n’est déclarée :

- la chaîne vide ‘’’’ sera affectée à l’attribut s’il est de type chaîne de caractères

- la valeur zéro 0 s’il est de type nombre

- la date nulle 0000-00-00 et/ou l’heure nulle 00:00:00 s’il est de type date, heure ou date et heure.

Exemple :

adresse TINYTEXT NOT NULL

Au contraire, on utilisera l’option NULL si on autorise l’absence de valeur.

Valeur par défaut

Pour donner une valeur par défaut à un attribut, on utilise l’option DEFAULT.

Lors de l’ajout d’un enregistrement cette valeur sera affectée à l’attribut si aucune valeur n’est donnée.

Exemple :

‘téléphone’ DECIMAL(10,0) DEFAULT ‘0123456789’

Les attributs de type chaîne de caractères de la famille TEXT et BLOB ne peuvent pas avoir de valeur par défaut.

Index (I)

Lors de la recherche d’informations dans une relation, MySQL parcours la table correspondante dans n’importe quel ordre. Dans le cas d’un grand nombre de lignes, cette recherche est très très longue du fait du parcours de TOUTE la table.

Pour y remédier, une optimisation possible et FORTEMENT recommandée, est d’utiliser des indexs.

La création d’un index associé à un attribut ou à un ensemble ordonné d’attributs va créer une liste ordonnée des valeurs de ces attributs et de l’adresse de la ligne associée. C’est sur les valeurs de cette liste que se fera les recherches et les tris. Les algorithmes de recherche et de tri sur des ensembles ordonnées sont énormément plus rapides !

Ainsi, d’une recherche à coût prohibitif, on passe à une recherche sur un ensemble déjà trié. On gagne donc énormément en temps d’accès aux informations. Bien que cela ralentisse les mises à jour (insertion, suppression, modification de clé).

On choisira de créer des indexs sur les attributs qui seront les plus sollicités par les recherches ou utilisés comme critère de jointure. Par contre, on épargnera les attributs qui contiennent peu de valeurs différentes les unes des autres et ceux dont les valeurs sont très fréquemment modifiées.

Index (II)

Syntaxe :

INDEX index (liste des attributs)

Exemple, pour créer un index sur les 3 premiers caractères seulement de l’attribut nom :

INDEX idx_nom (nom(3))

Exemple, pour créer un index sur le couple (nom,’prénom’) :

INDEX idx_nom_prenom (nom,’prénom’)

Un index peut porter sur 15 colonnes maximum.

Une table peut posséder au maximum 16 indexs.

Un index peut avoir une taille d’au maximum 256 octets et ne doit porter que sur des attributs NOT NULL.

Il suffit de suffixer l’attribut (CHAR, VARCHAR) pour dire de ne prendre que les M premiers caractères pour l’indexation.

Supprimer une relation

La commande DROP TABLE prend en paramètre le nom de la table à  supprimer. Toutes les données qu’elle contient sont supprimées et sa définition aussi.

Syntaxe :

DROP TABLE relation

Exemple :

DROP TABLE Personnes

Si un beau jour on s’aperçoit qu’une relation a été mal définie au départ, plutôt que de la supprimer et de la reconstruire bien comme il faut, on peut la modifier très simplement. Cela évite de perdre les données qu’elle contient.

Modifier une relation

La création d’une relation par CREATE TABLE n’en rend pas définitives les spécifications. Il est possible d’en modifier la définition par la suite, à tout moment par la commande ALTER TABLE.

Voici ce qu’il est possible de réaliser :

- ajouter/supprimer un attribut

- créer/supprimer une clé primaire

- ajouter une contrainte d’unicité (interdire les doublons)

- changer la valeur par défaut d’un attribut

- changer totalement la définition d’un attribut

- changer le nom de la relation

- ajouter/supprimer un index

Ajouter un attribut

Syntaxe :

ALTER TABLE relation ADD definition [ FIRST | AFTER attribut]

Ajoutons l’attribut fax qui est une chaîne représentant un nombre de 10 chiffres:

ALTER TABLE Personnes ADD fax DECIMAL(10,0)

Nous aurions pu forcer la place où doit apparaître cet attribut. Pour le mettre en tête de la liste des attributs de la relation, il faut ajouter l’option FIRST en fin de commande. Pour le mettre après l’attribut ‘téléphone’, il aurait fallu ajouter

AFTER ‘téléphone’.

Note : il ne doit pas déjà avoir dans la relation un attribut du même nom !

Supprimer un attribut (I)

Attention, supprimer un attribut implique la suppression des valeurs qui se trouvent dans la colonne qui correspond à cet attribut, sauf à utiliser l’option

IGNORE.

Syntaxe :

ALTER TABLE relation DROP attribut

Exemple :

ALTER TABLE Personnes DROP ’prénom’

Supprimer un attribut (II)

La suppression d’un attribut peut incidemment provoquer des erreurs sur les contraintes clé primaire (PRIMARY KEY) et unique (UNIQUE).

CREATE TABLE Personne (

id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,

nom VARCHAR(40),

‘prénom’ VARCHAR(40),

adresse TINYTEXT,

‘téléphone’ DECIMAL(10,0),



UNIQUE(nom,’prénom’)

Supprimer une clé primaire

Comme une clé primaire est unique, il n’y a aucune ambiguïté lors de la suppression.

Syntaxe :

ALTER TABLE relation DROP PRIMARY KEY

Exemple :

ALTER TABLE Personnes ADD PRIMARY KEY

S’il n’y a aucune clé primaire lorsque cette commande est exécutée, aucun message d’erreur ne sera généré, le commande sera simplement ignorée.

Ajout d’une contrainte d’unicité

Il est possible (facultatif) de donner un nom à la contrainte.

Cette contrainte peut s’appliquer à plusieurs attributs.

Si les valeurs déjà présentes dans la relation sont en contradiction avec cette nouvelle contrainte, alors cette dernière ne sera pas appliquée et une erreur sera générée.

Syntaxe :

ALTER TABLE relation ADD UNIQUE [contrainte] (attributs)

Exemple pour interdire tout doublon sur l’attribut fax de la relation Personnes :

ALTER TABLE Personnes ADD UNIQUE u_fax (fax)

Autre exemple fictif :

ALTER TABLE Moto ADD UNIQUE u_coul_vitre (couleur,vitre)

Changer la valeur par défaut d’un attribut

Pour changer ou supprimer la valeur par défaut d’un attribut.

Attention aux types qui n’acceptent pas de valeur par défaut (les familles

BLOB et TEXT).

Syntaxe :

ALTER TABLE relation ALTER attribut { SET DEFAULT valeur | DROP DEFAULT }

Changer sa valeur par défaut :

ALTER TABLE Personnes ALTER ‘téléphone’ SET DEFAULT ‘9999999999’

Supprimer sa valeur par défaut :

ALTER TABLE Personnes ALTER ‘téléphone’ DROP DEFAULT

Le changement ou la suppression n’affecte en rien les enregistrements qui ont eu recours à cette valeur lors de leur insertion.

Changer la définition d’un attribut

Pour changer la définition de l’attribut sans le renommer :

ALTER TABLE relation MODIFY attribut definition_relative

Exemple 1 :

ALTER TABLE Personnes MODIFY fax VARCHAR(14)

Pour changer sa définition en le renommant :

ALTER TABLE relation CHANGE attribut definition_absolue

Exemple 2 :

ALTER TABLE Personnes CHANGE fax num_fax VARCHAR(14)

Attention, si le nouveau type appliqué à l’attribut est incompatible avec les valeurs des enregistrements déjà présents dans la relation, alors elles risques d’êtres modifiées ou remises à zéro !

Changer le nom de la relation

Syntaxe :

ALTER TABLE relation RENAME nouveau_nom

Exemple :

ALTER TABLE Personnes RENAME Carnet

Cela consiste à renommer la table, et donc le fichier qui la stocke.

Ajouter un index

Une table ne peut comporter que 32 indexs.

Et un index ne peut porter que sur 16 attributs maximum à la fois.

Syntaxe :

ALTER TABLE relation ADD INDEX index (attributs)

Exemple :

ALTER TABLE Personnes ADD INDEX nom_complet (nom,prénom)

Dans cet exemple, on a ajouté à la relation Personnes un index que l’on nomme nom_complet et qui s’applique aux deux attributs nom et ‘prénom’.

Ainsi, les recherches et les tris sur les attributs nom et ‘prénom’ seront grandement améliorés. Car un index apporte les changements sous-jacents permettant d’optimiser les performances du serveur de base de données.

Supprimer un index

Syntaxe :

ALTER TABLE relation DROP INDEX index

Exemple :

ALTER TABLE Personnes DROP INDEX nom_complet Cette exemple permet de supprimer l’index nommé nom_complet de la relation

Personnes.

Ajouter un enregistrement (I) insertion étendue

Ajouter un enregistrement à une relation revient à ajouter une ligne à la table.

Pour cela, pour chacun des attributs, il faudra en préciser la valeur. Si certaines valeurs sont omises, alors les valeurs par défauts définie les de la création de la relation seront utilisées. Si on ne dispose pas non plus de ces valeurs par défaut, alors MySQL mettra 0 pour un nombre, ‘’’’ pour une chaîne, 0000-00-00 pour une date, 00:00:00 pour une heure, 00000000000000 pour un timestamp (si le champs poste la contrainte NOT NULL). Dans le cas où l’attribut porte la contrainte NULL (par défaut) alors la valeur par défaut de l’attribut – quel soit sont type – sera la suivante : NULL.

Syntaxe d’une « insertion étendue » :

INSERT INTO relation(liste des attributs) VALUES(liste des valeurs)

Exemple :

INSERT INTO Personnes(nom,prénom) VALUES(‘Martin’,’Jean’)

REPLACE est un synonyme de INSERT, mais sans doublon. Pratique pour respecter les contraintes d’unicité (UNIQUE, PRIMARY KEY).

Ajouter un enregistrement (II) insertion standard

Une syntaxe plus courte mais plus ambiguë permet d’insérer un enregistrement dans une table. Elle consiste à omettre la liste des noms d’attribut à la suite du nom de la relation. Cela impose que la liste des valeurs suivant le mot clé VALUES soit exactement celle définie dans la table et qu’elles soient dans l’ordre défini dans la définition de la table ; sinon des erreurs se produiront.

Syntaxe d’une « insertion standard » :

INSERT INTO relation VALUES(liste exhaustive et ordonnée des valeurs)

Exemple :

CREATE TABLE Ballon (

taille INT NOT NULL, couleur VARCHAR(40))

INSERT INTO Ballon VALUES(20, ‘rouge’) ok

INSERT INTO Ballon VALUES(‘rouge’, 20) faux

INSERT INTO Ballon VALUES(‘rouge’) faux



279