Skip to content
Snippets Groups Projects
Commit 5cf9f788 authored by Adrien Fryson's avatar Adrien Fryson
Browse files

Delete script.sql

parent 9408c02b
No related branches found
No related tags found
No related merge requests found
DROP TABLE IF EXISTS Abonnement;
DROP TABLE IF EXISTS Message;
DROP TABLE IF EXISTS FilDeDiscussion;
DROP TABLE IF EXISTS Utilisateur;
CREATE TABLE Utilisateur (
id SERIAL PRIMARY KEY,
nom VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
mot_de_passe VARCHAR(255) NOT NULL,
date_inscription TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE FilDeDiscussion (
id SERIAL PRIMARY KEY,
nom VARCHAR(100) NOT NULL,
date_creation TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
createur_id INTEGER,
CONSTRAINT fk_createur FOREIGN KEY (createur_id) REFERENCES Utilisateur(id)
ON DELETE SET NULL
);
CREATE TABLE Message (
id SERIAL PRIMARY KEY,
contenu TEXT NOT NULL,
date_publication TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
fil_id INTEGER,
auteur_id INTEGER,
CONSTRAINT fk_fil FOREIGN KEY (fil_id) REFERENCES FilDeDiscussion(id)
ON DELETE CASCADE,
CONSTRAINT fk_auteur FOREIGN KEY (auteur_id) REFERENCES Utilisateur(id)
ON DELETE SET NULL
);
CREATE TABLE Abonnement (
utilisateur_id INTEGER,
fil_id INTEGER,
date_abonnement TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT pk_abonnement PRIMARY KEY (utilisateur_id, fil_id),
CONSTRAINT fk_utilisateur FOREIGN KEY (utilisateur_id) REFERENCES Utilisateur(id)
ON DELETE CASCADE,
CONSTRAINT fk_fil FOREIGN KEY (fil_id) REFERENCES FilDeDiscussion(id)
ON DELETE CASCADE
);
INSERT INTO Utilisateur (nom, email, mot_de_passe) VALUES
('Alice', 'alice@example.com', MD5('password1')),
('Bob', 'bob@example.com', MD5('password2')),
('Charlie', 'charlie@example.com', MD5('password3'));
INSERT INTO FilDeDiscussion (nom, createur_id) VALUES
('Discussion Générale', 1),
('Projet Informatique', 2);
INSERT INTO Message (contenu, fil_id, auteur_id) VALUES
('Bonjour tout le monde !', 1, 1),
('Salut, quelqu''un peut m''aider avec ce projet ?', 2, 2);
INSERT INTO Abonnement (utilisateur_id, fil_id) VALUES
(1, 1),
(2, 1),
(3, 2);
-- Lister tous les utilisateurs
-- SELECT * FROM Utilisateur;
-- Lister tous les fils de discussion créés par un utilisateur donné
-- SELECT * FROM FilDeDiscussion WHERE createur_id = 1;
-- Lister tous les messages d'un fil de discussion donné
-- SELECT * FROM Message WHERE fil_id = 1 ORDER BY date_publication;
-- Lister tous les abonnés d'un fil de discussion donné
-- SELECT u.* FROM Utilisateur u
-- JOIN Abonnement a ON u.id = a.utilisateur_id
-- WHERE a.fil_id = 1;
-- Lister tous les fils de discussion auxquels un utilisateur est abonné
-- SELECT f.* FROM FilDeDiscussion f
-- JOIN Abonnement a ON f.id = a.fil_id
-- WHERE a.utilisateur_id = 1;
-- Lister les 5 derniers messages postés dans tous les fils de discussion
-- SELECT * FROM Message ORDER BY date_publication DESC LIMIT 5;
-- Lister les fils de discussion avec le nombre de messages
-- SELECT f.id, f.nom, COUNT(m.id) AS nombre_messages
-- FROM FilDeDiscussion f
-- LEFT JOIN Message m ON f.id = m.fil_id
-- GROUP BY f.id, f.nom;
-- Lister les utilisateurs qui ne sont abonnés à aucun fil de discussion
-- SELECT u.* FROM Utilisateur u
-- LEFT JOIN Abonnement a ON u.id = a.utilisateur_id
-- WHERE a.fil_id IS NULL;
-- Lister les fils de discussion sans messages
-- SELECT f.* FROM FilDeDiscussion f
-- LEFT JOIN Message m ON f.id = m.fil_id
-- WHERE m.id IS NULL;
-- Lister les messages postés par un utilisateur donné
-- SELECT * FROM Message WHERE auteur_id = 1 ORDER BY date_publication;
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment