Lecture de MySQL Guide Officiel
Publi� le 27 novembre 2006

Chapitre 5 - L'instruction SELECT

Page 165, c'est la partie sur l'instruction SELECT qui est très importante pour l'examen. Une instruction SELECT peut être constituée des clauses (dans cet ordre) :

-  FROM
-  WHERE
-  GROUP BY
-  ORDER BY
-  LIMIT

La clause ORDER BY accepte les numéros de colonnes comme critères de tri, comme dans la norme SQL92 bien que dans SQL99 cette fonctionnalité n'est plus valable. Pour écrire des requêtes portables il faut utiliser les noms de colonnes.

Les fonctions MAX et MIN ne tiennent pas compte de la valeur NULL.

La fonction COUNT avec le mot clé DISTINCT ignore les valeurs NULL.

ex : select COUNT(DISTINCT col1) from table1

Ce chapitre termine par 69 questions.

Chapitre 6 - Les instructions de mise à jour

La partie suivante correspond aux instructions de mise à jour, c à d :

-  INSERT
-  REPLACE
-  UPDATE
-  DELETE
-  TRUNCATE

REPLACE contrairement à INSERT ne génère pas d'erreur s'il trouve des doublons. Ils les supprime avant d'insérer les nouveaux enregistrements.

On peut insérer plusieurs enregistrements à la suite.

ex : INSERT INTO table1 VALUES (1), (2), (3)

Les développeurs de MySQL AB conseillent de nommer les colonnes dans un INSERT parce que la structure table peut être modifiée par la suite.

UPDATE et DELETE acceptent plusieurs tables. On peut ainsi :

-  maj/sup des enregistrements d'un table en fonction de ceux d'une autre
-  maj/sup plusieurs tables en même temps

Chapitre 7 - Basic SQL

Ce chapitre aborde les expressions telles que IN ou LIKE. 10% des questions de l'examen portent sur ce sujet qu'il faudra connaître. Il faudra également se reporter à l'annexe A "Référence rapide" pour avoir la liste des fonctions.

Il faut savoir que les chaînes ne sont pas sensibles à la casse (ue = ü). Page 228, on étudie le comportement des fonctions d'aggrégation avec les valeurs NULL. Seul COUNT(*) prend en compte les valeurs NULL.

Les commentaires sont gérés de manière spécifique par MySQL. Le caractère #ou le double tiret (—) suivi d'un espace obligatoire marquent le début d'un commentaire. Un commentaire peut être compris entre /* et */. Une syntaxe spéciale permet de créer des requêtes portable dans le sens où une clause valable seulement avec MySQL est ignorée des autres SGBD. On obtient cela en entourant la clause de /* ! et */.

ex : CREATE TABLE t (i INT) /* ! TYPE = HEAP */ ;

Il est à noter que l'instruction UPDATE n'est exécutée que s'il y a des lignes à mettre à jour (avec une valeur différente). Un UPDATE peut contenir une clause ORDER BY. Dans ce cas, la mise à jour se fait dans cet ordre. L'utilisation de DELETE * ou TRUNCATE ont pour effet de réinitialiser la séquence des clés.

Chapitre 8 - Les jointures

On arrive à un chapitre très important pour les SGBD : les jointures. Si vous connaissez d'autres SGBD, vous survolerez cette partie comme moi. Le principe des jointures est le même. Il est à noter que MySQL offre 2 façons de faire des jointures. La 1ère est la façon que je qualifierai de laxiste, c à d, qui engage le moins le cerveau.

ex : SELECT a,b FROM t, u WHERE t.id = u.id

L'inconvénient de cette forme est que l'on ne distingue pas la jointure d'une banale comparaison.

La deuxième syntaxe est beaucoup plus claire. Elle est décrite dans SQL ANSI 92.

ex : SELECT a,b FROM t INNER JOIN u USING (id)

J'abouti à la page 327.

Pages 1 | 2 | 3 | 4 | 5