SQL - Structure
1. Présentation
Il y a 2 types de requêtes : les
requêtes de traitement des enregistrement (Select, insert, delete),
les requêtes de gestion (les autres, celles dont nous parlerons ici !).
Nous allons voir ici les différentes requêtes de gestion de la base. J'entends par la les requetes
de creation de base, de creation de table, de modification du format d'une table, d'ajout
d'enregistrement, de suppression d'enregistrement.
2. La base
2. 1. Création de la base
CREATE DATABASE nom_base;
2. 2. Suppression de la base
DROP DATABASE nom_base;
3. Les tables
3. 1. Création de la table
Structure standard :
CREATE TABLE nom_table (nomcolonne1 type [options] [, autres champs [options]]);
Exemple :
create table personne (codep int primary key auto_increment,
nomp char(50) not null,
prenomp char(50));
create table adresse (codea int,
adressea longtext,
codepostal char(5) default "35000");
create table if not exists relation (ca int not null,
cb int not null,
constraint cle primary key(ca, cb));
- La table "Personne" contient donc un premier champs "CodeP" qui est la
clé, qui en plus s'incrémente automatiquement. Ensuite, on fixe
un champs "NomP" qui ne doit pas etre vide (option "NOT NULL"), et enfin un champs
"PrenomP" qui est une chaine de 50 caractères, et qui peut etre vide.
- La table "Adresse" contient elle un champ "CodeA" qui est juste un entier, un champs
"AdresseA" qui peut contenir des retours à la ligne, puis un dernier champs
"CodePostal" qui est une chaine de 5 caractère ayant pour valeur par défaut "35000".
- La table "Relation" est constituée de 2 champs non nuls et d'une clé primaire sur
les deux champs.
Les différents types possibles sont les suivants:
Type |
Description |
INT |
Entier standard |
SMALLINT |
Petit entier |
FLOAT |
Valeur réelle |
CHAR (n) |
Chaine fixe de n caractères |
VARCHAR (n) |
Chaine variable d'au plus n caractères |
LONGTEXT |
Chaine de caractère premettant les sauts de lignes |
LONG VARCHAR |
Chaine de caractère permettant les sauts de lignes |
DATE |
Enregistrement au format date |
ENUM (valeur1, valeur2,...) |
Type énuméré (seulement certaines valeurs autorisées) |
TIMESTAMP |
Enregistrement de l'heure et de la date |
Les différentes options possibles sont les suivantes:
Options |
Description |
NOT NULL |
Le champs ne peut être vide |
AUTO_INCREMENT |
La valeur du champs est incrémentale, très pratiquep pour les clés |
PRIMARY KEY |
Permet de définir la clé primaire |
DEFAULT |
Valeur par defaut de la colonne |
UNSIGNED |
Permet de ne prendre en compte que les valeurs positives |
IF NOT EXISTS |
Permet de ne créer la table que si elle n'existe pas déjà |
Ceci permet de créer a peu près tout type de tables, même s'il existe d'autres options que je n'ai
pas abordé ici car elles sont moins couremment utilisées.
3. 2. Suppression de la table
DROP TABLE nom_table;
3. 3. Modification de la table
Il peut être utile de temps en temps de supprimer ou d'ajouter un champs. C'est ce que nous allons
voir maintenant.
La structure générale est :
ALTER TABLE nom_table [Operation] (Champs type);
Exemple :
ALTER TABLE Adresse ADD (Ville CHAR(25),Pays CHAR(20));
ALTER TABLE Adresse DROP Pays;
ALTER TABLE Adresse RENAME Logement;
ALTER TABLE Adresse CHANGE Ville VilleA CHAR(15);
ALTER TABLE Adresse ALTER VilleA SET DEFAULT "Rennes";
Ces exemples permettent, dans l'ordre, de :
- Ajouter 2 colonnes a la table Adresse
- Supprimer une colonne de la table Adresse
- Renommer la table
- Changer le nom et la definition d'une colonne
- Fixer une valeur par défaut d'une colonne
Page modifiée le : 01/10/2024