CREATE OR REPLACE DATABASE school;
CREATE TABLE school.teachers (
employee_number INT AUTO_INCREMENT KEY,
name VARCHAR(200) NOT NULL,
email VARCHAR(200) UNIQUE NOT NULL,
birthday DATE NOT NULL
);
CREATE TABLE school.courses (
code CHAR(10) NOT NULL,
credits DOUBLE(3,2) NOT NULL DEFAULT 1,
name VARCHAR(200) NOT NULL,
description VARCHAR(1000),
teacher INT NOT NULL,
semester CHAR(5) NOT NULL
);
INSERT INTO school.teachers (employee_number, name, email, birthday)
VALUES (1, 'James', 'jhoffman@cshawi.ca', '1990-01-01'), (2, 'Mathieu', 'mstyves@cshawi.ca', '1980-02-02'), (3, 'Stevens', 'sgagnon@cshawi.ca', '1970-03-03'), (4, 'Marco', 'mguilmette@cshawi.ca', '1975-04-04');
INSERT INTO school.courses(code, credits, name, description, teacher, semester)
VALUES ('420-0Q4-SW', 2, 'Initiation à la profession', NULL, 1, 'A2021'), ('420-0Q4-SW', 2, 'Initiation à la profession', NULL, 1, 'A2020'), ('420-0Q7-SW', 2.33, 'Base de données 1', NULL, 1, 'A2021'), ('420-2SS-SW', 2, 'Développement d''applications mobiles', NULL, 1, 'A2021'), ('420-2SS-SW', 2, 'Développement d''applications mobiles', NULL, 1, 'A2020'), ('420-0Q7-SW', 2.33, 'Base de données 1', NULL, 2, 'A2021'), ('420-2SS-SW', 2, 'Développement d''applications mobiles', NULL, 2, 'A2020'), ('420-0SU-SW', 1.33, 'Web: Client 1', NULL, 2, 'A2021'), ('420-2SU-SW', 2.33, 'Web: Serveur 2', NULL, 2, 'A2021'), ('420-1SY-SW', 2.66, 'Analyse objet', NULL, 2, 'A2021'), ('420-0SV-SW', 1.66, 'Échange de données 1', 'Développement d''applications client-serveur', 3, 'A2021'), ('420-1SX-SW', 1.66, 'Robotique', 'Programmer un robot pour suivree un tracé', 3, 'A2021');
UPDATE table_name
SET column_name1={ expression | DEFAULT} [, column_name2={ expression | DEFAULT}, ...]
[WHERE where_condition]
[ORDER BY ...] -- Pour trier avant d'appliquer le LIMIT
[LIMIT rows_count] -- Appliquer seulement aux rows_count premiers enregistrements
ATTENTION
Si aucun WHERE
n'est fourni, TOUS les enregistrements seront modifiés
SELECT * FROM school.courses;
UPDATE school.courses
SET description = 'N/A', -- Valeur
name = UPPER(name), -- Fonction
credits = (credits * 2); -- Calcul
UPDATE school.courses
SET teacher = 4
WHERE teacher = 1; -- Condition, Marco(4) remplacera James(1)
SELECT * FROM school.courses;
DELETE FROM table_name
[WHERE where_condition]
[ORDER BY ...] -- Pour trier avant d'appliquer le LIMIT
[LIMIT rows_count] -- Appliquer seulement aux rows_count premiers enregistrements
[RETURNING column_def [, column_def ...]] -- Permets de SELECT les enregistrements supprimés
-- RETURNING ne fonctionne PAS avec SQLectron 1.37.1, utiliser cmd ou Beekeeper Studio
ATTENTION
Si aucun WHERE
n'est fourni, TOUS les enregistrements seront supprimés
DELETE
en appliquant la condition sur un SELECT
pour valider le WHERE
TRUNCATE TABLE table_name
réinitialise une tableSELECT * FROM school.courses;
DELETE FROM school.courses
WHERE teacher = 3 -- Supprime les cours de Stevens(3)
RETURNING code, UPPER(name) as `nom`, credits; -- Les cours supprimés
DELETE FROM school.courses; -- Vide la table
SELECT * FROM school.courses;
SELECT * FROM school.teachers;
DELETE FROM school.teachers
ORDER BY employee_number DESC
LIMIT 1; -- Supprime l'enseignant avec le numero le plus élevé
SELECT * FROM school.teachers;