Créer une base de données dans PostgreSQL à l'aide de la commande createdb

Creer Une Base De Donnees Dans Postgresql A L Aide De La Commande Createdb



Dans ce guide, nous allons apprendre à créer une base de données dans PostgreSQL à l'aide de la commande createdb.

Conditions préalables:

Pour effectuer les étapes décrites dans ce guide, vous avez besoin des composants suivants :

  • Un système Linux correctement configuré. Pour les tests, pensez à configurer une machine virtuelle Ubuntu à l'aide de VirtualBox .
  • PostgreSQL installé et configuré. En savoir plus sur installer PostgreSQL sur Ubuntu .
  • Accéder à un utilisateur non root avec privilège sudo .

Bases de données PostgreSQL

PostgreSQLName est un système de base de données relationnelle objet gratuit et open source compatible SQL. Il peut fonctionner avec des requêtes relationnelles (SQL) et non relationnelles (JSON). En savoir plus sur le fonctionnalités de PostgreSQL .







Dans PostgreSQL, la hiérarchie des données est la suivante :



  • grappe
  • base de données
  • schéma
  • table (ou autres objets ; par exemple, fonction)

Toute instance PostgreSQL peut accepter plusieurs connexions client. Le client doit spécifier le nom de la base de données dans la demande de connexion. Une seule base de données par connexion est autorisée. Cependant, un client peut ouvrir plusieurs connexions au serveur, se connectant simultanément à une ou plusieurs bases de données.



Créer une base de données dans PostgreSQL

1. Ouvrir une connexion au serveur

Pour créer une nouvelle base de données, connectez-vous d'abord au serveur PostgreSQL :





$ sudo -je -dans postgres
$ psql

Notez que la création de la base de données est une opération restreinte. Seuls les utilisateurs disposant de privilèges suffisants sont autorisés à effectuer l'action.



2. Liste des bases de données actuelles
Exécutez la requête suivante dans psql pour imprimer la liste des bases de données sur le serveur :

$ \liste

Lors de l'installation, PostgreSQL crée la première base de données du serveur qui est « postgres ». Deux bases de données supplémentaires sont également créées :

  • modèle1 : Chaque fois que vous créez une nouvelle base de données dans le cluster, 'template1' est cloné.
  • modèle0 : Il sert de copie vierge du contenu original de 'template1'.

Ne créez pas d'objets dans 'template1' à moins que vous ne vouliez qu'ils fassent partie de chaque base de données nouvellement créée. Si 'template1' est modifié, 'template0' peut être cloné pour créer une nouvelle base de données sans aucun ajout local au site.

3. Création d'une nouvelle base de données
Pour créer une nouvelle base de données, exécutez la requête suivante dans psql :

$ CRÉER UNE BASE DE DONNÉES < nom_bd > ;

Ici:

  • Le rôle actuel est automatiquement assumé en tant que propriétaire de la nouvelle base de données.
  • Le propriétaire a le privilège de changer le propriétaire pour un rôle différent.

Vérifiez la liste des bases de données si l'action a réussi à l'aide de la commande suivante :

$ \liste

Avec un compte privilégié, nous pouvons également créer une base de données pour quelqu'un d'autre en utilisant la commande suivante :

$ CRÉER UNE BASE DE DONNÉES < nom_bd > PROPRIÉTAIRE < rôle > ;

La commande Createdb

Dans la méthode précédente, nous devions passer par plusieurs étapes pour créer une base de données :

  • Connectez-vous au serveur PostgreSQL en utilisant psql.
  • Exécutez les requêtes pour créer une nouvelle base de données.

Pour rationaliser le processus, PostgreSQL est fourni avec la commande createdb. Il agit essentiellement comme un wrapper pour ces actions. Nous pouvons exécuter directement la commande createdb depuis le shell.

1. Création d'une base de données à l'aide de Createdb
Pour créer une base de données à l'aide du serveur de base de données par défaut, utilisez la commande suivante :

$ crééb < nom_bd >

Vérifiez l'action à l'aide de la commande suivante :

$ psql -c '\liste'

Avec diverses options, nous pouvons également affiner les opérations createdb. Consultez l'exemple suivant :

$ crééb -h < héberger > -p < port > -T < modèle > -C'est --nom d'utilisateur = < nom d'utilisateur > --mot de passe --maintenance-db = < maintenance_db_name > < nom_bd >

Ici:

  • -h : Ce paramètre spécifie l'emplacement du serveur PostgreSQL (adresse IP ou nom de domaine).
  • -p : Le port pour se connecter au serveur.
  • -T : Le modèle à utiliser lors de la création de la nouvelle base de données. Il peut s'agir de template0, template1 ou de toute autre base de données.
  • -C'est : renvoie la requête équivalente.
  • -nom d'utilisateur : Le nom d'utilisateur pour se connecter au serveur.
  • -mot de passe : force la commande createdb à demander un mot de passe avant de se connecter au serveur. Dans la plupart des cas, ce n'est pas nécessaire puisque createdb demande automatiquement un mot de passe si le serveur l'exige. Cependant, il passe une tentative de connexion à le comprendre.
  • –maintenance-db : La base de données à laquelle se connecter lors de la création de la nouvelle base de données. S'il n'est pas spécifié, postgres est utilisé par défaut. Si postgres n'existe pas, 'template1' est supposé.

Il est temps de le mettre en action. Exécutez la commande createdb suivante :

$ crééb -h hôte local -p 5432 -T modèle0 -C'est --nom d'utilisateur =postgres test_db

Comme le suggère la sortie, cela équivaut à la requête suivante :

$ CREATE DATABASE test_db TEMPLATE template0 ;

Gestion de base de données supplémentaire

Dans cette section, examinons d'autres opérations de gestion de base de données.

Liste des bases de données

Il existe plusieurs façons de répertorier les bases de données stockées sur le serveur. Nous avons déjà démontré une méthode dans les sections précédentes :

$ \liste

Une autre méthode consiste à examiner le catalogue système « pg_database » :

$ SELECT nom_donnée FROM pg_database ;

Suppression d'une base de données

Pour supprimer une base de données, exécutez la requête suivante :

$ SUPPRIMER LA BASE DE DONNÉES < nom_bd > ;

Semblable à createdb, PostgreSQL est également livré avec la commande dropdb que nous pouvons exécuter à partir du shell. Jetez un œil à l'exemple suivant :

$ dropdb -h < héberger > -p < port > --nom d'utilisateur = < nom d'utilisateur > --mot de passe -C'est < nom_bd >

Ici:

  • -h : Le serveur PostgreSQL auquel se connecter.
  • -p : Le port du serveur PostgreSQL auquel se connecter.
  • -C'est : renvoie la requête équivalente.

Notez que l'utilisateur doit disposer de privilèges suffisants pour supprimer une base de données.

Changer la propriété d'une base de données

Le propriétaire d'une base de données peut effectuer n'importe quelle action sur la base de données, y compris la suppression de la base de données. Par défaut, l'utilisateur qui crée la base de données est désigné comme propriétaire. Cependant, nous pouvons réattribuer la propriété à un autre utilisateur.

Pour changer le propriétaire de la base de données, exécutez la requête suivante dans psql :

$ MODIFIER LA BASE DE DONNÉES < nom_bd > PROPRIÉTAIRE À < nouveau propriétaire > ;

Cependant, cela ne changera pas la propriété des objets dans la base de données (y compris les tables). Dans de tels cas, nous devons utiliser une requête différente. Connectez-vous à la base de données cible et exécutez la requête suivante :

$ RÉAFFECTATION APPARTENANT À < ancien_propriétaire > POUR < nouveau propriétaire > ;

Bien que pratique, cette requête s'accompagne de quelques mises en garde :

  • Lors de la connexion à postgres (base de données), il peut changer la propriété de plusieurs bases de données à la fois.
  • N'utilisez pas cette requête lorsque le propriétaire d'origine est postgres car cela pourrait corrompre l'intégralité de l'instance de base de données.

Bonus : exécuter les requêtes depuis le shell

Jusqu'à présent, nous exécutons les requêtes depuis la console PostgreSQL. Et si vous souhaitiez intégrer des fonctionnalités de base de données dans vos scripts ? Les commandes createdb et dropdb ne peuvent effectuer que des opérations spécifiques.

Pour résoudre ce problème, nous pouvons utiliser psql comme conduit. Outre le shell interactif standard, psql peut également exécuter les requêtes à la volée.

Méthode 1 :

La structure de commande est la suivante :

$ psql -h < héberger > -p < port > -DANS < nom d'utilisateur > -d < base de données > -c < mettre en doute >

Ici:

  • -h : L'adresse du serveur PostgreSQL.
  • -p : Le port auquel se connecter (la valeur par défaut est 5432).
  • -DANS : L'utilisateur auquel se connecter en tant que.
  • -d : La base de données à laquelle se connecter.
  • -c : La requête à exécuter.

Méthode 2 :

PostgreSQL est livré avec une autre fonctionnalité intéressante : l'URI de connexion. C'est un moyen astucieux d'encoder soigneusement tous les paramètres de connexion. La structure d'un URI de connexion est la suivante :

$ postgresql : //< nom d'utilisateur > : < mot de passe >@< héberger > : < port >/< nom_bd >

Ici:

  • postgresql ou postgres : Le protocole unique pour l'URI de connexion PostgreSQL.

Pour vous connecter à une base de données à l'aide de l'URI de connexion, utilisez la commande psql suivante :

$ psql -d < connection_uri > -c < mettre en doute >

Conclusion

Nous avons découvert différentes manières de créer des bases de données dans PostgreSQL. Nous avons montré comment créer une base de données à l'aide de la requête CREATE DATABASE. Nous avons également présenté la création de la base de données à l'aide de la commande createdb. En outre, nous avons également passé sous silence certaines autres actions importantes de gestion de base de données, telles que la suppression de bases de données et le changement de propriétaire.

Vous souhaitez en savoir plus sur PostgreSQL ? Vérifiez Sous-catégorie PostgreSQL y qui contient de nombreux guides sur diverses fonctionnalités ; Par exemple: les fonctions , expressions régulières , les tables , et beaucoup plus.