Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
S
S4.A02.1-H-Adrien.fryson-Othemane.khachnane
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Othemane Khachnane
S4.A02.1-H-Adrien.fryson-Othemane.khachnane
Commits
5cf9f788
Commit
5cf9f788
authored
2 months ago
by
Adrien Fryson
Browse files
Options
Downloads
Patches
Plain Diff
Delete script.sql
parent
9408c02b
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
sae/script.sql
+0
-113
0 additions, 113 deletions
sae/script.sql
with
0 additions
and
113 deletions
sae/script.sql
deleted
100644 → 0
+
0
−
113
View file @
9408c02b
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
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment