SQL (Structured Query Language) est un langage de requêtes structuré utiliser pour communiquer avec un serveur de base de données. Nous allons parcourir l’ensemble des commandes utiles en SQL.


Les bases SQL

Pour commencer, nous allons accéder à MySQL sur votre système et lister les différentes base de données déjà en place.

mysql -u root -p mysql
Enter password: password

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| community          |
| mysql              |
| performance_schema |
| phpmyadmin         |
+--------------------+
5 rows in set (0.00 sec)

À partir de cette vue, vous allez pouvoir consulter différentes informations dont ces deux fonctions principales :

Lister toutes les tables de la base de donnée sur laquelle vous êtes connecté.

Lister toutes les tables de la base de donnée saisie.

Changer de base de donnée.

Affiche la structure de la table contenue dans la base de donnée saisie.

De la même manière que SHOW COLUMNS, il est également possible de consulter la structure d’une table de votre base de donnée :

mysql> DESCRIBE nom_table;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | NO   | PRI | NULL    |       |
| colonne1 | varchar(20) | YES  |     | Hello   |       |
| colonne2 | char(4)     | NO   |     | NULL    |       |
| colonne3 | date        | YES  |     | NULL    |       |
| colonne4 | text        | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

CREATE

CREATE sert principalement à créer vos bases de données et vos tables :

### Création de base de donnée
CREATE DATABASE IF NOT EXISTS nom_base;

### Création de table
CREATE TABLE nom_table (id INT AUTO_INCREMENT PRIMARY KEY, colonne1 VARCHAR(20) DEFAULT 'Hey', colonne2 CHAR(4) NOT NULL,
colonne3 DATE, colonne4 TEXT);

Ne pas afficher d’erreur si la base n’existe pas.

Paramètre d’auto-incrémentation d’une colonne de type entier.

Paramètre de définition de la clé primaire de votre table.

Paramètre d’obligation de valeur empêchant la saisie nulle.

Paramètre de définition de la valeur par défaut si la valeur fournie est nulle.

Il est également possible de créer une table à partir de la structure d’une table existante, nous verrons en détails l’éléments WHERE par la suite :

CREATE TABLE nouveau_nom_table AS SELECT colonne1, colonne2, ... FROM nom_table WHERE ....;

INSERT

INSERT sert à ajouter des données dans vos tables :

INSERT INTO nom_table VALUES (valeur1, valeur2, valeur3, ...);

Notez que les données peuvent être ajouté dans un ordre différent de celui de la structure de votre table :

INSERT INTO nom_table (colonne3, colonne1, colonne2) VALUES (valeur3, valeur1, valeur2);

SELECT

SELECT sert à rechercher des données dans vos tables :

SELECT * FROM nom_table WHERE colonne LIKE '%ell%' OR colonne='Hello';
SELECT DISTINCT colonne FROM nom_table LIMIT 50, 20;

Paramètre de condition de recherche.

Paramètre de limite qui affiche y enregistrements à partir de l’enregistrement x.

Paramètre pour ne pas afficher les doublons.

Paramètre de tri ASC ascendant ou DESC descendant.

Il est possible de cumuler différent critère de recherche grâce aux opérateurs de comparaisons et aux éléments AND et OR.
Tous les opérateurs de comparaison suivants sont utilisables :

Paramètre de recherche où % remplace une chaine de caractère.

Égale

Pas égale

Pas égale

Supérieur à

Inférieur à

Supérieur ou égale à

Inférieur ou égale à

Liste de plusieurs valeurs possibles

Valeur comprise dans un intervalle donnée (utile pour les nombres ou dates)

Valeur est nulle

Valeur n’est pas nulle


UPDATE

UPDATE sert à mettre à jour les données dans vos tables.
On effectue notre recherche avec la commande WHERE comment on le fait pour la commande SELECT :

UPDATE nom_table SET colonne='nouvelleinformation' WHERE colonne='information';

ALTER

ALTER sert à modifier la structure d’une table à savoir l’ajout d’une ou plusieurs colonnes à votre table, modifier une colonne existante ou la supprimer définitivement

### Modification de colonne
ALTER TABLE nom_table CHANGE colonne nouveau_nom_colonne INT/VARCHAR/TEXT/DATE/...

### Ajout de colonne
ALTER TABLE nom_table ADD nouvelle_colonne INT/VARCHAR/TEXT/DATE/...

### Suppression de colonne
ALTER TABLE nom_table DROP COLUMN colonne

DROP

DROP sert à supprimer une base de donnée ou une table définitivement :

### Suppression de base de donnée
DROP DATABASE IF NOT EXISTS nom_base_de_donnee

### Suppression de table
DROP nom_table

Ne pas afficher d’erreur si la base n’existe pas.


DELETE

DELETE sert à supprimer des enregistrements dans les tables de votre base de donnée ou une table définitivement.
On effectue notre recherche avec la commande WHERE comment on le fait pour la commande SELECT :

DELETE FROM nom_table WHERE colonne='valeur';

Notez de ne pas oublier la commande WHERE (erreur courante :)), qui engendra une perte de tout le contenu la table.
IL est également possible de vider une table et de réinitialiser le compteur auto_increment contrairement à DELETE :

TRUNCATE TABLE nom_table;