===== Créations de tables en SQL ===== == Le **SQL** ou **Structured Query Language** est un langage de programmation destiné à la création de base de données structuré. Il existe également des langages de programmations non structurés mais nous n'en parlerons pas dans ce chapitre. == ==== Les logiciels ==== Un des logiciels les plus courants utilisés est **pgadmin**, commencez donc par télécharger la version 4 de pgadmin qui vous permettra de débuter votre apprentissage en SQL. Une fois le logiciel installé, dirigez vous vers **Server** et faites un clic droit **create a server**, donnez lui le nom que vous souhaiter et dans l'onglet connection mettez **localhost** en tant que Hostname. Ensuite créez une **DataBase** en faisant clic droit **create a new database**, nommez la et vous êtes prêt a créer votre première base de donnée ! (ou presque xD) ==== La création de tables ==== Une fois votre base créer faites un clic droit sur votre table et clickez sur **Query tool**, une fois dans l'éditeur de texte vous êtes prêt à programmer. La syntaxe générale pour créer une table est la suivante : CREATE TABLE nom_de_la_table ( colonne1 type_donnees, colonne2 type_donnees, colonne3 type_donnees, colonne4 type_donnees ); Dans cette requête, 4 colonnes ont été définies. Le mot-clé « type_donnees » sera à remplacer par un mot-clé pour définir le type de données telle que : INT --> Défini un entier DATE --> Défini une date TEXT --> Défini une chaine de caractère VARCHAR --> Défini une chaine de caractère variable SERIAL --> Défini un entier à auto incrémentation (c'est à dire qui ajoute 1 à lui même à chaque ajout dans cet attribut) Pour chaque colonne, il est également possible de définir des options telles que : DEFAULT --> Attribu une valeur par défaut NOT NULL --> Permet d’empêcher l'utilisateur d'ajouter quelque chose dans la table en laissant le champ vide PRIMARY KEY --> Indique que cette colonne est considérée comme clé primaire, elle d'ailleurs souvent associé à l'ID de la table CHECK --> Permet que toutes les valeurs d’une colonne satisfassent des conditions données UNIQUE --> Garantit que toutes les valeurs d’une colonne ne peuvent comporter de doublons == Les options ce mettent en place comme ceci : == create table animal ( id_animal serial **primary key**, nom_animal varchar **not null**, nbrAnimaux integer **check (nbrAnimaux>0)** ); ==== Les références ==== Grâce à votre MCD vous devriez avoir certaines références, en SQL ces références ce rentrent comme ci dessous : colonne1 integer references colonne1(id_colonne1) Ici on met le type de donnée integer qui est enfait le type int car nous utiliserons toujours l'ID de notre table pour les références car l'ID est tout simplement unique à chaque table. ==== Un exemple concret ==== CREATE TABLE utilisateur ( id SERIAL PRIMARY KEY NOT NULL, nom VARCHAR(100), prenom VARCHAR(100), email VARCHAR(255), date_naissance DATE, pays VARCHAR(255), ville VARCHAR(255), code_postal VARCHAR(5), nombre_achat INT CHECK(nombre_achat>0) ); == Voici des explications sur les colonnes créées : == - **id** : identifiant unique qui est utilisé comme clé primaire et qui n’est pas nulle - **nom** : nom de l’utilisateur dans une colonne de type VARCHAR avec un maximum de 100 caractères au maximum - **prenom** : idem mais pour le prénom - **email** : adresse email enregistré sous 255 caractères au maximum - **date_naissance** : date de naissance enregistré au format AAAA-MM-JJ (exemple : 1973-11-17) - **pays** : nom du pays de l’utilisateur sous 255 caractères au maximum - **ville** : idem pour la ville - **code_postal** : 5 caractères du code postal - **nombre_achat** : nombre d’achat de cet utilisateur sur le site qui doit être supérieur à 0 === Vous êtes maintenant prêt pour créer vos propres bases de données !===