Les requetes SELECT en MySQL
La commande SELECT est la plus importante à comprendre en
MySQL. Maitriser cette commande vous permettra d'établir des statistiques,
sortir la valeur précise d'un chiffre d'affaire, trouver un item précis et pertinant, bref c'est la pierre angulaire de tout votre logiciel /site web.
Table d'exemple
Nous utiliserons les données suivantes pour les exemples:
| CREATE DATABASE IF NOT EXISTS monsiteweb; |
---|
| USE monsiteweb; |
---|
| DROP TABLE IF EXISTS visiteurs; |
---|
| CREATE TABLE visiteurs |
---|
| ( id int, adresse_ip varchar(255), date datetime ); |
---|
| |
---|
| DROP TABLE IF EXISTS users; |
---|
| CREATE TABLE users |
---|
| ( id int, name varchar(255), adresse_ip varchar(255) ); |
---|
| |
---|
| INSERT INTO visiteurs (id, date, adresse_ip) |
---|
| VALUES |
---|
| ( "1", "2013-11-20 15:05:13", "5.20.4.96" ), |
---|
| ( "2", "2012-05-15 23:55:10", "105.12.3.6" ), |
---|
| ( "3", "2013-10-08 12:14:06", "52.24.23.3" ), |
---|
| ( "4", "2013-06-07 04:15:00", "36.45.25.204" ), |
---|
| ( "5", "2014-11-20 23:03:45", "49.102.45.101" ); |
---|
| INSERT INTO users (id, name, adresse_ip) |
---|
| VALUES |
---|
| ( "1", "Olivier ENGEL", "5.20.4.96" ), |
---|
| ( "2", "Batman", "105.12.3.6" ), |
---|
| ( "3", "Zorro", "52.24.23.3" ), |
---|
| ( "4", "Superman", "36.45.25.204" ); |
---|
| |
---|
| |
---|
Les opérations
Manipulation des caractères
| SELECT LENGTH("test"); |
---|
| -> 4 |
---|
| SELECT LOWER("Test"); |
---|
| -> "test" |
---|
| SELECT UPPER("test"); |
---|
| -> "TEST" |
---|
| SELECT TRIM(" test "); |
---|
| -> "test" |
---|
| SELECT QUOTE(" L'orange"); |
---|
| -> "L\`orange" |
---|
| SELECT REPLACE("olivier engel", "engel", "angel"); |
---|
| -> "olivier angel" |
---|
| SELECT REVERSE("olivier"); |
---|
| -> "reivilo" |
---|
| SELECT CONCAT("olivier", " ", engel"); |
---|
| -> "olivier engel" |
---|
Les expressions régulières avec MySQL
| SELECT "olivier" REGEXP "^ol"; |
---|
| -> 1 |
---|
| SELECT "olivier" REGEXP "ol|ul"; |
---|
| -> 1 |
---|
| SELECT "olivier" REGEXP "oli(.)?ier"; |
---|
| -> 1 |
---|
Les dates en MySQL
| SELECT NOW(); |
---|
| -> 2014-01-05 23:45:01 |
---|
Ajouter 31 jours à une date:
| SELECT DATE_ADD('2014-01-02', INTERVAL 31 DAY); |
---|
| -> 2014-01-05 23:45:01 |
---|
Autre syntaxe pour ajouter 1 jour à une date
| SELECT SELECT '2014-01-02' + INTERVAL 31 DAY; |
---|
| -> 2014-01-05 23:45:01 |
---|
Ajouter 1 Heure
| SELECT SELECT '2014-01-02' + INTERVAL 1 HOUR; |
---|
| -> 2014-01-02 01:00:00 |
---|
Supprimer 1 Heure
| SELECT SELECT '2014-01-02 00:01:00' - INTERVAL 1 HOUR; |
---|
| -> 2014-01-02 00:00:00 |
---|
Extrait la partie DATE
| SELECT DATE('2014-03-01 01:02:03'); |
---|
| -> 2014-03-01 |
---|
Indique le nombre de jours entre deux dates
| SELECT DATEDIFF('2014-01-31 03:00:59','2013-04-10'); |
---|
| -> 296 |
---|
Le SELECT simple
La requete suivante affichera le tableau dans sa globalité:
SELECT * FROM visiteurs;
Sélectionner des colonnes
SELECT date, id FROM visiteurs;
Donner un alias à une colonne
SELECT date as date_1, id as iden FROM visiteurs;
Filtrer avec WHERE
SELECT * FROM visiteurs WHERE id = 4;
SELECT * FROM visiteurs WHERE id != 3;
SELECT * FROM visiteurs WHERE id < 4;
SELECT * FROM visiteurs WHERE id >= 2;
SELECT * FROM visiteurs WHERE id > 1 AND id < 4;
COUNT
Il est possible de compter le nombre d'items d'une sélection.
SELECT COUNT(*) FROM visiteurs;
SELECT COUNT(*) FROM visiteurs WHERE id > 2;
MAX
La fonction MAX retourne la plus grande valeur de la sélection.
SELECT MAX(id) FROM visiteurs;
MIN
La fonction MIN retourne la plus petite valeur de la sélection.
SELECT MIN(id) FROM visiteurs;
SUM
Il est possible d'additionner la valeur des items d'une sélection.
SELECT SUM(id) FROM visiteurs WHERE id > 2;
La somme de (3+4+5) = 12
AVG
AVG ( pour average ) permet de calculer une moyenne sur une selection
SELECT AVG(id) FROM visiteurs;
La moyenne de (1+2+3+4+5) / 5 = 3
UNE QUESTION SUR L'ARTICLE?