SG
de base de données
COURS
Visit Our Website
ecolemsg.com
Langage SQL Quelques définitions
Définitions courantes: Une base de données
Une base de données est un ensemble de
données modélisant les objets d’une partie du
monde réel et se servant de support à une
application informatique. Les bases de
données sont présentes dans la plupart des
applications que nous utilisons régulièrement.
Exemples:
Les opérations bancaires (toutes les
banques et les caisses)
Les achats en ligne (Amazon)
Les jeux vidéos pour garder les
caractéristiques(force, habiletés etc..) et les
items(armes, armures etc..) d’un
personnage du jeu
Etc….
Définitions & Exemples
Définitions courantes:
Un SGBD Exemples de SGBD:
Un SGBD peut-être perçu comme un Oracle,
ensemble de logiciels système
MySQL,
permettant aux utilisateurs d’insérer, de
MS SQL Server,
modifier et de rechercher efficacement
des données spécifiques dans une MongoDB,
grande masse d’information partagée SQLite
par de multiples utilisateurs.
Problèmes avant l'utilisation des
bases de données :
Systèmes de gestion de fichiers (SGF) des années 60 :
Avant l'introduction des bases de données, les fichiers
étaient gérés directement par chaque application via un
système de gestion de fichiers. Cela posait plusieurs
difficultés :
Problèmes avant
l'utilisation des bases de
données
Indépendance des
fichiers pour chaque Problèmes de mise à Redondance accrue Difficultés de mise à
application jour des fichiers des données jour
Chaque application devait Si plusieurs applications devaient Cette approche augmentait la Les mises à jour des fichiers
avoir son propre fichier pour utiliser les mêmes données dans un duplication des données, car devaient être effectuées
stocker ses données. Cela fichier, chaque application devait chaque application devait individuellement dans chaque
signifiait qu'il n'y avait pas de gérer sa propre version des stocker ses propres copies des application, ce qui rendait les
données. Toute modification des
partage efficace des mêmes données, entraînant processus de maintenance
données devait être répliquée
informations entre plusieurs une inefficacité. lents et coûteux.
manuellement dans chaque fichier,
applications. ce qui augmentait le risque
d'erreurs.
Solutions proposées par
les bases de données :
Les bases de données ont été introduites pour découplage
surmonter les problèmes des systèmes de gestion de
fichiers. Les bases de données ont révolutionné la Réduction de la
redondance des données
manière dont les données sont stockées, accédées et
mises à jour en apportant les avantages suivants :
Facilité de mise à
jour
Contrôle d'accès aux
données
Intégrité des
données
Performance
Management Programs
Contrôle d'accès aux
données
Les bases de données
Indépendance des données Réduction de la permettent un contrôle strict
Facilité de mise à jour des droits d'accès, garantissant
par rapport aux redondance des que seules les personnes
programmes (découplage) données Les mises à jour peuvent être autorisées peuvent lire ou
Dans une base de données, les Grâce à une conception effectuées de manière centralisée modifier certaines informations.
données sont stockées centralisée des bases de dans la base de données, ce qui
indépendamment des applications données, il n'est plus nécessaire garantit que toutes les applications Intégrité des données
utilisant ces données voient les
qui les utilisent. Cela signifie que de dupliquer les données. Cela
modifications immédiatement, sans
plusieurs applications peuvent réduit la redondance et améliore besoin de mise à jour manuelle pour Les systèmes de gestion de bases
accéder aux mêmes données sans l'efficacité de la gestion des chaque application. de données garantissent l'intégrité
avoir à stocker leurs propres copies. données. des données, ce qui signifie que les
données restent cohérentes,
précises et fiables, même en cas de
mise à jour ou de suppression.
Fichier vs Base de
Données :
Fichier
Dans le système de fichier traditionnel, les données sont définies
directement dans chaque programme qui les utilise. Cela signifie qu'un
changement dans la structure des données nécessite de modifier le
programme associé.
Base de Données
Dans une base de données, les données sont stockées et gérées
séparément. Cela permet une gestion plus centralisée et une meilleure
évolutivité, car les programmes peuvent accéder aux données sans
dépendre directement de leur structure ou emplacement spécifique.
Définition d’une base de données
relationnelle.
Dans une base de données relationnelle, La table ci-après a 4 colonnes (idarticle,
les données sont stockées à l’intérieur d’objets appelés « table ». Ces descriptions, prix et quantite_stock)
tables sont reliées entre elles par des clés étrangères (qu’on va voir plus
loin). Les tables ont un nom. La table ci-après a 7 lignes.
table Le nom de la table est Articles.
Une table est un ensemble de lignes et de colonnes.
Les lignes
Les lignes sont aussi appelées : Enregistrements
Les colonnes
Les colonnes sont aussi appelées: Attributs
Les fonctions des SGBD
I-DEFINITION DES DONNEES
⇒ Langage de définition des données (DDL)
(conforme à un modèle de données)
•II- MANIPULATION DES DONNEES
Interrogation Mise à jour insertion, suppression,
modification
• III-CONTRÔLE DES DONNEES ⇒ Langage de manipulation des données
Contraintes d'intégrité Contrôle des droits (DML) (langage de requête déclaratif)
d'accès Gestion de transactions
⇒ Langage de contrôle des données (DCL)
Microsoft SQL Server :
est un Système de gestion de base de données
relationnel et transactionnel développé et
commercialisé par Microsoft.
I-DEFINITION DES DONNEES
01 Création de la base de
données
02 Création des tables
03 Contraintes
04 Modification sur les tables
05 TD,TP
DDL
Le Langage de Définition des Données (DDL),
ou Data Definition Language en anglais
utilisé pour définir et gérer la structure des bases de données relationnelles. Il
permet de créer, modifier et supprimer les objets de la base de données comme les
tables, les index, les utilisateurs, etc
1-Création de la base de données
Les objets de type base de données (DATABASE) se gèrent principalement par :
CREATE DATABASE nom_bd;
RENAME DATABASE nom_bd TO nouveau_nom_bd [, nom_bd2 TO
nouveau_nom_bd2, ...];
DROP DATABASE nom_bd;
DDL
Tables
Les tables sont des objets de base de données qui contiennent toutes les données d'une
base de données. Dans les tables, les données sont logiquement organisées en lignes et
en colonnes, à la manière d'un tableur. Chaque ligne représente un enregistrement unique
et chaque colonne représente un champ dans l'enregistrement
2-Création des tables
L’instruction CREATE TABLE contient une très grande variété d’option et sa structure
contient plusieurs éléments importants.
Outre le nom de la table, les paramètres importants à spécifier sont : le nom et le type de
chaque colonne, les contraintes liées aux colonnes
CREATE TABLE nom_de_la_table ( ALTER TABLE ... voir prochaines diapositives
nom_colonne1 type_donnees contrainte , RENAME TABLE nom_table TO nouveau_nom_table [, nom_table2
nom_colonne2 type_donnees contrainte, TO nouveau_nom_table2, ...];
nom_colonne3 type_donnees contrainte ,
nom_colonne4 type_donnees contrainte ) DROP TABLE nom_table [CASCADE [CONSTRAINTS]] [PURGE];
DROP TABLE [IF EXISTS] nom_table;
Types Numériques
Type de nombre entier
TINYINT SMALLINT MEDIUMINT INT / INTEGER BIGINT
Description Description Description Description Description
Type d’entier qui stocke de petites Type d’entier qui peut contenir des Type d’entier qui supporte un Type d’entier standard qui peut Type d’entier conçu pour stocker de
valeurs entières. L’intervalle va de valeurs allant de -32,768 à 32,767 (ou intervalle de -8,388,608 à contenir des valeurs allant de très grandes valeurs, avec un
-128 à 127 (ou 0 à 255 si non signé). 0 à 65,535 si non signé). 8,388,607 (ou 0 à 16,777,215 si non -2,147,483,648 à 2,147,483,647 (ou intervalle de
signé). 0 à 4,294,967,295 si non signé). -9,223,372,036,854,775,808 à
Taille (bits) Taille (bits) 9,223,372,036,854,775,807.
Taille (bits) Taille (bits)
Taille (bits)
8 bits 16 bits 24 bits 32 bits 64 bits
Utilisation Utilisation Utilisation Utilisation Utilisation
Utile pour des petits nombres Idéal pour des valeurs comme Utile pour des valeurs nécessitant
Utilisé pour des valeurs Type de données le plus
comme des codes d’état ou des des identifiants ou des une grande capacité, comme des
intermédiaires, comme des couramment utilisé pour les
indicateurs. comptages. nombres de compteurs.
identifiants de produits. identifiants.
Types Numériques
Type de nombre décimal
FLOAT(n) DOUBLE(n) DECIMAL(p,s)/NUMERIC
Description Description Description
Type de nombre à virgule flottante Type de données à double Semblable à NUMERIC, permet
approximative qui utilise n bits pour précision qui offre plus de précision également de spécifier la précision
stocker la valeur (entre 1 et 126 bits). que FLOAT, en utilisant totale et les décimales.
généralement 64 bits pour le
Taille (bits) stockage.
Taille (bits)
Taille (bits)
32 bits 64 bits Variable (dépend des
valeurs p et s)
Utilisation Utilisation Utilisation
Utilisé pour des calculs approximatifs Utilisé pour des calculs nécessitant
Utilisé pour des valeurs monétaires
où la précision n'est pas critique, une plus grande précision, comme les
ou des calculs financiers où la
comme les statistiques. calculs scientifiques.
précision est essentielle.
p:Nombre total de chiffres dans le nombre (précision). s:Nombre de chiffres après le point décimal. n :Nombre de bits utilisé pour la précision des types flottants.
Types Numériques
Chaînes de caractères
TINYTEXT/MEDIUMTEXT
CHAR(n) VARCHAR(n) ENUM(a, b, c)
/LONGTEXT
Description Description
Ce sont des types de chaînes de
Description Description Type de données qui limite les
Type de données de longueur variable. caractères de longueur variable qui
valeurs possibles à un ensemble
Type de données de longueur fixe. diffèrent par leur capacité maximale
La longueur maximale de la chaîne est
prédéfini (exemple : ENUM('small',
Chaque valeur occupe exactement de stockage.
spécifiée par n, mais seulement la
'medium', 'large')).
l’espace défini par n, même si la TINYTEXT : Jusqu'à 255 caractères
place utilisée par les caractères
chaîne est plus courte (remplie avec (pratique pour des résumés très
insérés sera allouée, sans remplissage
des espaces). courts).
avec des espaces. Par exemple, avec
MEDIUMTEXT : Peut contenir jusqu'à
VARCHAR(50), une chaîne de 10 Utilisation
16 Mo de texte (utilisé pour des
caractères utilisera seulement 10
textes longs comme des articles ou
Utilisé pour des choix limités,
caractères d'espace.
Utilisation des descriptions).
Utilisation comme des tailles, catégories,
LONGTEXT : Peut stocker jusqu'à 4
Utilisé pour des valeurs fixes, Utilisé pour des valeurs ou états (par exemple "actif",
Go de texte (utilisé pour des données
comme des codes pays ou textuelles dont la longueur peut "inactif").
volumineuses comme des livres ou
identifiants fixes. varier, comme des noms ou des
des documents complets).
descriptions.
Types Numériques
Type temporels
TIME DATE DATETIME
FORMAT FORMAT
FORMAT
HH:MM:SS YYYY-MM-DD YYYY-MM-DD HH:MM:SS
EXEMPLE EXEMPLE
EXEMPLE
02:01:00 2024-12-15 2024-12-15 02:01:00
CONTRAINTES
Il est possible d’ajouter 6 types de contraintes différentes :
valeur nulle permise ou interdite (NULL par défaut) NULL ou NOT NULL
NULL ou NOT NULL
unicité UNIQUE
clé primaire PRIMARY KEY
FOREIGN KEY
clé étrangère
CONTRAINTES
Toutes les contraintes qui
validation CHECK seront spécifiées seront
automatiquement géré par le
SGBD et toute les
valeur par défaut DEFAULT
manipulations violant ces
contraintes seront interdites
ON PEUT AJOUTER LES CONTRAINTES DE
DEUX FAÇON :
à la fin de la déclaration d’une colonne
à la fin de la déclaration de toutes les
colonnes
on privilégie généralement la deuxième
approche lorsqu’elle est possible.
CONTRAINTES
Il est possible d’ajouter 6 types de contraintes différentes :
valeur nulle permise ou interdite (NULL par défaut) NULL ou NOT NULL
NULL ou NOT NULL
Cette contrainte définit si une colonne peut accepter des valeurs nulles ou non.
NULL signifie qu'aucune donnée n'est présente, tandis que NOT NULL exige que
chaque enregistrement ait une valeur dans cette colonne.
Exemple
Le concept de NULL dans les bases de
données relationnelles représente
l'absence de valeur ou une valeur
indéfinie. Ce n'est pas un zéro, un
espace vide, ou une chaîne de
caractères vide, mais plutôt un
marqueur qui signifie "inconnu"
CONTRAINTES
Il est possible d’ajouter 6 types de contraintes différentes :
unicité UNIQUE
NULL ou NOT NULL
une déclaration à la fin permet de mettre une contrainte sur un
ensemble de colonne;
dans l’exemple suivant, la colonne Id doit être unique ainsi que le duo
Nom et Prenom;
pris individuellement, Nom et Prenom peuvent être répété mais pas
pour la même ligne. Exemple
CONTRAINTES
Il est possible d’ajouter 6 types de contraintes différentes :
clé primaire PRIMARY KEY
NULL ou NOT NULL
une insertion à la fin permet aussi de préciser une clé primaire sur
plusieurs attributs;
implicitement, une clé primaire inclue les contraintes UNIQUE et
NOT NULL.
Exemple
CONTRAINTES
Il est possible d’ajouter 6 types de contraintes différentes :
TP
CONTRAINTES
Il est possible d’ajouter 6 types de contraintes différentes :
clé étrangère FOREIGN KEY
Une clé étrangère est une clé utilisée pour relier deux tables. Ceci est
NULL ou NOT NULL
parfois appelé aussi clé de référencement.
Une clé étrangère est une colonne ou une combinaison de colonnes
dont les valeurs correspondent à une clé primaire dans une autre table.
Exemple
CONTRAINTES
Il est possible d’ajouter 6 types de contraintes différentes :
clé étrangère FOREIGN KEY
Contrainte de clé étrangère - plusieurs options supplémentaires
NULL ou NOT NULL
sont possibles:
RESTRICT CASCADE
Empêche la suppression ou la mise à jour de la Supprime ou met à jour les lignes dans la table enfant
ligne dans la table parent si elle est référencée par automatiquement lorsque la ligne correspondante dans
la Table enfant. la table parent est supprimée ou mise à jour.
Empêche la suppression/mise à jour Supprime/met à jour les lignes liées automatiquement
SET NULL
Remplace la valeur de la clé étrangère par NULL
dans la table dépendante lors d'une suppression
ou mise à jour.
Exemple
sous réserve que la colonne accepte les valeurs
nulles.
CONTRAINTES
Il est possible d’ajouter 6 types de contraintes différentes :
clé étrangère FOREIGN KEY
RESTRICT CASCADE NULL ou NOT NULL
SET NULL
CONTRAINTES
Il est possible d’ajouter 6 types de contraintes différentes :
validation CHECK
La contrainte CHECK active une condition permettant de vérifier la
NULL ou NOT NULL
valeur saisie dans un enregistrement.
Exemple
CONTRAINTES
Il est possible d’ajouter 6 types de contraintes différentes :
valeur par défaut DEFAULT
Contrainte de valeur par défaut
NULL ou NOT NULL
si aucune valeur n’est spécifiée pour une colonne lors de l’insertion, la valeur
définie par défaut sera insérée;
cette contrainte s’ajoute à la fin de la déclaration de la colonne.
Exemple
CONTRAINTES
Il est possible d’ajouter 6 types de contraintes différentes :
TP
MODIFICATION
SUR LES TABLES
MODIFICATION SUR
LES TABLES
La commande ALTER TABLE en SQL permet
de modifier une table existante. Idéal pour
ajouter une colonne, supprimer une colonne
ou modifier une colonne existante, par
exemple pour changer le type.
Syntaxe
ALTER TABLE nom_table
instruction
1 Ajouter une colonnes
2 Modifier un colonnes
MODIFICATION
3 supprimer une colonne
SUR LES TABLES
4 Ajouter une contrainte
5 Supprimer une contrainte
AJOUTER UNE COLONNES
ALTER TABLE nom_table ADD (colonne1 type_donnees, colonne1
type_donnees, ... colonneN type_donnees);
exemple :
La requête suivante ajoutera une colonne "age" à la table stagiaire
MODIFICATION
Alter table stagiaire
SUR LES TABLES add age int;
MODIFIER UN COLONNES
Pour modifier une colonne, il y a différentes syntaxes selon le SGBD.
pour les colonnes contenant des contraintes, vous supprimez d’abord
des contraintes puis modifier la colonne.
Les modifications sur le type valide sont : int -> decimal -> char ->
varchar -> nvarchar -> ntext date -> varchar
ALTER TABLE nom_table
ALTER COLUMMN nom_colonne type_donnees;
SUPPRIMER UNE COLONNE
Une syntaxe permet également de supprimer une colonne pour
une table.
pour les colonnes contenant des contraintes, vous supprimez
d’abord des contraintes puis supprimer la colonne.
ALTER TABLE nom_table
DROP COLUMN nom_colonne;
exemple :
MODIFICATION pour supprimer la colonne age de la table stagiaire :
SUR LES TABLES Alter table stagiaire
DROP COLUMN age ;
AJOUTER UNE CONTRAINTE
ADD peut également être utilisé pour créer une contrainte sur les colonnes
de la table
ALTER TABLE nom_table
ADD CONSTRAINT nom_contrainte contrainte
exemple :
La requête suivante, ajoutera une contrainte CHECK à la colonne Age
ALTER TABLE stagiaire
ADD CONSTRAINT stg_age check(age>12)
SUPPRIMER UNE CONTRAINTE
DROP CONSTRAINT , pour supprimer une contrainte sur les
colonnes de la table
ALTER TABLE nom_table
DROP CONSTRAINT nom_contrainte ;
exemple :
MODIFICATION Pour supprimer la contrainte const_age de la table Employes
SUR LES TABLES
Alter table stagiaire
DROP CONSTRAINT stg_age ;
MODIFICATION
SUR LES TABLES
TP1
MODIFICATION
SUR LES TABLES
TP2
Contactez-nous
0654855724
ecolemsg.com
[email protected]
BV MED V LOT RIF 1 GUERCIF
Thank You
For Your Attention
Visit Our Website
ecolemsg.com