SQL Intro Flashcards
Qu’est-ce qu’une base de données relationnelle ?
Une base de données relationnelle est un système permettant de stocker et d’organiser des données structurées dans des tables liées entre elles par des relations. Les données sont manipulées à l’aide du langage SQL.
Expliquez le concept de clé primaire.
Une clé primaire est un identifiant unique attribué à chaque enregistrement d’une table. Elle permet d’identifier de façon certaine une ligne et sert souvent de base pour établir des relations entre tables. Dans MySQL, on utilise généralement un champ “id” avec les attributs PRIMARY KEY, AUTO_INCREMENT et NOT NULL.
Quelle est la différence entre UPDATE et ALTER TABLE ?
UPDATE modifie les données contenues dans une table, alors qu’ALTER TABLE modifie la structure de la table elle-même (ajout/suppression de colonnes, modification des types de données).
Pourquoi ne doit-on pas utiliser l’utilisateur root en production ?
Utiliser le compte root en production est dangereux car il possède tous les droits d’administration. Une bonne pratique de sécurité consiste à créer des utilisateurs avec uniquement les droits nécessaires à leur fonction, limitant ainsi les risques en cas de compromission.
Comment sécurisez-vous l’accès à une base de données MySQL ?
Pour sécuriser une base MySQL, je crée des utilisateurs spécifiques avec des privilèges limités via GRANT, j’utilise des mots de passe forts, je limite les connexions externes au serveur, et je m’assure que les entrées utilisateur sont validées pour éviter les injections SQL.
Expliquez la différence entre TRUNCATE TABLE et DELETE FROM.
TRUNCATE TABLE vide entièrement une table mais conserve sa structure. C’est une opération rapide qui réinitialise les compteurs AUTO_INCREMENT. DELETE FROM permet de supprimer des lignes spécifiques avec une clause WHERE et conserve les valeurs d’AUTO_INCREMENT.
Quelles sont les principales différences entre les bases de données SQL et NoSQL ?
Les bases SQL utilisent un schéma fixe (tables et colonnes prédéfinies) et des relations entre tables, garantissant l’intégrité des données. Les bases NoSQL sont plus flexibles (sans schéma fixe), adaptées aux données non structurées et offrent souvent une meilleure scalabilité horizontale pour les grands volumes de données.
Comment sélectionner des données dans une table selon certains critères ?
J’utilise la commande SELECT avec une clause WHERE. Par exemple : SELECT firstname, lastname FROM student WHERE age > 30;. Cette requête peut être affinée avec des opérateurs comme LIKE, BETWEEN, IN et des combinaisons logiques (AND, OR).
Comment importeriez-vous un fichier SQL dans une base de données ?
Je peux utiliser la commande CLI : mysql -u username -D database -p < fichier.sql ou, si je suis déjà connecté au client MySQL : source fichier.sql.
Quel est le rôle d’un SGBD (Système de Gestion de Base de Données) ?
Un SGBD gère le stockage, l’organisation, la manipulation et la sécurité des données. Il assure également l’intégrité et la cohérence des données, gère les accès concurrents, et fournit des mécanismes de sauvegarde et de restauration.
Comment créer une table avec une clé primaire auto-incrémentée dans MySQL ?
```sql CREATE TABLE student ( id INT PRIMARY KEY AUTO_INCREMENT NOT NULL, firstname VARCHAR(100), lastname VARCHAR(150), birthday DATE );
Comment mettre en oeuvre la sécurité pour les accès aux données conformément au référentiel DWWM ?
Je sécurise les accès en créant des utilisateurs avec des droits spécifiques, en validant systématiquement les entrées utilisateur, en utilisant des requêtes paramétrées pour éviter les injections SQL, et en chiffrant les données sensibles conformément au RGPD. J’applique également les recommandations de l’ANSSI concernant la sécurité des applications web.