7.11 SELECT

SELECT [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [DISTINCT | DISTINCTROW | ALL]
select_expression,...
[INTO OUTFILE 'Nom_fichier' export_options]
[FROM table_references
[WHERE where_definition]
[GROUP BY Nom_col,...]
[HAVING where_definition]
[ORDER BY {unsigned_integer | Nom_col | formula} [ASC | DESC] ,...]
[LIMIT [offset,] rows]
[PROCEDURE procedure_name] ]

SELECT est utilisé pour obtenir des lignes à partir d'une ou plusieurs tables. select_expression indique les colonnes à lire. SELECT peut aussi être utilisé pour exécuter des calculs sans rapport avec aucune table. Par exemple :@:

mysql> SELECT 1 + 1;
-> 2

Toutes les options doivent impérativement être dans l'ordre indiqué ci dessus. Par exemple, une clause HAVING doit être après GROUP BY et avant la clause ORDER BY .

mysql> select concat(last_name,', ',first_name) AS full_name
from maTable ORDER BY full_name;
mysql> select t1.name, t2.salary from employee AS t1, info AS t2
where t1.name = t2.name;
mysql> select t1.name, t2.salary from employee t1, info t2
where t1.name = t2.name;
mysql> select college, region, seed from tournament
ORDER BY region, seed;
mysql> select college, region AS r, seed AS s from tournament
ORDER BY r, s;
mysql> select college, region, seed from tournament
ORDER BY 2, 3;

Pour trier dans l'ordre descendant, il faut ajouter le mot clé DESC après le nom de la colonne, dans la clause ORDER BY . Par défaut, l'ordre ascendant est utilisé, et peut être explicitement demandé en utilisant le mot clé ASC

mysql> select Nom_col from Nom_table HAVING Nom_col > 0;

A la place, il vaut mieux écrire :@:

mysql> select Nom_col from Nom_table WHERE Nom_col > 0;

A partir de MySQL 3.22.5, on peut écrire des requêtes telles que:@:

mysql> select user,max(salary) from users
group by user HAVING max(salary)>10;

Dans les versions anciennes de MySQL , il était possible d'écrire :@:

mysql> select user,max(salary) AS sum from users
group by user HAVING sum>10;
mysql> select clean_docs_mysql clean_docs-php debut.php fin.php index.php menu.php mysql php from table LIMIT 5,10; # retourne les lignes 6-15

Si un seul argument est fourni à LIMIT, il indique le nombre de ligne à retourner.

mysql> select clean_docs_mysql clean_docs-php debut.php fin.php index.php menu.php mysql php from table LIMIT 5; # retourne les 5 premiere lignes

LIMIT n et LIMIT 0,n sont équivalents.

De plus, le caractère ASCII 0 est converti en ESCAPED BY suivi de 0 (ASCII 48). La raison de l'ajout du caractère d'échappement après les caractères FIELDS TERMINATED BY, ESCAPED BY ou LINES TERMINATED BY ,est que cela permet la relecture du fichier. Le caractère ASCII 0 est échappé pour le rendre plus lisible par les éditeurs. Et comme le fichier résultant n'a pas à se conformer à la norme SQL, ce sont les seuls caractères à être échappés.