0% ont trouvé ce document utile (0 vote)
5 vues9 pages

Guide complet sur les bases de données SQL

Une base de données (BDD) est un système permettant de stocker et gérer des données de manière efficace. Les opérations courantes incluent la modification de colonnes, l'ajout et la suppression de contraintes, ainsi que la création d'index. Les commandes SQL se divisent en DCL, DML et DDL, et des concepts avancés comme les jointures, les fonctions de fenêtre et les expressions de table communes (CTE) sont également abordés.

Transféré par

Sohaïb EL
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)
5 vues9 pages

Guide complet sur les bases de données SQL

Une base de données (BDD) est un système permettant de stocker et gérer des données de manière efficace. Les opérations courantes incluent la modification de colonnes, l'ajout et la suppression de contraintes, ainsi que la création d'index. Les commandes SQL se divisent en DCL, DML et DDL, et des concepts avancés comme les jointures, les fonctions de fenêtre et les expressions de table communes (CTE) sont également abordés.

Transféré par

Sohaïb EL
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

C’est quoi une BDD ?

C’est un système qui nous permet de stocker et gérer les données d’une façon souple et efficace.

Comment modifier la colonne d’une table en BDD ?

➢ ALTER TABLE nom_table ALTER COLUMN nom_colonne TYPE NOUVEAU_TYPE

Autres opérations : [ADD | DROP ] COLUMN nom_colonne

Comment ajouter une contrainte à une table ?


ALTER TABLE nom_table ADD CONSTRAINT nom_contrainte FOREIGN KEY (client_id) REFERENCES
clients(id)

Comment supprimer une contrainte d’intégrété ?

ALTER TABLE nom_table DROP CONSTRAINT nom_contrainte

Les containtes d’intégrité qu’on a dans les BDDs ?

PRIMARY KEY, FOREINGN KEY, NOT NULL, UNIQUE, DEFAULT, CHECK

Exp: ALTER TABLE car ADD CONSTRAINTE check_price CHECK(price < 3000)

Comment créer/supprimer un index ?

CREATE INDEX nom_index ON nom_table(colonne1, colonne2…)

DROP INDEX

NB: Les colonnes doivent êtres de la même tables.

Inconvénient d’index ?

➢ C’est comme l’index d’un livre, il accélère la recherche mais ça prend de la place.
➢ Impacte la vitesse d’écriture de données.

Les datatypes supportés par postgsql ? (selon les SGBD)

String: char(n), Varchar(n)

Numérique: decimal(p,s) integer, float

Date: date, timestemp, timestemptz, datetime(YYYY-MM-DD hh:mm:ss)

Comment importer un fichier csv à une BDD SQL ? (postgrsql)

COPY my_table(colonne1, colonne2,…) FROM ‘/my/path/exemple/[Link]’ DELIMITER ‘,’


CSV HEADER
Pourquoi les BDDs non relationnels sont-elles généralement plus performantes ?

➢ Pas de contraintes d’intégrités => lecture et écritures plus rapides


➢ Structure flexible => pas de validation de données => écritures plus rapides.
➢ Elles sont conçues pour les Big Data => elles supportent la scalabilité horizontales.

Types de commandes SQL ? CMD

➢ DCL: Data Control Language => grant, revoke users permissions


➢ DML: Data Manipulation Language => select, insert, delete, update, merge
➢ DDL: Data Définition Language => create, ADD, MODIFY, DROP

Nb : merge mettre à jour et insère si ça n’existe pas.

A quoi sert la commande BACKUP / dump file ?

Empêche la perte des données : Permet d’exporter la BDD dans un fichier (restore file)

Postgrsql:

Pg_dump -U username -d db_name > dump_file_name.sql

SQL Server :

BACKUP TO DISK = ‘C:\path\[Link]’ WITH FORMAT, INIT;

Comment créer une function SQL ?

DELIMITER $$

CREATE OR REPLACE FUNCTION carre(valeur NUMERIC) RETURNS NUMERIC

BEFGIN

RETURN valeur * valeur;

END;

$$

Comment l’appeler ?

SELECT carre(5); -- 25z

A quoi sert l’opérateur EXISTS ?

SELECT * FROM Employee e WHERE EXISTS (SELECT * FROM Employee e2 WHERE [Link] = [Link])

De même on peut utiliser les ops : ANY ou ALL ( vaut true si l’id match tous les ids retournés par
sub-query)
A quoi sert la fonction IFNULL ?

Permet de retourner une valeur alternative si la valeur actuelle de la colonne est null.

Les fonctions les plus utilisées dans SQL ?

String : UPPER(), LOWER(), LENGTH(), CONCAT(), REPLACE(a, b) , TRIM().

Date: NOW(), EXTRACT(YEAR|DAY| DOW |MOUNT FROM DATE ‘2024-05-05’) , -- DOW retorn 0 à 6 |
0=Dimanche.

Number: ROUND(10.2525, 2) -- 10.25, MAX(), MIN(), AVG()

Les fonctions d’agrégation ?

C’est des fonctions qui combines plusieurs lignes pour retourner une seule valeur, elles sont utilisées
avec GROUP BY.

Exemple:

COUNT(), AVG(), MIN(), MAX(), SUM(), ROUND()

HAVING vs WHERE ?

WHERE: applique la condition avant le regroupement.

HAVING: applique la condition après le regroupement et elle est utilisée avec GROUP BY. S’applique
sur le les groupes générés par GROUP BY.

JOINTURES

JOIN : veut dire combiner deux tables.

INNER JOIN, LEFT JOIN, RIGTH JOIN, FULL OUTER JOIN.


- FULL OUTER JOIN | CROSS JOIN: retourne les éléments des deux tables(intersection+les lignes des
deux tables) avec les null dans les colonnes manquants.

- LEFT OUTER JOIN  LEFT JOIN : indentique LEFT JOIN est une expression courte de l’autre.

- RIGHT OUTER JOIN  RIGHT JOIN : Pareil.

- SELF JOIN: utilisée pour une jointure sur la table actuelle

Exp: je veux dans une table Employee(nom, prenom, manager), je veux avoir le nom d’employée et
de son manager.

SELECT [Link] , [Link] FROM employes e

LEFT JOIN employes m ON e.manager_id = [Link];

C’est quoi UNION ?

UNION : clause/opérateur utilisée pour concaténer le résultat de deux requêtes.

NB 01 :

➢ Elle élimine les enregistrements en double.


➢ On peut l’utiliser plusieurs fois pour concaténer le résultat de plusieurs requêtes.

C’est quoi la différence entre UNION et UNIO ALL ?

UNION ALL: fait la même chose que UNION mais elle garde les doublons.

Exp :

SELECT cust_name, cust_amount FROM custA

[UNION ALL | UNION]

SELECT cust_name, cust_amount FROM custB

CASE EXPRESSION

Expression utilisée pour manipuler la valeur à retourner selon des conditions comme IF/ELSE
SUB QUERY/RQUETES IMPRIQUEES

Sert à imbriquer la requête principale avec une autre requête dans la clause WHERE.

 Imbriquer une requête à l’intérieur d’une autre requête.

Exp :

Je veux les employées qui touche un salaire supérieur à la moyenne général des salaires.

WINDOW FUNCIONS

Permet d’appliquer les fonctions d’agrégation de statistiques sur une partition de lignes. Sans
Grouper les lignes par GROUP BY.

SELECT RANK() OVER(PARTITION BY nom ORDER BY nom);

Syntaxe :

Exp 01: RANK(), SUM()


Explications :

• PARTITION BY: permet de regrouper un ensemble de lignes.


• RANK(): sert à calculer un RANK() d’une partition.
• ROWS: sélectionne les lignes d’une partition.

Résultat :

Exp 02 : Sélectionner l’id le plus petit/grand id.


Fonctions de fenêtrage : FIRST_VALUE(), LAST_VALUE(), LEAD() => valeur suivante LAG() valeur
précédente.

Entrée :

Résultat :

WINDOW FUNCTION vs GROUP BY ?


WINDOW FUNCTION garde le meme nombre de lignes, et ajoute des colonnes

GROUPE BY: il regroupe les lignes.

EXP : si 100 ventes et tu veux regrouper par vendeur.

• WINDOW FUNCTIONS: retourne 100 ligne


• GROUP BY : retourne le nombre de vendeurs.

GROUP BY :
WINDOW FUNCTIONS :

COMMON TABLE EXPRESSION (CTE)

C’est une requête qui stock sa valeur dans une table temporaire, cette table sera utilisée par la
requête principale.

Syntaxe :

WITH table_temporaire AS ( SELECT a, b, c FROM table01 ) -- CTE

SELECT a, b FROM table_temporaire; -- main query

Vous aimerez peut-être aussi