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;