informatique:sql
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| informatique:sql [2011/11/01 10:08] – benoit | informatique:sql [2015/11/11 06:46] (Version actuelle) – benoit | ||
|---|---|---|---|
| Ligne 58: | Ligne 58: | ||
| Pour effacer un l' | Pour effacer un l' | ||
| ALTER TABLE users DROP INDEX indexuser; | ALTER TABLE users DROP INDEX indexuser; | ||
| + | |||
| + | Pour changer l' | ||
| + | ALTER TABLE `ma_table` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; | ||
| === Gestion des colonnes d'une table === | === Gestion des colonnes d'une table === | ||
| Ligne 240: | Ligne 243: | ||
| ==== Jointures ==== | ==== Jointures ==== | ||
| === Méthode WHERE === | === Méthode WHERE === | ||
| + | |||
| Pour joindre deux les champs de deux table avec mise en commun des **id** | Pour joindre deux les champs de deux table avec mise en commun des **id** | ||
| SELECT articles.nom AS nom_article, | SELECT articles.nom AS nom_article, | ||
| FROM proprietaires, | FROM proprietaires, | ||
| - | WHERE articles.id_possesseur | + | WHERE articles.id_proprietaire |
| Il est possible de créer de alias sur le nom de tables : | Il est possible de créer de alias sur le nom de tables : | ||
| SELECT a.nom AS nom_article, | SELECT a.nom AS nom_article, | ||
| FROM proprietaires AS p, articles AS a | FROM proprietaires AS p, articles AS a | ||
| - | WHERE a.id_possesseur | + | WHERE a.id_proprietaire |
| On peut également se passer du AS : | On peut également se passer du AS : | ||
| SELECT a.nom nom_article, | SELECT a.nom nom_article, | ||
| FROM proprietaires p, articles a | FROM proprietaires p, articles a | ||
| - | WHERE a.id_possesseur | + | WHERE a.id_proprietaire |
| === Méthode JOIN (recommandée) === | === Méthode JOIN (recommandée) === | ||
| + | ** Jointures internes** | ||
| + | |||
| Pour joindre deux les champs de deux table avec mise en commun des **id** | Pour joindre deux les champs de deux table avec mise en commun des **id** | ||
| - | SELECT articles.nom AS nom_jeu, proprietaires.prenom prenom_proprietaire | + | SELECT articles.nom AS nom_article, proprietaires.prenom prenom_proprietaire |
| - | FROM proprietaires | + | FROM proprietaires INNER JOIN articles |
| - | | + | |
| Avec l' | Avec l' | ||
| - | SELECT a.nom nom_jeu, p.prenom prenom_proprietaire | + | SELECT a.nom nom_article, p.prenom prenom_proprietaire |
| - | FROM proprietaires p | + | FROM proprietaires p INNER JOIN articles a |
| - | INNER JOIN articles a ON a.id_possesseur | + | |
| + | |||
| + | **Jointure de 3 tables** | ||
| + | |||
| + | SELECT | ||
| + | profiles.*, profiles_times.*, | ||
| + | FROM profiles | ||
| + | | ||
| + | INNER JOIN times ON profiles_times.time_id = times.id | ||
| + | |||
| + | **Jointure de 4 tables** :!: Attention les Alias AS ont toutes leur importance : | ||
| + | SELECT | ||
| + | pr.*, p.*, u.*, lu.*, rh.* | ||
| + | FROM resolved_hosts AS rh | ||
| + | INNER JOIN profiles_routing AS pr ON rh.fqdn = pr.address | ||
| + | INNER JOIN profiles AS p ON pr.profile_id = p.id | ||
| + | INNER JOIN users AS u ON p.id = u.profile_id | ||
| + | INNER JOIN logged_users AS lu ON u.username = lu.user | ||
| + | WHERE rh.timestamp > 1447090110 | ||
| + | |||
| + | **Jointures externes** | ||
| + | |||
| + | Le **LEFT JOIN** demande à récupérer tout le contenu de la table de gauche (donc tous les propriétaires) même s'ils n'ont pas d' | ||
| + | SELECT | ||
| + | FROM proprietaires p LEFT JOIN articles a | ||
| + | | ||
| + | |||
| + | Le **RIGHT JOIN** demande à récupérer tout le contenu de la table de droite (donc tous les articles) même s'ils n'ont pas d' | ||
| + | SELECT | ||
| + | FROM proprietaires p RIGHT JOIN articles a | ||
| + | ON j.ID_proprietaire | ||
| ==== Effacer des données ==== | ==== Effacer des données ==== | ||
informatique/sql.1320142123.txt.gz · Dernière modification : (modification externe)
