Langage SQL Flashcards

(26 cards)

1
Q

Qu’est-ce qu’une base de donnée ?

A

Une base de donnée sert à enregistrer et organiser des informations.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quels sont les 4 types de base de données ?

A
  • base relationnelle (SQL)
  • base noSQL
  • base orientée recherche/analytique
  • base embarquée / locale
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Quels sont les différents niveaux d’organisation de PostgreSQL ?

A

serveur -> base -> schéma -> table

serveur : contient plusieurs bases de données

base de données : espace de stockage indépendant au sein du serveur, contient un ou plusieurs schémas

schéma : un espace logique de classification à l’intérieur d’une base, permet d’organiser les tables par domaine, module ou équipe

table : structure contenant les données (lignes/colonnes), toutes les requêtes SQL portent sur des tables.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Comment rédiger un commentaire en SQL ?

A

’ commentaire

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Quelles est la syntaxe pour interroger la base de données ?

A

SELECT colonne 1, colonne 2
FROM nom_de_la_table
LIMIT 5;

  • permet d’afficher toute la table
    ATTENTION : si la table est énorme, cela peut casser le système. On utilise donc LIMIT.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Quels sont les type de données SQL ?

A

Types numériques :
- INT nombre entier
- SERIAL entier auto-incrémenté
- NUMERIC (p,s) nombre décimaux précis (p = nombre de chiffres, s = nombres de décimaux)
- REAL / FLOAT nombre à virgule flottante

Types de texte :
- VARCHAR(n) texte de longueur variable (n = max)
- CHAR(n) texte de longueur fixe
- TEXT texte de longueur illimitée

Types date et temps :
- DATE
- TIME
- TIMESTAMP date + heure

Autre :
- BOOLEAN

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Qu’est-ce qu’une clé primaire ?

A

Une clé primaire (PK) est une colonne(ou groupe de colonne) qui :
- identifie uniquement chaque ligne de la table
- ne peut jamais être vide
- ne peut jamais être dupliquée
- est souvent un nombre auto-incrémenté

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Qu’est-ce qu’une clé étrangère ?

A

Une clé étrangère (FK) est une colonne qui :
- fait référence à la clé primaire d’une autre table
- crée une relation entre deux tables
- garantit l’intégralité référentielle (pas de données orphelines)

FOREIGN KEY (id_etab)
REFERENCE etab(id_etab)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Quelle est la syntaxe pour créer un table ?

A

CREATE TABLE nom_schema.nom_table (
colonne1 TYPE CONTRAINTES,
colonne2 TYPE CONTRAINTES,

CONTRAINTES_DE_TABLES
);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Donner des exemples de contraintes (tables/colonne).

A

Contrainte de table :
UNIQUE (colonne1, colonne2)

Contrainte de colonne :
- NOT NULL
- UNIQUE
- CHECK (value >= 0 AND value <= 20)
- DEFAULT NOW()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Quelles sont les types de relations ?

A

1 - 1 one to one
1 - N one to many
N - N many to many

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Quelle est la syntaxe pour insérer des données ?

A

INSERT INTO nom_table (colonne1, colonne2, …)
VALUES (valeur1, valeur2, …)

IMPORTANT : les colonnes SERIAL sont gérées automatiquement, ne jamais les inclure dans insert

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Quelle clause permet de filtrer les lignes retournées par une requête ?

A

SELECT colonnes
FROM nom_table
WHERE condition;

exemple : WHERE date_naissance > ‘YYYY-MM-DD’

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Quels sont les opérateurs de comparaison ?

A

=
!= ou <>
>
<
>=
<=
BETWEEN x and y
IN (‘value1’, ‘value2’) dans une liste
LIKE ‘%@gmail.com’ correspondant au motif
IS NULL
IS NOT NULL

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Quels sont les opérateurs logiques ?

A

AND / OR / NOT

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Citer des fonctions d’agrégation.

A

Les fonctions d’agrégation calculent une valeur unique à partir d’un ensemble de lignes.

  • COUNT(colonne)
  • MIN()
  • MAX()
  • AVG()
  • SUM()

ROUND(AVG(valeur), 2) permet d’arrondir le résultat

17
Q

A quoi servent les alias en SQL ?

A

Les alias permet de renommer une colonne dans le résultat pour améliorer la lisibilité

SELECT colonne AS nom_alias

18
Q

Quelles clause permet de trier les résultats dans un ordre spécifique ?

A

SELECT colonnes
FROM table
ORDER BY colonne [ASC|DESC]

IMPORTANT : pour une date, ACS tri par date anciennes à récentes

19
Q

Quelle est la syntaxe pour modifier des données ?

A

UPDATE nom_table
SET colonne1 = nouvelle_valeur1
colonne2 = nouvelle_valeur2
WHERE condition;

ATTENTION : toujours utiliser une condition sur une clé primaire sinon toute la table sera modifiée.

20
Q

Quelle est la syntaxe pour supprimer des données ?

A

DELETE FROM nom_table
WHERE condition;

ATTENTION : toujours utiliser une condition sur une clé primaire sinon toute la table sera supprimée.

21
Q

Quel est l’ordre d’exécution des clauses SQL ?

A

SELECT colonnes
FROM table1
INNER JOIN table2 ON …
WHERE condition
GROUP BY colonne
HAVING condition
ORDER BY colonne [ASC|DESC]
LIMIT nombre;

FROM -> JOIN -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY -> LIMIT

22
Q

Comment pouvons nous combiner plusieurs tables dans une requête ?

A
  • INNER JOIN : retourne uniquement les lignes qui ont une correspondance dans les deux tables

SELECT colonnes
FROM table1
INNER JOIN table2 ON table1.colonne = table2.colonne;

  • LEFT JOIN : retourne toutes les lignes de la table de gauche même s’il n’y a pas de correspondance dans la table de droite.
  • RIGHT JOIN : retourne toutes les lignes de la table de droite même s’il n’y a pas de correspondance dans la table de gauche.
  • FULL JOIN : retourne toutes les lignes de deux tables, avec NULL là où il n’y a pas de correspondance.
23
Q

Quelle clause permet de regrouper les données ?

A

SELECT colonne,
fonction_agregation(colonne1)
FROM table
GROUPE BY (colonne);

IMPORTANT : toutes les colonnes non-agrégées dans SELECT doivent être dans GROUP BY

24
Q

Quelle clause permet de filtrer les groupe après un GROUP BY ?

A

HAVING permet de filtrer sur des fonction d’agrégation.

25
Quelles sont les 3 formes de la normalisation ?
Formes normales : - 1NF : valeurs atomiques, pas de doublons - 2NF : pas de dépendance partielle (toutes les colonnes non-clé dépendant de la clé primaire) - 3NF : pas de dépendance transitive (aucune colonne non-clé dépend d'une autre colonne non-clé)
26
Quelles sont les syntaxe pour modifier une table ? (modifier table / ajouter colonne / supprimer colonne / modifier colonne / renommer / gérer les contraintes)
ALTER TABLE permet de modifier la structure d'une table. Ajouter une colonne : ALTER TABLE nom_table ADD COLUMN nom_colonne TYPE [contraintes]; Supprimer une colonne : ALTER TABLE nom_table DROP COLUMN nom_colonne Modifier une colonne : ALTER COLUMN nom_colonne TYPE nv_type (exemple pour changer le type) ALTER COLUMN nom_colonne SET NOT NULL (exemple pour rendre obligatoire) Renommer une table : ALTER TABLE ancien_nom_table RENAME TO nv_nom_table Renommer une colonne : ALTER TABLE nom_table RENAME COLUMN ancien_nom TO nv_nom Gérer les contraintes : ALTER TABLE nom_table ADD CONSTRAINT nom_contrainte TYPE (colonne) ALTER TABLE nom_table DROP CONSTRAINT nom_contrainte