Résumé des principes mentionnés dans le cours OpenClassrooms "Implémentez vos bases de données relationnelles avec SQL".
|
BDD
|
Base de données
|
|
SGBD
|
Système de gestion de bases de données
|
|
SQL
|
Structured Query Language (en français, langage de requête structurée)
|
|
SGBD
|
Logiciel qui va manipuler les données d’une base. C’est ce logiciel qui commande les interactions avec la base pour y récupérer, ajouter, modifier ou supprimer des données.
|
|
SQL
|
Langage informatique qui permet d'interagir avec les bases de données.
|
|
MySQL
|
Le plus connu des SGBD. C’est le plus utilisé, car il était open-source avant son rachat par Oracle Corporation. Connu pour être notamment utilisé par les sites WordPress.
|
|
MariaDB
|
"Copie" open-source de MySQL qui suit les mêmes règles de langage que MySQL.
|
|
Oracle Database
|
Très cher, mais utile pour traiter un très gros volume de données. Ce sont presque exclusivement les grandes entreprises qui l’utilisent. Oracle tend à se faire rattraper par les SGBD open-source type MariaDB ou PostgreSQL. Il est en réelle perte de vitesse sur le marché.
|
|
PostgreSQL
|
Grand SGBD open-source disponible sur le marché. C’est le SGBD qui suit le plus les recommandations du SQL, ainsi que le plus rapide (ces dernières années). Il est notamment utilisé par Instagram ou par Spotify.
|
|
SQLite
|
Il stocke toute la base de données dans un seul et unique fichier. Peu propice à l’utilisation sur un grand nombre de données. Recommandé pour développer une base de données “en local”.
|
mysql -u root -p |
Acceder à MySQL.
|
mysql -u root -p nom_de_la_base_de_donnees < nom_du_fichier.sql |
Permet de "charger" une base de données en une seule commande, en chargeant le fichier.
|
use nom_de_la_base_de_donnees; |
Permet de "charger" les données d'une bdd en chargeant le fichier.
|
exit; |
Retourner dans le terminal en mode "normal".
|
SELECT COUNT(*) |
COUNT(*) permet de compter le nombre de lignes répondant au filtre parmi toutes les colonnes. |
SELECT COUNT(nom) |
COUNT(nom) permet de compter le nombre de lignes répondant au filtre dans la colonne nom. |
SELECT COUNT(DISTINCT nom) |
COUNT(DISTINCT nom) permet d'éviter les doublons. |
SELECT COUNT(DISTINCT nom) AS "Alias" |
AS permet de créer un alias à la colonne précédemment citée. |
SELECT MAX(sucre) AS "taux de sucre maximum" |
Nous donne le maximum de la colonne sur la sélection.
|
MIN |
Nous donne le minimum de la colonne sur la sélection.
|
AVG |
Nous donne la moyenne de la colonne sur la sélection.
|
SUM |
Nous donne la somme de la colonne sur la sélection.
|
SELECT ROUND(AVG(calories)) AS "calories moyennes des aliments > 30g" |
ROUND(AVG(calories)) permet d'arrondir la valeur retournée. |
UPPER |
Transformer le texte en majuscules.
|
NOW |
Retourne la date actuelle.
|
WHERE colonne = valeur |
WHERE peut s'exécuter avec SELECT, mais aussi avec n’importe quelle autre commande : vous pouvez l’utiliser avec UPDATE ou DELETE pour ne mettre à jour ou supprimer qu’un objet spécifique. |
> |
Supérieur à
|
< |
Inférieur à
|
>= |
Supérieur ou égal à
|
<= |
Inférieur ou égal à
|
LIKE = "texte" |
Permet de sélectionner les objets dont le texte d’une colonne répond à un modèle spécifique.
|
"%gmail.com" |
Texte se terminant par "gmail.com".
|
"gmail.com%" |
Texte commençant par "gmail.com".
|
"%gmail.com%" |
Texte comprenant "gmail.com" au début ou à la fin.
|
AND |
Permet d'ajouter un filtre supplémentaire avec la condition
ET |
OR |
Permet d'ajouter un filtre supplémentaire avec la condition
OU |
% à un rôle très spécifique. Il va permettre de faire correspondre des schémas spécifiques, on parle parfois de pattern.
PRIMARY KEY (option) |
Champ spécial obligatoire dans toutes les tables. Indique à MySQL que ce champ sera l'identifiant permettant d'identifier les objets.
|
NOT NULL (option) |
Ce champ ne peut pas être nul.
|
AUTO_INCREMENT (option) |
Ce champ sera créé par MySQL automatiquement, pas besoin de s'en soucier ! MySQL va utiliser l'id précédent et y ajouter +1 lors de l'ajout d'un nouvel objet.
|
UNIQUE (option) |
Ce champ ne peut pas avoir la même valeur en double.
|
DEFAULT value (option) |
Ce champ sert à indiquer une valeur par défaut. Utile pour ne pas avoir à spécifier une valeur tout le temps.
|
INTEGER (type) |
Champ numérique sous forme de nombre entier.
|
VARCHAR(100) (type) |
Champ sous forme de texte, limité à 100 caractères
|
FLOAT (type) |
Ce champ contiendra des chiffres décimaux.
|
BOOLEAN (type) |
Ce champ ne peut stocker que les valeurs
true (vrai) ou false (faux). |
CREATE DATABASE nomdelabase; |
Création d'une nouvelle base de données.
|
USE nomdelabase; |
Utiliser une base de données.
|
SHOW DATABASES; |
Montre toutes les bases de données.
|
CREATE TABLE utilisateur ( |
Création d'une table.
|
SHOW TABLES; |
Affiche les tables existantes.
|
SHOW COLUMNS FROM nomdelatable; |
Affiche le schéma d'une table.
|
FROM nomdelatable |
Spécifie la table de la base de donnée qui nous intéresse
|
INSERT INTO `nomdelatable` (`nom`, `prenom`, `email`) |
Permet d'insérer des données dans une table.
|
SELECT * |
SELECT indique à MySQL que nous souhaitons récupérer de la donnée ;* indique que l’on souhaite récupérer toutes les colonnes (ou champs) présents dans cette table ;FROM permet à MySQL de comprendre depuis quelle table nous souhaitons récupérer de la donnée. |
SELECT `nom`, `prenom`, `email` |
Indiquer les colonnes à afficher permet de choisir les champs que MySQL va montrer.
|
UPDATE `nomdelatable` |
UPDATE table mettre à jour de la donnée en indiquant la table dans laquelle se trouve(nt) le ou les objets que l'on veut modifier.SET colonne = valeur sert à indiquer quelles sont la ou les colonnes à modifier, et quelles sont la ou les valeurs qu’elles doivent désormais prendre. |
DELETE FROM `nomdelatable` |
Supprime une ligne de table en fonction du filtre.
|
DROP TABLE `nomdelatable`; |
Supprime toutes les données d'une table et la table elle-même.
|
DROP DATABASE `nomdelabase`; |
Supprime entièrement et de façon irréversible la base de données.
|
ORDER BY DATABASE `nom` ASC; |
Ce mot clé vous permet d’ordonner une colonne par ordre croissant (ascending en anglais, d’où le mot clé SQL
ASC), ou décroissant (descending en anglais, soit le mot clé DESC). |
CREATE VIEW utilisateurs_gmail_vw AS |
Créé une vue. MySQL a un système de “vues” qui permet de créer des tables temporaires à partir d’une commande SQL. Il est donc possible de “sauvegarder” une commande SQL.
|
SELECT * FROM utilisateurs_gmail_vw; |
Utilisation d'une vue. À noter que
_vw permet de faire la distinction avec les "vraies" tables. |
SELECT * |
La table
langue a été jointe grâce à JOIN langue.Pour pouvoir faire cette jointure, il faut préciser à MySQL la correspondance entre la table langue et la table utilisateur. Ici, cette correspondance est effectuée via la clé langue_id pour la table utilisateur et id pour la table langue. Celà se fait grâce à ON `utilisateur`.`langue_id` = `langue`.`id`. |
SELECT * |
- MySQL sélectionne tous les utilisateurs avec
SELECT * FROM utilisateur- On joint la table utilisateur_aliment avec JOIN utilisateur_aliment- On relie en considérant que l’id de l’utilisateur est stocké en tant que utilisateur_id dans la table utilisateur_aliment ON (utilisateur.id = utilisateur_aliment.utilisateur_id)- À ce JOIN , on lie de la donnée de la table aliment, soit un nouveau JOIN avec JOIN aliment- On précise que l’id de l’aliment est stocké dans utilisateur_aliment en tant que aliment_id avec ON (aliment.id = utilisateur_aliment.aliment_id) |
ALTER TABLE nomdelatable ADD colonne FLOAT; |
Modification de la table en ajoutant une colonne de type
FLOAT. |
ALTER TABLE nomdelatable DROP colonne; |
Modification de la table en supprimant une colonne.
|
ALTER TABLE nomdelatable MODIFY colonne; |
Modification de la table en changeant le type de la colonne.
|
ALTER TABLE nomdelatable CHANGE truc colonne; |
Modification de la table en changeant le nom de la colonne.
|
ALTER TABLE aliment |
FOREIGN KEY (famille_id) indique que la colonne “famille_id” est une clé étrangèreREFERENCES famille(id) on indique ensuite ce à quoi cette clé fait référenceON DELETE permet de savoir quel comportement avoir en cas de suppression de la référenceOptions : - RESTRICT ou NO ACTION empêche la suppression sous conditions- SET NULL supprime la référence et remplace les objets par NULL- CASCADE supprime tous les objets reliés |
ALTER TABLE aliment |
Options de
ON UPDATE :- RESTRICT ou NO ACTION empêche la mise à jour sous conditions- SET NULL met à jour la référence et remplace les objets par NULL- CASCADE met à jour tous les objets reliés |
No comments yet.
Cheatography n. The art of mapping complex subjects into clear, instantly navigable reference guides.