Spaghetih

🧠 SQL Fundamentals

Ce document est une synthèse du module SQL Fundamentals de TryHackMe, rédigée en français. Il couvre les bases des bases de données, les commandes SQL essentielles, les opérations CRUD, les clauses, les opérateurs et les fonctions.([Medium][1])


📚 Tâche 1 : Introduction

Les bases de données sont omniprésentes dans le domaine de la cybersécurité. Que ce soit pour sécuriser une application web, analyser des menaces dans un SOC ou empêcher un utilisateur curieux d’accéder à des données sensibles, les bases de données jouent un rôle crucial.([Medium][2])


🗃️ Tâche 2 : Bases de Données 101

🔸 Bases de Données Relationnelles vs Non-Relationnelles

🔸 Tables, Lignes et Colonnes

Dans une base de données relationnelle, les données sont organisées en tables. Chaque ligne représente un enregistrement, et chaque colonne représente un champ de données.

🔸 Clés Primaires et Étrangères


💻 Tâche 3 : SQL

SQL (Structured Query Language) est le langage standard pour interagir avec les bases de données relationnelles. Il permet de créer, lire, mettre à jour et supprimer des données.

🔸 Pourquoi SQL est-il important ?

🔸 Connexion à MySQL

mysql -u root -p
# Mot de passe : tryhackme

🛠️ Tâche 4 : Commandes de Base de Données et de Table

🔸 Commandes de Base de Données

CREATE DATABASE nom_de_la_base;
SHOW DATABASES;
USE nom_de_la_base;
DROP DATABASE nom_de_la_base;

🔸 Commandes de Table

CREATE TABLE nom_de_la_table (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nom VARCHAR(255) NOT NULL,
    date_publication DATE
);
SHOW TABLES;
DESCRIBE nom_de_la_table;
ALTER TABLE nom_de_la_table ADD colonne INT;
DROP TABLE nom_de_la_table;

🔄 Tâche 5 : Opérations CRUD

🔸 Créer (INSERT)

INSERT INTO livres (id, nom, date_publication, description)
VALUES (1, "Sécurité Android", "2014-10-14", "Guide approfondi de la sécurité Android.");

🔸 Lire (SELECT)

SELECT * FROM livres;
SELECT nom, description FROM livres;

🔸 Mettre à jour (UPDATE)

UPDATE livres
SET description = "Guide mis à jour de la sécurité Android."
WHERE id = 1;

🔸 Supprimer (DELETE)

DELETE FROM livres WHERE id = 1;

🧮 Tâche 6 : Clauses

🔸 DISTINCT

Élimine les doublons dans les résultats.

SELECT DISTINCT nom FROM livres;

🔸 GROUP BY

Regroupe les résultats selon une ou plusieurs colonnes.

SELECT nom, COUNT(*) FROM livres GROUP BY nom;

🔸 ORDER BY

Trie les résultats.([Medium][1])

SELECT * FROM livres ORDER BY nom ASC;
SELECT * FROM livres ORDER BY nom DESC;

🔸 HAVING

Filtre les groupes après l’utilisation de GROUP BY.([Medium][1])

SELECT nom, COUNT(*) FROM livres GROUP BY nom HAVING COUNT(*) > 1;

🔍 Tâche 7 : Opérateurs

🔸 Opérateurs de Comparaison

🔸 Opérateurs Logiques

🔸 LIKE

Recherche de motifs.

SELECT * FROM livres WHERE nom LIKE '%Sécurité%';

🧠 Tâche 8 : Fonctions

🔸 Fonctions d’Agrégation

SELECT COUNT(*) FROM livres;
SELECT SUM(prix) FROM livres;
SELECT AVG(prix) FROM livres;
SELECT MAX(prix) FROM livres;
SELECT MIN(prix) FROM livres;

🔸 Fonctions de Chaîne

SELECT LENGTH(nom) FROM livres;
SELECT CONCAT(nom, ' - ', auteur) FROM livres;