Chargement...

SQL SELECT


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

SELECT 1 + 2;
-> 3
SELECT 1 * 2;
-> 2
SELECT 1 / 2;
-> 0.5
SELECT 1 - 2;
-> -1

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;
SQL

Sélectionner des colonnes

SELECT date, id FROM visiteurs;
SQL

Donner un alias à une colonne

SELECT date as date_1, id as iden FROM visiteurs;
SQL

Filtrer avec WHERE

SELECT * FROM visiteurs WHERE id = 4;
SQL
SELECT * FROM visiteurs WHERE id != 3;
SQL
SELECT * FROM visiteurs WHERE id < 4;
SQL
SELECT * FROM visiteurs WHERE id >= 2;
SQL
SELECT * FROM visiteurs WHERE id > 1 AND id < 4;
SQL

COUNT

Il est possible de compter le nombre d'items d'une sélection.
SELECT COUNT(*) FROM visiteurs;
SQL
SELECT COUNT(*) FROM visiteurs WHERE id > 2;
SQL

MAX

La fonction MAX retourne la plus grande valeur de la sélection.
SELECT MAX(id) FROM visiteurs;
SQL

MIN

La fonction MIN retourne la plus petite valeur de la sélection.
SELECT MIN(id) FROM visiteurs;
SQL

SUM

Il est possible d'additionner la valeur des items d'une sélection.
SELECT SUM(id) FROM visiteurs WHERE id > 2;
SQL La somme de (3+4+5) = 12

AVG

AVG ( pour average ) permet de calculer une moyenne sur une selection
SELECT AVG(id) FROM visiteurs;
SQL La moyenne de (1+2+3+4+5) / 5 = 3


UNE QUESTION SUR L'ARTICLE?


CSSW Apprendre à créer son site web CSSW