0% ont trouvé ce document utile (0 vote)
60 vues4 pages

PostgreSQL Résumé

Ce document est un cours complet sur PostgreSQL, couvrant son installation, les concepts de base, les commandes SQL, les types de données, la gestion des utilisateurs et des permissions, ainsi que des requêtes avancées. Il inclut également des instructions pour utiliser PostgreSQL avec Laravel et pgAdmin. Le contenu est structuré en parties claires, facilitant l'apprentissage pour les débutants et les développeurs plus avancés.

Transféré par

amehouenouparfait
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
60 vues4 pages

PostgreSQL Résumé

Ce document est un cours complet sur PostgreSQL, couvrant son installation, les concepts de base, les commandes SQL, les types de données, la gestion des utilisateurs et des permissions, ainsi que des requêtes avancées. Il inclut également des instructions pour utiliser PostgreSQL avec Laravel et pgAdmin. Le contenu est structuré en parties claires, facilitant l'apprentissage pour les débutants et les développeurs plus avancés.

Transféré par

amehouenouparfait
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd

Parfait !

Voici un **cours complet sur PostgreSQL**, clair et progressif, adapté


aux débutants comme aux développeurs plus avancés.

---

## 🐘 COURS COMPLET SUR **PostgreSQL**

### ✅ Partie 1 : Introduction à PostgreSQL

* **PostgreSQL** est un **système de gestion de base de données relationnelle


(SGBDR)** open source, robuste et puissant.
* Il respecte les normes SQL, supporte les **transactions ACID**, les **types
complexes**, les **fonctions personnalisées**, et **JSONB**.

---

### 💻 Partie 2 : Installation de PostgreSQL

#### ✅ Sous Windows :

1. Télécharger depuis :
[[Link]
download/windows/)
2. Installer **pgAdmin** (interface graphique officielle)
3. Créer un super-utilisateur (souvent nommé `postgres`)
4. Port par défaut : `5432`

#### ✅ Sous Linux :

```bash
sudo apt update
sudo apt install postgresql postgresql-contrib
sudo systemctl start postgresql
```

---

### Partie 3 : Concepts de Base

| Élément | Description |
| ------------------- | ----------------------------------------- |
| **Base de données** | Contient les données |
| **Table** | Structure les données (colonnes/colonnes) |
| **Schéma** | Groupe logique de tables/fonctions |
| **Ligne** | Une entrée dans une table |
| **Colonne** | Une propriété d'une ligne |
| **Index** | Accélère les recherches |

---

### 📦 Partie 4 : Commandes SQL de base

#### 🔹 Connexion à PostgreSQL :

```bash
psql -U postgres -d nom_bdd
```

#### 🔹 Créer une base :


```sql
CREATE DATABASE mon_projet;
```

#### 🔹 Créer une table :

```sql
CREATE TABLE utilisateurs (
id SERIAL PRIMARY KEY,
nom VARCHAR(100),
email VARCHAR(255) UNIQUE NOT NULL,
age INTEGER
);
```

#### 🔹 Insérer des données :

```sql
INSERT INTO utilisateurs (nom, email, age)
VALUES ('Parfait', 'parfait@[Link]', 25);
```

#### 🔹 Lire les données :

```sql
SELECT * FROM utilisateurs;
```

#### 🔹 Mettre à jour :

```sql
UPDATE utilisateurs SET age = 26 WHERE nom = 'Parfait';
```

#### 🔹 Supprimer :

```sql
DELETE FROM utilisateurs WHERE age < 18;
```

---

### 🧠 Partie 5 : Types de Données

| Type | Description |
| ------------------- | -------------------- |
| `INTEGER` | Entier |
| `SERIAL` | Clé auto-incrémentée |
| `VARCHAR(n)` | Chaîne de caractères |
| `TEXT` | Texte long |
| `BOOLEAN` | Vrai/faux |
| `DATE`, `TIMESTAMP` | Date et heure |
| `JSON`, `JSONB` | Données JSON |

---

### 🔐 Partie 6 : Utilisateurs et Permissions


#### 🔹 Créer un utilisateur :

```sql
CREATE USER devuser WITH PASSWORD 'motdepasse';
```

#### 🔹 Donner les droits :

```sql
GRANT ALL PRIVILEGES ON DATABASE mon_projet TO devuser;
```

---

### 🔄 Partie 7 : Relations, Clés, Index

#### 🔹 Clé étrangère :

```sql
CREATE TABLE commandes (
id SERIAL PRIMARY KEY,
utilisateur_id INTEGER REFERENCES utilisateurs(id),
montant DECIMAL(10,2)
);
```

#### 🔹 Index :

```sql
CREATE INDEX idx_utilisateur_email ON utilisateurs(email);
```

---

### 🧰 Partie 8 : pgAdmin (interface graphique)

* Créer/supprimer des bases


* Éditer des tables, voir les requêtes SQL
* Sauvegarder/restaurer des bases

---

### 📚 Partie 9 : Requêtes Avancées

* **Jointures :**

```sql
SELECT [Link], [Link]
FROM utilisateurs u
JOIN commandes c ON [Link] = c.utilisateur_id;
```

* **Fonctions d’agrégation :**

```sql
SELECT COUNT(*), AVG(age) FROM utilisateurs;
```

* **GROUP BY, HAVING :**


```sql
SELECT age, COUNT(*) FROM utilisateurs GROUP BY age HAVING COUNT(*) > 1;
```

* **Sous-requêtes :**

```sql
SELECT * FROM utilisateurs WHERE age > (SELECT AVG(age) FROM utilisateurs);
```

---

### 🔄 Partie 10 : Backup et Restauration

#### 🔹 Sauvegarde :

```bash
pg_dump -U postgres -d mon_projet -f [Link]
```

#### 🔹 Restauration :

```bash
psql -U postgres -d mon_projet < [Link]
```

---

### 🚀 Partie 11 : PostgreSQL avec Laravel

Dans `.env` de Laravel :

```env
DB_CONNECTION=pgsql
DB_HOST=[Link]
DB_PORT=5432
DB_DATABASE=nom_de_la_base
DB_USERNAME=postgres
DB_PASSWORD=motdepasse
```

Migration compatible :

```php
$table->bigIncrements('id');
$table->string('nom');
$table->timestamps();
```

---

Souhaites-tu maintenant que je passe à **Symfony** ou veux-tu approfondir Laravel


ou PostgreSQL avant ?

Vous aimerez peut-être aussi