0% ont trouvé ce document utile (0 vote)
51 vues10 pages

Cours SQL

Le document présente les bases de données et les systèmes de gestion de bases de données (SGBD), en détaillant différents types de bases de données, la modélisation des données, ainsi que les concepts d'entités, attributs et relations. Il aborde également les différences entre SQL et NoSQL, les types de données SQL, et fournit des exemples de requêtes SQL pour interagir avec les bases de données. Enfin, il propose un exercice de modélisation d'une base de données pour une bibliothèque, en mettant l'accent sur les entités et les cardinalités.

Transféré par

bennat walid
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 PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
51 vues10 pages

Cours SQL

Le document présente les bases de données et les systèmes de gestion de bases de données (SGBD), en détaillant différents types de bases de données, la modélisation des données, ainsi que les concepts d'entités, attributs et relations. Il aborde également les différences entre SQL et NoSQL, les types de données SQL, et fournit des exemples de requêtes SQL pour interagir avec les bases de données. Enfin, il propose un exercice de modélisation d'une base de données pour une bibliothèque, en mettant l'accent sur les entités et les cardinalités.

Transféré par

bennat walid
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 PDF, TXT ou lisez en ligne sur Scribd

❖ Une base de données est un lot d'informations stockées dans un dispositif

informatique.
❖ Un système de gestion de bases de données (SGBD) est un module informatique
chargé de gérer les données en permettant la création, la modification, la suppression
et la lecture.

Différents types de base de données


● Les bases hiérarchiques :
○ Lier les enregistrements dans une structure arborescente où chaque
enregistrement n'a qu'un seul possesseur.

● Les bases en réseau :


○ Est une base hiérarchique mais permet en plus d'établir des relations
transverses.

● Les bases relationnelles :


○ Stocke les informations décomposées et organisées dans des matrices
appelées relations ou tables. → SQL

● Les bases de données objet :


○ Stocke les informations regroupées sous forme de collections d'objets persistants.
● Les bases de données XML:
○ Il s'appuie sur le modèle de données fourni par XML.

Modélisation des Données


La modélisation des données consiste à structurer les données afin de les organiser de
manière logique pour leur gestion, leur stockage et leur récupération dans un système de
gestion de bases de données relationnelles (SGBDR). La modélisation est réalisée à l'aide de
concepts tels que les entités, les relations et les attributs.
Entités et attributs
● L'entité
● L'attribut
● L'identifiant
● L'occurrence
● L'association ou relation

L'entité:

● Concept concret ou abstrait du monde à modéliser


● Elle se représente par un cadre contenant son nom.

Personne

L'attribut:
● Donnée élémentaire qui sert à caractériser les entités (et les associations).
● Les attributs sont listés dans l'entité.
Personne

NOM
Prenom
Date_de_nai

L'identifiant (ou clé)


● Attribut(s) particulier(s) permettant d'identifier chaque occurrence d'une entité.
● Les attributs servant d'identifiant sont soulignés.

L'occurrence
● Élément particulier d'une entité (ou d'une association)
● L'occurrence ne fait pas partie du modèle relationnel
Relations et Cardinalité
L'association binaire
● Permet de relier deux entités entre elles.
● Elle se représente par le biais d'un ovale contenant son nom et ses attributs.
● Leur nom est généralement un verbe.
Les cardinalités
● Couple de valeurs indiqué à l'extrémité de chaque lien d'une association.
● La cardinalité minimum indique le caractère optionnel (0) ou obligatoire (1) de
la relation.
● La cardinalité maximum indique le caractère unique (1) ou multiple (n) de la
relation.

Exercice :

Vous devez modéliser une base de données pour une bibliothèque. La bibliothèque gère les
livres, les emprunteurs (personnes qui empruntent des livres) et les emprunts.

Entités :

1. Livre : Chaque livre a un identifiant unique (ISBN), un titre, un auteur, et une année
de publication.
2. Emprunteur : Chaque emprunteur a un identifiant unique, un nom et une adresse.
3. Emprunt : Représente le fait qu'un emprunteur a emprunté un livre à une date
donnée, avec une date de retour prévue.

Questions sur la cardinalité :

1. Quelle est la cardinalité entre les entités "Livre" et "Emprunt" ?


○ Un livre peut être emprunté plusieurs fois, mais chaque emprunt correspond à
un seul livre.
○ Donc, quelle est la cardinalité entre Livre et Emprunt ?
2. Quelle est la cardinalité entre les entités "Emprunteur" et "Emprunt" ?
○ Un emprunteur peut emprunter plusieurs livres, mais un emprunt spécifique
correspond à un seul emprunteur.
○ Donc, quelle est la cardinalité entre Emprunteur et Emprunt ?
3. Quelle est la cardinalité entre les entités "Livre" et "Emprunteur" en passant
par l'entité "Emprunt" ?
○ Un emprunteur peut emprunter plusieurs livres au fil du temps.
○ Un livre peut être emprunté par plusieurs emprunteurs différents.
○ Quelle est donc la relation cardinalité entre Livre et Emprunteur ?

Langage SQL
SQL vs NoSQL Comparison
Les bases de données SQL (Structured Query Language) et NoSQL (Not Only SQL)
sont deux approches distinctes pour stocker et gérer les données. Voici les
principales différences :

SQL NoSQL

● Les données sont stockées dans ● Les données sont stockées dans
des tables avec des champs des formats variés, tels que des
définis et des relations entre documents JSON, des paires
elles. clés-valeurs ou des graphes,
sans structure préalable.

● Les données sont stockées ● Les données sont stockées sans


selon un modèle de données modèle de données centralisé,
relationnel, avec des tables, des ce qui permet une grande
clés étrangères et des flexibilité et adaptation aux
contraintes de données. besoins spécifiques.

● Les bases de données SQL ● Les bases de données NoSQL


utilisent un système de gestion utilisent des SGBD spécifiques,
de base de données (SGBD) comme MongoDB, Cassandra ou
traditionnel, comme MySQL, Redis.
PostgreSQL ou Oracle.

● Les commandes SQL, telles que ● Les bases de données NoSQL


SELECT, INSERT, UPDATE et utilisent des API ou des langages
DELETE, sont utilisées pour de programmation spécifiques
interagir avec la base de pour accéder et manipuler les
données. données.

● Les bases de données SQL sont ● Les bases de données NoSQL


souvent intégrées dans les sont souvent utilisées dans les
applications web et les systèmes applications qui nécessitent une
d’information traditionnels. grande flexibilité et une capacité
à gérer des données
hétérogènes

● SQL signifie langage de requête structuré


● SQL vous permet d'accéder et de manipuler des bases de données

Types de données SQL

1. Types numériques

● INT : Représente un entier (nombre entier).


○ Ex : INT
○ Exemples : client_id INT

● DECIMAL ou NUMERIC : Représente un nombre avec une partie décimale.
○ Ex : DECIMAL(10, 2) (10 chiffres au total, dont 2 après la virgule)
○ Exemples : montant DECIMAL(10, 2)

● FLOAT ou REAL : Représente un nombre à virgule flottante (avec précision


variable).
○ Ex : FLOAT, REAL
○ Exemple : prix FLOAT

2. Types de texte

● VARCHAR : Chaîne de caractères de longueur variable.


○ Ex : VARCHAR(255) (chaîne de 255 caractères maximum)
○ Exemple : nom VARCHAR(100)

● CHAR : Chaîne de caractères de longueur fixe.


○ Ex : CHAR(10) (chaîne de longueur fixe de 10 caractères)
○ Exemple : code_pays CHAR(2)

● TEXT : Chaîne de texte de longueur illimitée (selon le SGBD).


○ Exemple : description TEXT

3. Types de date et d'heure

● DATE : Représente une date (année, mois, jour).


○ Format : YYYY-MM-DD
○ Exemple : date_inscription DATE

Requête SQL :

Exemple : Créer une table clients

CREATE TABLE clients (


client_id INT PRIMARY KEY AUTO_INCREMENT, -- Identifiant unique pour chaque client, auto-incrémenté
nom VARCHAR(100) NOT NULL, -- Nom du client, obligatoire
prenom VARCHAR(100) NOT NULL, -- Prénom du client, obligatoire
email VARCHAR(150) UNIQUE NOT NULL, -- Adresse e-mail unique et obligatoire
telephone VARCHAR(20), -- Numéro de téléphone (facultatif)
adresse VARCHAR(255), -- Adresse (facultatif)
ville VARCHAR(100), -- Ville (facultatif)
code_postal VARCHAR(20), -- Code postal (facultatif)
pays VARCHAR(50), -- Pays (facultatif)
date_inscription DATE NOT NULL, -- Date d'inscription du client, obligatoire
statut VARCHAR(20) DEFAULT 'actif' -- Statut du client (par défaut 'actif')
);

1. SELECT - Requête pour récupérer des données

Cette requête est utilisée pour sélectionner des données dans une base de données.

SELECT colonne1, colonne2


FROM table_name
WHERE condition;

2. INSERT - Ajouter des données dans une table

Cette commande ajoute des enregistrements dans une table.

INSERT INTO table_name (colonne1, colonne2, colonne3)


VALUES (valeur1, valeur2, valeur3);

3. UPDATE - Modifier des données dans une table

Cette requête permet de mettre à jour les enregistrements existants dans une table.

UPDATE table_name
SET colonne1 = nouvelle_valeur1, colonne2 = nouvelle_valeur2
WHERE condition;
Exemple:

UPDATE clients
SET statut = 'inactif'
WHERE email = '[email protected]';
Cette requête modifie le statut du client avec l'adresse e-mail
[email protected] à inactif.

4. DELETE - Supprimer des données dans une table

Cette commande supprime des enregistrements d'une table.

DELETE FROM table_name


WHERE condition;

Exemple :

DELETE FROM clients


WHERE client_id = 10;
Cette requête supprime le client avec client_id = 10 de la table clients.

5. JOIN - Combiner des données de plusieurs tables

Utilisé pour récupérer des données de plusieurs tables reliées par une clé.

SELECT table1.colonne1, table2.colonne2


FROM table1
INNER JOIN table2
ON table1.colonne_commune = table2.colonne_commune;

Exemple :

SELECT clients.nom, commandes.montant


FROM clients
INNER JOIN commandes
ON clients.client_id = commandes.client_id
WHERE commandes.date = '2024-09-22';

Cette requête sélectionne les noms des clients et les montants de leurs commandes du 22
septembre 2024.

6. GROUP BY - Grouper des enregistrements et utiliser des fonctions


d'agrégation

Utilisé pour regrouper les résultats en fonction d'une ou plusieurs colonnes et appliquer des
fonctions comme COUNT(), SUM(), AVG(), etc.
SELECT colonne, COUNT(*)
FROM table_name
GROUP BY colonne
HAVING COUNT(*) > valeur;
Exemple :
SELECT pays, COUNT(*) AS nombre_clients
FROM clients
GROUP BY pays
HAVING COUNT(*) > 10;

Cette requête affiche le nombre de clients par pays, mais seulement pour les pays ayant plus de
10 clients.

7. ORDER BY - Trier les résultats

Permet de trier les enregistrements par ordre croissant ou décroissant.

SELECT colonne1, colonne2


FROM table_name
ORDER BY colonne1 ASC/DESC;
Exemple :

SELECT nom, prenom, date_inscription


FROM clients
ORDER BY date_inscription DESC;

Cela récupère les clients et les trie par date d'inscription, de la plus récente à la plus ancienne.

Vous aimerez peut-être aussi