instruction SELECT

SELECT “seul”

SELECT 1,2,'texte' ;  -- mysql et sqlserver
SELECT 1,2,'texte' FROM dual;   -- Oracle (FROM est obligatoire)

FROM permet le rajout des Noms des objets du serveur SQL (tables, colonnes(champs))

Les commentaires

-- commentaires
/* commentaires pour les bloques */
# pas conventionnel mais fonctionne sur MYSQL (voir coloration du code par l'éditeur !)

// interdit

synonymes / ALIAS des noms des OBJETS

Utiliser des synonymes (ALIAS) de noms de tables

SELECT marq.libelle AS NomMarque
, tel.prix
, tel.proprietaire_id
FROM TD_marque_tel AS marq
INNER JOIN TD_telephone AS tel
WHERE marq.idMarque = tel.marque_id;

Le mot clé AS n’est pas obligatoire sur MYSQL


ATTENTION à l’ordre de traitement un alias dans le nom des champs sélectionnés ne peut pas être utilisé dans le WHERE contrairement à un ALIAS derrière le nom d’une table

                ordre d’exécution dans le moteur de base de données
SELECT            -- 3        -- PROJECTION   
FROM              -- 1        -- SELECTION   
WHERE             -- 2        -- RESTRICTION : condition sur la SELECTION    
GROUP BY 
HAVING
ORDER BY          -- 4

REMARQUE : (à corriger)

SELECT type_id marque_id , 1.2*prix AS Prix_TTC
FROM TD_telephone AS c;

marque_id est un alias, erreur classique !

NULL

problématique

SELECT * FROM TD_telephone;

SELECT * 
FROM TD_telephone 
WHERE
couleur = 'ROUGE' OR couleur <> 'ROUGE';
SELECT * from table WHERE
NOM_CHAMP = 'valeur' 
OR NOM_CHAMP <> 'valeur'
OR NOM_CHAMP IS NULL;

http://dev.mysql.com/doc/refman/5.7/en/comparison-operators.html#operator_equal-to

concaténer ou faire des calculs avec des valeurs ‘null’

SELECT CONCAT(type_id,' - ',couleur) FROM TD_telephone;

http://www.w3schools.com/sql/sql_isnull.asp

ATTENTION si sur un champ le “NULL” est autorisé, lors de l’exécution d’une requête on peut avoir un résultat différent de celui désiré en cas de valeur NULL.


+---------------+
| votreFonction |
+---------------+
| SP - ROUGE    |
| SP - NC       |
| CL - NOIR     |
| CO - BLANC    |
| IP - NC       |
| CO - BLANC    |
| SP - ROUGE    |
| NV            |
| NV            |
+---------------+