{}const=>[]async()letfn</>var
DéveloppementSQL

Les bases de SQL : SELECT, INSERT, UPDATE, DELETE – le guide complet du développeur

Apprenez les quatre principales commandes SQL pour travailler avec des bases de données. Exemples détaillés de SELECT, INSERT, UPDATE et DELETE avec des conseils pratiques, des transactions et une protection contre les injections SQL. Idéal pour les développeurs débutants.

К

Kodik

Auteur

6 min de lecture

Préparation : création d'un tableau de test

Avant de commencer à travailler avec les données, créons un tableau simple pour les exemples :

CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL,
    age INT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

🔥 100 000+ étudiants déjà avec nous

Marre de lire la théorie ?
Il est temps de coder !

Kodik — une appli où tu apprends à coder par la pratique. Mentor IA, leçons interactives, projets réels.

🤖 IA 24/7
🎓 Certificats
💰 Gratuit
🚀 Commencer
Ont rejoint aujourd'hui

SELECT : lecture des données

La commande SELECT est utilisée pour extraire des données d'une table. C'est l'opération la plus courante lors de l'utilisation de bases de données.

Syntaxe de base

SELECT column1, column2 FROM table_name;

Exemples d'utilisation

Sélection de toutes les colonnes :

SELECT * FROM users;

Sélection de colonnes spécifiques :

SELECT name, email FROM users;

Utilisation de WHERE pour le filtrage :

SELECT * FROM users WHERE age > 25;

Trier les résultats avec ORDER BY :

SELECT * FROM users ORDER BY name ASC;
SELECT * FROM users ORDER BY created_at DESC;

Limitation du nombre de résultats:

SELECT * FROM users LIMIT 10;
SELECT * FROM users LIMIT 10 OFFSET 20; -- пагинация

Utilisation de LIKE pour rechercher par modèle :

SELECT * FROM users WHERE email LIKE '%@gmail.com';
SELECT * FROM users WHERE name LIKE 'А%'; -- имена на букву А

Fonctions agrégées :

SELECT COUNT(*) FROM users;
SELECT AVG(age) FROM users;
SELECT MAX(age), MIN(age) FROM users;

Regroupement avec GROUP BY :

SELECT age, COUNT(*) as count 
FROM users 
GROUP BY age 
HAVING COUNT(*) > 1;

INSERT : ajout de données

La commande INSERT permet d'ajouter de nouveaux enregistrements à la table.

Syntaxe de base

INSERT INTO table_name (column1, column2) VALUES (value1, value2);

Exemples d'utilisation

Insérer un enregistrement :

INSERT INTO users (name, email, age) 
VALUES ('Alexey', 'alexey@example.com', 28);

Insérer plusieurs entrées :

INSERT INTO users (name, email, age) VALUES 
    ('Maria', 'maria@example.com', 25),
    ('Dmitry', 'dmitry@example.com', 32),
    ('Elena', 'elena@example.com', 29);

Insérer sans spécifier toutes les colonnes :

INSERT INTO users (name, email) 
VALUES ('Ivan', 'ivan@example.com');
-- age будет NULL, created_at заполнится автоматически

Insertion avec retour d'ID :

-- MySQL
INSERT INTO users (name, email, age) 
VALUES ('Olga', 'olga@example.com', 27);
SELECT LAST_INSERT_ID();

-- PostgreSQL
INSERT INTO users (name, email, age) 
VALUES ('Olga', 'olga@example.com', 27)
RETURNING id;

MISE À JOUR : mise à jour des données

La commande UPDATE modifie les enregistrements existants dans la table.

Syntaxe de base

UPDATE table_name 
SET column1 = value1, column2 = value2 
WHERE condition;

Exemples d'utilisation

Mise à jour d'un enregistrement :

UPDATE users 
SET age = 29 
WHERE id = 1;

Mise à jour de plusieurs champs :

UPDATE users 
SET name = 'Alexey Petrov', age = 30 
WHERE id = 1;

Mise à jour de plusieurs entrées :

UPDATE users 
SET age = age + 1 
WHERE age < 30;

Utilisation des calculs :

UPDATE users 
SET email = LOWER(email);

Mise à jour conditionnelle avec plusieurs conditions :

UPDATE users 
SET age = 25 
WHERE name = 'Maria' AND email LIKE '%@example.com';

Avertissement important

Toujours utiliser WHERE lors de la mise à jour ! Sans cette condition, tous les enregistrements du tableau seront mis à jour :

-- ОПАСНО! Обновит все записи
UPDATE users SET age = 25;

-- ПРАВИЛЬНО! Обновит только нужные записи
UPDATE users SET age = 25 WHERE id = 1;

DELETE : suppression de données

La commande DELETE supprime des enregistrements de la table.

Syntaxe de base

DELETE FROM table_name WHERE condition;

Exemples d'utilisation

Suppression d'un enregistrement :

DELETE FROM users WHERE id = 1;

Suppression par condition :

DELETE FROM users WHERE age < 18;

Suppression avec plusieurs conditions :

DELETE FROM users 
WHERE created_at < '2024-01-01' AND age IS NULL;

Suppression de tous les enregistrements (attention !) :

DELETE FROM users; -- удалит все записи
TRUNCATE TABLE users; -- быстрее, но нельзя откатить в транзакции

Avertissement important

Comme pour UPDATE, vérifiez toujours la présence de WHERE avec DELETE :

-- ОПАСНО! Удалит все записи
DELETE FROM users;

-- ПРАВИЛЬНО! Удалит только нужные записи
DELETE FROM users WHERE id = 1;

Transactions : travail sécurisé avec les données

Lors de l'exécution des opérations INSERT, UPDATE et DELETE, il est recommandé d'utiliser des transactions pour garantir l'intégrité des données :

START TRANSACTION;

UPDATE users SET age = 30 WHERE id = 1;
UPDATE users SET age = 28 WHERE id = 2;

-- Если всё хорошо:
COMMIT;

-- Если нужно отменить изменения:
ROLLBACK;

Conseils pratiques

Utilisez SELECT avant UPDATE/DELETE

Avant de modifier ou de supprimer des données, exécutez SELECT avec la même condition pour vous assurer que vous travaillez avec les bons enregistrements :

-- Сначала проверяем
SELECT * FROM users WHERE age < 18;

-- Если всё верно, удаляем
DELETE FROM users WHERE age < 18;

Indices de performance

Créez des index pour les colonnes fréquemment utilisées dans WHERE :

CREATE INDEX idx_email ON users(email);
CREATE INDEX idx_age ON users(age);

Évitez SELECT *

Dans le code de production, indiquez des colonnes spécifiques à la place de l'astérisque :

-- Плохо
SELECT * FROM users;

-- Хорошо
SELECT id, name, email FROM users;

Utilisez LIMIT

Lorsque vous travaillez avec de grandes tables, limitez le nombre d'enregistrements renvoyés :

SELECT * FROM users LIMIT 100;

Requêtes paramétrées

Lorsque vous travaillez avec SQL à partir du code, utilisez toujours des requêtes paramétrées pour vous protéger contre les injections SQL :

JavaScript (Node.js)

const userId = 1;
const query = 'SELECT * FROM users WHERE id = ?';
db.query(query, [userId]);

Python

user_id = 1
cursor.execute("SELECT * FROM users WHERE id = %s", (user_id,))

PHP (PDO)

$userId = 1;
$stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?");
$stmt->execute([$userId]);

Fusion des équipes : exemple pratique

Créons une petite application pour gérer les utilisateurs :

-- Создание пользователя
INSERT INTO users (name, email, age) 
VALUES ('Anna', 'anna@example.com', 26);

-- Получение ID нового пользователя
SET @user_id = LAST_INSERT_ID();

-- Чтение данных пользователя
SELECT * FROM users WHERE id = @user_id;

-- Обновление возраста
UPDATE users SET age = 27 WHERE id = @user_id;

-- Проверка обновления
SELECT name, age FROM users WHERE id = @user_id;

-- Удаление пользователя
DELETE FROM users WHERE id = @user_id;

-- Проверка удаления
SELECT COUNT(*) FROM users WHERE id = @user_id; -- должно вернуть 0

Conclusion

Les commandes SELECT, INSERT, UPDATE et DELETE sont la base du travail avec SQL. Après avoir maîtrisé ces opérations, vous serez en mesure de gérer efficacement les données dans n'importe quelle base de données relationnelle. Gardez à l'esprit la sécurité lorsque vous travaillez avec UPDATE et DELETE, utilisez toujours des requêtes paramétrées dans le code et n'oubliez pas les transactions pour les opérations critiques.

Rejoignez la plateforme éducative Code — vous trouverez ici des cours interactifs sur Python, JavaScript, HTML, CSS, SQL et d'autres langages de programmation. Tous les supports sont créés spécifiquement pour les développeurs débutants avec des exemples pratiques et des explications étape par étape.

Kodika a également un communauté Telegram, où les développeurs communiquent, partagent leurs expériences et s'entraident pour résoudre les problèmes.

Rejoignez-nous et commencez votre parcours en programmation !

🎯Arrête de reporter

Tu as aimé l'article ?
Place à la pratique !

Avec Kodik, tu ne lis pas seulement — tu codes immédiatement. Théorie + pratique = vraies compétences.

Pratique instantanée
🧠L'IA explique le code
🏆Certificat

Sans inscription • Sans carte