Le SQL selon MySQL
MySQL supporte sa propre « vision »
du SQL. Le meilleur point de départ pour utiliser efficacement
le SQL selon MySQL est son manuel :
http://www.mysql.com/doc/fr/Reference.html
Manipulation de données
:
La structure des données :
- CREATE, ALTER, DROP
-
- On peut modifier la structure des données
avec ces mots-clés :
-
Create database XX
- (il n'y a pas de Alter pour les
base de données)
-
Drop Database XX
-
- Supprime la base de données XX.
Attention, on supprime, pas de retour arrière!
-
- Même chose pour les tables :
-
Create table XX ( [définition des champs]);
-
Alter table XX
-
- Ces fonctions comprennent beaucoup
d'options, particulièrement les ALTER. Pour voir les
options disponibles, consultez le manuel :
-
- http://www.mysql.com/doc/fr/Data_Definition.html
-
Type de données
- Lors de la création (et la
modification) de tables, il faut choisir le type de données
appropriés. Pour voir les types de données de MySQL,
voir le manuel :
-
- http://www.mysql.com/doc/fr/Column_types.html
-
- En gros, MySQL offre des types de données
semblables aux autres SGBDR :
-
- Type numériques : INT, FLOAT,
DECIMAL
-
Type de chaînes : CHAR, VARCHAR, TEXT,
- Type de date et d'heures : DATE, TIME,
DATETIME, TIMESTAMP
-
Type pour « choix » :
ENUM, SET
-
Ajouter des données - INSERT
INSERT INTO nomdetable (liste,de,champs)
VALUES ("valeurs", "pour", "leschamps");
-
- La liste de champs est optionnelle si on
utilise tous les champs dans la liste de VALUES :
-
INSERT INTO table VALUES (2, "Benoit", "Caron");
-
- On peut également insérer
des données qu'on recueille dans une autre table :
-
INSERT INTO table (id, nom, prenom) SELECT id, nom, prenom FROM autretable WHERE nom LIKE 'c%';
-
Modifier les données - UPDATE
- Mise à jour de données dans
la table. Attention de bien spécifier quels champs on veut
mettre à jour, sinon on modifie tous les champs de la
tables!
-
- Cette requête va mettre la valeur
« nouvellevaleur » dans le champs
« nomdetable » de tous les
enregistrement de la table :
UPDATE nomdetable SET champ1 = 'nouvellevaleur' ;
-
- Évidemment, on veut généralement
mettre à jour un seul enregistrement :
-
UPDATE nomdetable SET champ1='unevaleur', champ2 = 'autrechose' WHERE id = 12;
-
Supprimer des données - DELETE
- Pour supprimer les enregistrements, on
suit la même logique que UPDATE :
-
- Suppression de tous les
enregistrements :
-
DELETE FROM nomdetable;
-
- -- Suppression de l'enregistrement qui a
le no. id 12
DELETE FROM nomdetable WHERE id = 12;
-
- -- Suppression de tous les « mathieu »
de la table :
DELETE FROM etudiants WHERE prenom = 'Mathieu';
-
Rechercher des données - SELECT
- Les SELECT sont le « coeur »
du travail avec une base de données relationnelle. C'est avec
les SELECT qu'on interroge la base de données et son contenu.
-
- Entrées à consulter dans le
manuel sur les SELECT :
-
3.3.4 - Récupérer des
informations à partir d'une table
http://www.mysql.com/doc/fr/Retrieving_data.html
Donne un survol de l'utilisation des SELECT
6.4.1 – Syntaxe de SELECT
http://www.mysql.com/doc/fr/SELECT.html
La référence sur le SELECT :
tous les détails!
Fonctions intégrés
- MySQL offre un ensemble de fonctions
intégrés pour transformer, calculer ou manipuler les
données. La section pertinente du manuel est :
-
- 6.3 Fonctions à utiliser dans les
clauses
SELECT
et WHERE-
http://www.mysql.com/doc/fr/Functions.html
-
- Vous référer à cette
documentation.
-
Joindre des tables : JOIN,
LEFT OUTER JOIN et cie.
- Join direct :
-
SELECT c.titre AS album, g.nom as groupe
FROM cd AS c, groupe AS g
WHERE
c.cd_id = g.cd;
-
- Retourne tous les titres d'albums et le
nom du groupe qui l'a produit.
-
- Un LEFT OUTER JOIN permet de retourner les
enregistrements oUU une partie de l'information est manquante :
-
SELECT c.titre AS album, g.nom as groupe
FROM cd
LEFT JOIN groupe AS ON cd.cd_id = groupe.cd;
-
Assembler plusieures
requêtes : UNION
- http://www.mysql.com/doc/fr/UNION.html
-
- Permet de « coller »
dans le résultat les enregistrements obtenus de 2 requêtes
différentes :
-
- MySQL 4 seulement. Voir la documentation
pour des exemples.