Vous êtes sur la page 1sur 9

18/05/2022

GESTION DES BASES DE DONNÉES et LMD

Objectifs
• Créer une base de données
• Modifier la base de données
• Renommer la base de données
• Supprimer la base de données
• Manipulation des données

By Joris Ikany 1
18/05/2022

Créer une base de données


La commande CREATE DATABASE vous permet de créer une nouvelle base de
données PostgreSQL avec des paramètres par defaut.

Avec des paramètres specifics:

CREATE DATABASE database_name


WITH
[OWNER = role_name]
[TEMPLATE = template]
[ENCODING = encoding]
[LC_COLLATE = collate]
[LC_CTYPE = ctype]
[TABLESPACE = tablespace_name]
[ALLOW_CONNECTIONS = true | false]
[CONNECTION LIMIT = max_concurrent_connection]
[IS_TEMPLATE = true | false ]

Paramètres de postgreSSQL
• OWNER: Attribuez un rôle qui sera le propriétaire de la base de données. Si vous omettez l'option OWNER, le
propriétaire de la base de données est le rôle que vous utilisez pour exécuter l'instruction CREATE DATABASE.
• TEMPLATE: Spécifiez la base de données modèle à partir de laquelle la nouvelle base de données est créée. Par
défaut, PostgreSQL utilise la base de données template1 comme base de données modèle si vous ne spécifiez pas
explicitement la base de données modèle.
• ENCODING: Determine the character set encoding in the new database.
• LC_COLLATE: Spécifiez l'ordre de classement (LC_COLLATE) que la nouvelle base de données utilisera. Ce
paramètre affecte l'ordre de tri de la chaîne dans les requêtes contenant la clause ORDER BY. Il s'agit par défaut du
LC_COLLATE de la base de données modèle.
• LC_CTYPE: Spécifiez la classification des caractères que la nouvelle base de données utilisera. Cela affecte la
classification des caractères, par exemple, inférieur, supérieur et chiffre. Il s'agit par défaut du LC_CTYPE de la
base de données modèle.
• CONNECTION LIMIT: Spécifiez le nombre maximal de connexions simultanées à la nouvelle base de données. La
valeur par défaut est -1, c'est-à-dire illimité. Ce paramètre est utile dans les environnements d'hébergement
partagé où vous pouvez configurer le nombre maximal de connexions simultanées pour une base de données
particulière
• IS_TEMPLATE: Si IS_TEMPLATE est vrai, tout utilisateur disposant du privilège CREATEDB peut le cloner. Si false,
seuls les superutilisateurs ou le propriétaire de la base de données peuvent le cloner.
• TABLESPACE: Spécifiez l'espace de table que la nouvelle base de données utilisera. Il s'agit par défaut de l'espace
de table de la base de données modèle.
• ALLOW_CONNECTIONS: Le paramètre allow_connections est une valeur booléenne. S'il est faux, vous ne pouvez
pas vous connecter à la base de données.

By Joris Ikany 2
18/05/2022

Modifier la base de données 1/2


La commande ALTER DATABASE vous permet d'effectuer l'action suivante
sur la base de données :
 Modifier les attributs de la base de données
 Renommer la base de données
 Changer le propriétaire de la base de données
 Modifier le tablespace par défaut d'une base de données
 Modifier la session par défaut d'une variable de configuration d'exécution pour une
base de données

Modifier la base de données 2/2


Modification des attributs d'une base de données: ALTER DATABASE name
WITH option;
Renommer la base de données: ALTER DATABASE database_name RENAME
TO new_name;
Changer le propriétaire de la base de données: ALTER DATABASE
database_name OWNER TO new_owner | current_user | session_user;
Modifier le tablespace par défaut d'une base de données: ALTER DATABASE
database_name SET TABLESPACE new_tablespace;
Modifier les valeurs par défaut de la session pour les variables de
configuration d'exécution: ALTER DATABASE database_name SET
configuration_parameter = value;

By Joris Ikany 3
18/05/2022

Supprimer une base de donnees (1/2)


Lorsqu'une base de données n'est plus nécessaire, vous pouvez la supprimer à l'aide
de l'instruction DROP DATABASE.
 DROP DATABASE [IF EXISTS] database_name;
Supprimer une base de données qui a des connexions actives
Pour supprimer la base de données qui a des connexions actives, vous
pouvez suivre ces étapes :
 Etape 1: recherchez les activités associées à la base de données en
interrogeant la commande pg_stat_activity view:
SELECT * FROM pg_stat_activity WHERE datname = '<database_name>';
 Etape 2 : mettez fin aux connexions actives en lançant la requête suivante :
SELECT pg_terminate_backend (pid) FROM pg_stat_activity WHERE
pg_stat_activity.datname = '<database_name>';

Supprimer une base de donnees (2/2)

• Etape 3: exécutez la requete DROP DATABASE :


• DROP DATABASE <database_name>;

By Joris Ikany 4
18/05/2022

Copier la base de données PostgreSQL sur le même


serveur
Parfois, vous souhaitez copier une base de données PostgreSQL dans un serveur
de base de données à des fins de test.
PostgreSQL facilite cette opération via la requete CREATE DATABASE comme
suit :
 CREATE DATABASE targetdb
 WITH TEMPLATE sourcedb;

PostgreSQL copie la base de données d'un serveur à un autre


Il existe plusieurs façons de copier une base de données entre des serveurs de
base de données PostgreSQL.
Si la taille de la base de données source est importante et que la connexion
entre les serveurs de base de données est lente, vous pouvez vider la base de
données source dans un fichier, copier le fichier sur le serveur distant et le
restaurer :
 1. videz la base de données source dans un fichier.
pg_dump -U postgres -d sourcedb -f sourcedb.sql
 2. copiez le fichier de vidage sur le serveur distant.
 3. créez une nouvelle base de données sur le serveur distant :
CREATE DATABASE targetdb;
 4. restaurez le fichier de vidage sur le serveur distant :
psql -U postgres -d targetdb -f sourcedb.sql

By Joris Ikany 5
18/05/2022

une taille de valeur dans PostgreSQL: table, une base de


données, des index et un tablespace (1/2)
Taille de la table PostgreSQL: Pour obtenir la taille d'une table spécifique, vous
utilisez la fonction pg_relation_size(). Par exemple, vous pouvez obtenir la taille
de la table des acteurs dans l'exemple de base de données dvdrental comme
suit :
 select pg_relation_size('actor');
 La fonction pg_relation_size() retourne la taille d'une table spécifique en octets :

Pour rendre le résultat plus lisible par l'homme, vous utilisez la fonction
pg_size_pretty(). La fonction pg_size_pretty() prend le résultat d'une autre
fonction et le formate en octets, Ko, Mo, Go ou To selon le cas. Par example:

une taille de valeur dans PostgreSQL: table, une base de


données, des index et un tablespace (2/2)
Voici la sortie en Ko

La fonction pg_relation_size() renvoie uniquement la taille de la table, pas les


index inclus ni les objets supplémentaires.
Pour obtenir la taille totale d'une table, vous utilisez la fonction
pg_total_relation_size(). Par exemple, pour obtenir la taille totale de la table des
acteurs, vous utilisez l'instruction suivante :

Résultat/Sortie:

By Joris Ikany 6
18/05/2022

Manipulation des données

• Inserting Data (Insertion des données)


• Updating Data (Modification des données)
• Deleting Data (Suppression des données)

Insertion des données (1/2)

CREATE TABLE products ( product_no


integer, name text, price numeric );

INSERT INTO products VALUES (1, 'Cheese', 9.99);


• Vous pouvez insérer plusieurs lignes dans une seule commande :

INSERT INTO products (product_no, name, price) VALUES


(1, 'Cheese', 9.99),
(2, 'Bread', 1.99),
(3, 'Milk', 2.99);

By Joris Ikany 7
18/05/2022

Insertion des données (2/2)


• La deuxième forme est une extension PostgreSQL. Il remplit les colonnes à partir
de la gauche avec autant de valeurs que celles données, et le reste sera défini par
défaut.

• Pour plus de clarté, vous pouvez également demander explicitement des valeurs
par défaut, pour des colonnes individuelles ou pour la ligne entière :

• INSERT INTO products (product_no, name, price) VALUES (1, 'Cheese', DEFAULT);
• INSERT INTO products DEFAULT VALUES;

Modification des données


• Pour mettre à jour les lignes existantes, utilisez la commande UPDATE . Cela
nécessite trois informations :
• Le nom de la table et de la colonne à mettre à jour
• La nouvelle valeur de la colonne
• Quelle(s) ligne(s) mettre à jour

UPDATE products SET price = 10 WHERE price = 5;


UPDATE products SET price = price * 1.10;

Vous pouvez mettre à jour plusieurs colonnes dans une commande UPDATE en
répertoriant plusieurs affectations dans la clause SET. Par example:

UPDATE mytable SET a = 5, b = 3, c = 1 WHERE a > 0;

By Joris Ikany 8
18/05/2022

Suppression des données

• Vous pouvez utiliser la commande DELETE pour supprimer des lignes ; la syntaxe
est très similaire à la commande UPDATE. Par exemple, pour supprimer toutes les
lignes de la table des produits qui ont un prix de 10, utilisez :

• DELETE FROM products WHERE price = 10;

• Si vous écrivez simplement :


• DELETE FROM products;

• alors toutes les lignes du tableau seront supprimées ! Attention programmeur.

By Joris Ikany 9

Vous aimerez peut-être aussi