Partie 2 : Index, jointures et sous-requêtes
Cette partie est au moins aussi indispensable que la première. Vous y apprendrez ce que sont les clés et les index, et surtout la
manipulation de plusieurs tables dans une même requête grâce aux jointures et aux sous-requêtes.
Index
Un index est une structure qui reprend la liste ordonnée des valeurs auxquelles il se rapporte.
Les index sont utilisés pour accélérer les requêtes (notamment les requêtes impliquant plusieurs tables, ou les requêtes de
recherche), et sont indispensables à la création de clés, étrangères et primaires, qui permettent de garantir l'intégrité des données
de la base et dont nous discuterons au chapitre suivant.
Au programme de ce chapitre :
Qu'est-ce qu'un index et comment est-il représenté ?
En quoi un index peut-il accélérer une requête ?
Quels sont les différents types d'index ?
Comment créer (et supprimer) un index ?
Qu'est-ce que la recherche FULLTEXT et comment fonctionne-t-elle ?
Etat actuelle de la base de données
Note : les tables de test ne sont pas reprises
Secret (cliquez pour afficher)
Code : SQL
SET NAMES utf8;
DROP TABLE IF EXISTS Animal;
CREATE TABLE Animal (
id smallint(6) UNSIGNED NOT NULL AUTO_INCREMENT,
espece varchar(40) NOT NULL,
sexe char(1) DEFAULT NULL,
date_naissance datetime NOT NULL,
nom varchar(30) DEFAULT NULL,
commentaires text,
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=61 DEFAULT CHARSET=utf8;
LOCK TABLES Animal WRITE;
INSERT INTO Animal VALUES
(1,'chien','M','2010-04-05 13:43:00','Rox','Mordille
beaucoup'),(2,'chat',NULL,'2010-03-24
02:23:00','Roucky',NULL),(3,'chat','F','2010-09-13
15:02:00','Schtroumpfette',NULL),
(4,'tortue','F','2009-08-03
05:12:00',NULL,NULL),(5,'chat',NULL,'2010-10-03
16:44:00','Choupi','Né sans oreille
gauche'),(6,'tortue','F','2009-06-13 08:17:00','Bobosse','Carapace
bizarre'),
(7,'chien','F','2008-12-06
05:18:00','Caroline',NULL),(8,'chat','M','2008-09-11
15:38:00','Bagherra',NULL),(9,'tortue',NULL,'2010-08-23
05:18:00',NULL,NULL),
(10,'chien','M','2010-07-21
15:41:00','Bobo',NULL),(11,'chien','F','2008-02-20
15:45:00','Canaille',NULL),(12,'chien','F','2009-05-26
08:54:00','Cali',NULL),
(13,'chien','F','2007-04-24
12:54:00','Rouquine',NULL),(14,'chien','F','2009-05-26
08:56:00','Fila',NULL),(15,'chien','F','2008-02-20
Partie 2 : Index, jointures et sous-requêtes
69/414
www.openclassrooms.com
Cette partie est au moins aussi indispensable que la première. Vous y apprendrez ce que sont les clés et les index, et surtout la
manipulation de plusieurs tables dans une même requête grâce aux jointures et aux sous-requêtes.
Index
Un index est une structure qui reprend la liste ordonnée des valeurs auxquelles il se rapporte.
Les index sont utilisés pour accélérer les requêtes (notamment les requêtes impliquant plusieurs tables, ou les requêtes de
recherche), et sont indispensables à la création de clés, étrangères et primaires, qui permettent de garantir l'intégrité des données
de la base et dont nous discuterons au chapitre suivant.
Au programme de ce chapitre :
Qu'est-ce qu'un index et comment est-il représenté ?
En quoi un index peut-il accélérer une requête ?
Quels sont les différents types d'index ?
Comment créer (et supprimer) un index ?
Qu'est-ce que la recherche FULLTEXT et comment fonctionne-t-elle ?
Etat actuelle de la base de données
Note : les tables de test ne sont pas reprises
Secret (cliquez pour afficher)
Code : SQL
SET NAMES utf8;
DROP TABLE IF EXISTS Animal;
CREATE TABLE Animal (
id smallint(6) UNSIGNED NOT NULL AUTO_INCREMENT,
espece varchar(40) NOT NULL,
sexe char(1) DEFAULT NULL,
date_naissance datetime NOT NULL,
nom varchar(30) DEFAULT NULL,
commentaires text,
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=61 DEFAULT CHARSET=utf8;
LOCK TABLES Animal WRITE;
INSERT INTO Animal VALUES
(1,'chien','M','2010-04-05 13:43:00','Rox','Mordille
beaucoup'),(2,'chat',NULL,'2010-03-24
02:23:00','Roucky',NULL),(3,'chat','F','2010-09-13
15:02:00','Schtroumpfette',NULL),
(4,'tortue','F','2009-08-03
05:12:00',NULL,NULL),(5,'chat',NULL,'2010-10-03
16:44:00','Choupi','Né sans oreille
gauche'),(6,'tortue','F','2009-06-13 08:17:00','Bobosse','Carapace
bizarre'),
(7,'chien','F','2008-12-06
05:18:00','Caroline',NULL),(8,'chat','M','2008-09-11
15:38:00','Bagherra',NULL),(9,'tortue',NULL,'2010-08-23
05:18:00',NULL,NULL),
(10,'chien','M','2010-07-21
15:41:00','Bobo',NULL),(11,'chien','F','2008-02-20
15:45:00','Canaille',NULL),(12,'chien','F','2009-05-26
08:54:00','Cali',NULL),
(13,'chien','F','2007-04-24
12:54:00','Rouquine',NULL),(14,'chien','F','2009-05-26
08:56:00','Fila',NULL),(15,'chien','F','2008-02-20
Partie 2 : Index, jointures et sous-requêtes
69/414
www.openclassrooms.com
