Découvrir PostgreSQL

Créer une table

Testez gratuitement nos 1250 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Dans cette vidéo, vous allez apprendre à créer votre première table. Faites un tour d'horizon des options de la syntaxe.
07:36

Transcription

Maintenant que nous avons compris les différents types de " données " à disposition dans " Postgres ", nous pouvons créer une table. Alors, puisque mon " schéma test " que j'ai créé auparavant est tout vide, vous voyez, il n'y a absolument rien du tout, c'est triste, il faut que je crée une table. Je peux, avec un " clic droit ", utiliser une fenêtre de " pgAdmin ", pour créer graphiquement une " table ", en mettant son " nom ", sa " définition ", les " colonnes ", les unes après les autres, en faisant " Ajouter ", etc. Mais bon, soyons sérieux, c'est tellement facile de créer une " table " en code " SQL ", qu'on va le faire à la main. Donc, je vais basculer sur " l'éditeur ". J'ai appuyé ici sur ce bouton, ou je peux faire un " Ctrl+E ". Et je vais utiliser la syntaxe " CREATE TABLE, " que vous connaissez sans doute. C'est exactement la même chose dans tous les moteurs de bases de données. Ça vient de la norme " SQL ". Si vous êtes en MySQL, SQL Server, en Oracle, c'est la même chose, " CREATE TABLE ". Ici je vais dire une " table " que je vais appeler " contact ". Je préfixe par le schéma, " contact " dans le schéma " test ". Je fais des parenthèses. Et à l'intérieur de mes parenthèses, je vais lister les colonnes qui font partie de la " table ". Je vais faire un " id ", un identifiant technique, qui est le " contactid ". Cet identifiant est un identifiant technique, ça va être un numéro que je vais générer automatiquement. La première ligne, ce sera le " contactid " 1, la deuxième 2, etc. Dans certaines tables, vous pourriez avoir des clés, ce qu'on appelle des clés naturelles, par exemple, une table de livres pourrait avoir un numéro d'ISBN, etc. Mais c'est quand même plus pratique et plus souple de créer vos identifiants techniques. Donc, si vous voulez faire ça, en général, il vous faut quelque chose qui se numérote automatiquement. Selon les moteurs, vous avez des mécanismes différents. MySQL par exemple, c'est un auto incrément. MySQL Server, un identity. En Oracle, un peu plus compliqué. Mais ici, vous pourriez dire " int ", et exprimer la valeur à travers ce qu'on appelle une séquence. Mais vous pouvez le faire automatiquement. Au lieu de mettre " int ", vous mettez le mot-clé " serial ". C'est donc un type de données qui correspond à l'entier. C'est donc un entier 32 bit, quatre octets. Mais, en mettant " serial ", ça devient un entier qui va être géré automatiquement et incrémenté automatiquement. Je vais dire que ça doit être " not null ". Je vais dire qu'il doit avoir la contrainte " primary key ". Tout ça, c'est très standard, si vous voulez. Ensuite, je vais dire je veux son " nom ", en " varchar(50) ", " not null " également. Et puis, je vais faire une bêtise, je vais dire qu'il doit être " unique ". parce que je ne vais pas faire une contrainte d'unicité sur les noms, normalement. Et je vais faire un prénom " varchar(50), not null ", également. Si vous connaissez déjà d'autres moteurs qui utilisent le langage " SQL ", c'est assez classique. J'ai trois colonnes, je sépare ici par des virgules. Je donne certains types de contraintes, " not null " est également une contrainte, je donne un type de données, parmi ceux qu'on a vu dans les vidéos précédentes. Voilà, ça suffit, je fais un " F5 ". On me dit très bien. On a fait ça en " 12 msec ". Et maintenant, je me rends sur mon schéma. Je rafraîchis. Et me voici avec, alors, si vous observez bien, avec deux choses. J'ai une " table ", trois colonnes, deux contraintes. La clé primaire est avec le petit " 1 ", une contrainte d'unicité, celle que j'ai créée ici, sur le " nom ". Donc, j'ai une contrainte " unique ", j'ai une clé primaire. J'ai une fonction qui fait un " nextval ". En fait, c'est la fonction interne qui va automatiquement calculer la nouvelle valeur lorsque je l'insère. Et j'ai une " séquence " qui est liée, et qui est un objet que je vais voir ici, dans les " séquences ". Et qui est le séquenceur, vous voyez la syntaxe " SQL ", qui est ici, " CREATE SEQUENCE ", qui a pris un nom automatiquement parce que c'est ceci qui a généré la création de cette séquence. On va dire tu commences à " 1 ". Ta valeur maximum, c'est ça. Et tu incrémentes de " 1 ". Et tu commences à " 1 ". C'est ce séquenceur qui va s'occuper de l'auto incrémentation. L'objet " séquence " est un objet qui est aussi défini dans le norme" SQL ". et qui est implémenté dans plusieurs moteurs, maintenant dans SQL Server, depuis quelques versions, assez récemment, et qui vous permet, si vous le créez séparément, de créer un séquenceur, de l'utiliser dans votre code, et d'utiliser aussi le même séquenceur pour plusieurs " tables ", donc c'est assez pratique. Ce séquenceur est lié maintenant, grâce au mot-clé " serial ", à la " table ". Et je vais prendre cette " table ". Je vais vous montrer ici en faisant " Script " de " CREATE ". Je vais générer un script de création. Vous voyez qu'il y a une légère différence avec ce que j'ai fait directement, parce que le nom est un " character varying(50) ". Donc, un synonyme en fait, " varchar ", de ce type complet, j'aurais pu l'exprimer comme ceci. C'est tout à fait un synonyme. Et même chose et vous voyez que les contraintes ici ont été ajoutées, automatiquement en-dessous, avec leur " nom ", j'aurais pu l'exprimer comme ça et donner le " nom " que je veux. Donc, j'ai une contrainte " PRIMARY KEY " sur " contactid ", j'ai une contrainte " UNIQUE ". J'aurais dû mettre, ça aurait été intelligent, sur " nom " et " prénom ", et je l'aurais écrit comme ceci. C'est une contrainte " unique " sur la combinaison de deux colonnes. Vous voyez aussi qu'il y a une option qui dit " OIDS=FALSE ". De quoi s'agit-il ? " L'OID ", dans Postgres est un object " id ", si vous voulez, c'est un " id " qui est " unique " à travers une base de données. Et qui donc permet d'être utilisé comme unifiant global, à travers une base de données. C'est quelque chose qui n'est pas forcément utilisé dans les " tables ", plus dans les " tables " systèmes, parce que la taille de " l'OID " fait que sur des bases volumineuses, on peut dépasser les valeurs possibles, et arriver à un dépassement de capacité. Il vaut mieux utiliser un " serial ", un entier qu'on génère avec un séquenceur, pour nos " tables " utilisateurs. À noter que si vous pensez par rapport aux possibilités qui sont offertes par le " serial ", que vous n'arrivez pas, à la limite, vous pouvez utiliser un bigserial, qui va vous donner une plus grande latitude, si vous avez des milliards et des milliards de lignes à stocker. Et donc, ce que je voulais vous montrer, c'est que si j'exécute ce " DROP TABLE ", qui supprime donc la " table ", alors vous avez vu ce que j'ai fait, j'ai sélectionné, dans pgAdmin, cette commande, et je vais faire un " F5 ", ou un " Exécuter " et qui va exécuter uniquement la requête que j'ai sélectionnée. Et donc pas tout le reste. Je vais faire un " DROP TABLE ". Je fais un " rafraîchissement " ici. Et vous voyez que ma " table " a disparu, mais ma " séquence " également. La " séquence " était liée à la " table " par l'utilisation du " serial ", et elle a été supprimée aussi, parce que j'ai supprimé la " table ".

Découvrir PostgreSQL

Comprenez le fonctionnement de PostgreSQL ainsi que son architecture. Effectuez les tâches courantes de sécurité, de création de bases de données et d'objets, etc.

2h46 (30 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
PostgreSQL PostgreSQL 9
Spécial abonnés
Date de parution :31 mars 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !