Introduction à SQL

Transcription

Introduction à SQL
Chapitre 4
Introduction à
SQL
Au fond, est-ce que ranger ça ne revient pas un peu
à foutre le bordel dans son désordre ?
Philippe Geluck
4.1
Installation de MySQL
Pour télécharger
MySQL avec l'installateur (MSI
Installer),
vous pouvez vous rendre sur
le site suivant :
http://dev.mysql.com/downloads/mysql/#downloads.
Plutôt que de choisir la toute dernière version 5.6.10 (176 Mo tout de même), nous nous
contenterons de la version 5.5.30 (31 Mo). Vériez que la version sélectionnée est bien Microsoft
Windows et cliquez sur Download. Vous allez être redirigé vers une page vous proposant de
créer un compte d'utilisateur ; descendez en bas de la page et cliquez sur No
start my download.
thanks, just
Exécutez le chier téléchargé ; l'installateur démarre et vous guide lors de l'installation. Lors-
qu'il vous demande de choisir entre trois types d'installation, choisissez Typical. Cela installera
tout ce dont nous allons avoir besoin.
39
40
CHAPITRE 4.
INTRODUCTION À
SQL
Cliquez sur next, l'installation se lance. Une fois qu'elle est terminée, cliquez sur Terminer
après vous être assurés que la case lancer
l'outil de configuration MySQL
est cochée.
Dans cet outil de conguration, choisissez la conguration standard et, à l'étape suivante,
cochez l'option Include
Bin Directory in Windows PATH.
On vous propose alors de dénir un nouveau mot de passe pour l'utilisateur root (root
signie racine, l'utilisateur
root
dispose de tous les privilèges d'administration). Choisissez un
mot de passe et conrmez-le.
ATTENTION : assurez-vous de ne pas oublier ce mot de passe !
Ne cochez aucune autre option à cette étape. Cliquez ensuite sur Execute pour lancer la
conguration.
4.2
MySQL est maintenant installé et prêt à être utilisé !
Organisation d'une base de données
Généralement, une base de données s'organise de la manière suivante :
BASE DE DONNEES/DATABASE
TABLE(S)/TABLE(S)
CHAMPS/FIELD(S)
VALEUR(S)/VALUE(S)
Les éléments d'une base de données sont rangés en tables, qui elles-mêmes contiennent des
champs qui peuvent avoir plusieurs valeurs. Par exemple, on pourrait imaginer une base de
données des Élèves-ingénieurs contenant la table des Grandes Écoles ; chaque école aurait
autant de champs que de promotions et, à l'intérieur de chaque champ, les valeurs représenteraient
les noms, prénoms et adresses des élèves.
4.3.
41
CONNEXION À MYSQL
4.3
Connexion à MySQL
Pour se connecter, lancer l'invite de commande (Menu démarrer
→ cmd →
Entrer ).
Les champs à renseigner sont :
le client (ici le client est MySQL)
l'hôte (la base de données est accessible directement depuis votre machine :
l'utilisateur (choisissez l'utilisateur
root
localhost)
an de disposer de tous les droits)
le mot de passe (password de l'utilisateur
root
conguré auparavant)
Ainsi, une connexion complète peut s'écrire de la manière suivante :
mysql -h localhost -u root -ppassword
ATTENTION : ne pas mettre d'espace entre la directive -p et votre mot de passe.
MySQL 5.5 Command Line Client qui a été créé dans la liste
déconnecter, il sut de rentrer la directive quit ou \q ou
Vous pouvez également utiliser
de vos programmes. Pour vous
encore
exit
dans votre invite de commande.
MySQL
Avant de voir les principales directives de
données
isen,
que nous allons appliquer à la base de
nous allons créer un utilisateur secondaire, ayant des droits limités, an d'éviter
que vous ne supprimiez des tables préalablement existantes.
Pour ce faire, connectez-vous avec l'utilisateur root, comme indiqué précédemment, et entrez ensuite les directives :
GRANT ALL PRIVILEGES ON isen.* TO 'user'@'localhost' IDENTIFIED BY 'motdepasse';
GRANT ALL PRIVILEGES ON isen.* : alloue tous les droits sur la base de données isen.
TO 'user'@'localhost' : crée un nouvel utilisateur pouvant se connecter à la base de données
via l'adresse locale (remplacer user par n'importe quel nom).
IDENTIFIED BY 'motdepasse' : crée le mot de passe du nouvel utilisateur.
quit , puis
mysql -h localhost -u user -pmotdepasse
Ensuite déconnectez-vous (pour changer d'utilisateur) en utilisant la commande
reconnectez-vous avec votre nouvel utilisateur :
4.4
Syntaxe SQL et premières commandes
À partir de l'invite de commandes, vous pouvez réaliser toutes les opérations sur votre base
de données. Il est recommandé, mais pas obligatoire, d'écrire les commandes en majuscules. Les
commandes se terminent par
;
; pour annuler une ligne en cours de saisie, tapez
On peut acher le statut du serveur à l'aide de :
compte utilisateur à l'aide de
SHOW STATUS;
\c .
et on peut vérier son
SELECT USER();
Création et sélection d'une base de données
Les commandes élémentaires permettant de créer cette base de données sont :
création d'une nouvelle base de données
sélection de la base
isen
ou bien connexion à
isen
(sans la sélectionner) :
(ici le ; est facultatif ) :
USE isen;
MySQL et sélection directe de la base :
CREATE DATABASE isen;
42
CHAPITRE 4.
INTRODUCTION À
SQL
mysql -h localhost -u user -pmotdepasse isen
liste des bases de données : SHOW DATABASES;
suppression d'une base de données : DROP DATABASE isen;
Création, insertion et modication d'une table
Considérons, par exemple, la table
cir2
constituée par les élèves ci-dessous :
Prénom
Nom
Age
E-mail
Tim
AURIOL
21
[email protected]
Amir
BELGHIT
21
[email protected]
Benjamin
BERTHEVAS
19
[email protected]
Kévin
CERDAN
20
[email protected]
Corentin
DELCOURT
18
[email protected]
Alexis
HELLOUIN DE MENIBUS
22
[email protected]
Khaled
JAFFAL
20
[email protected]
Etienne
JEZEQUEL
19
[email protected]
Maxime
LEBEURIER
21
[email protected]
Mickaël
L'HARIDON
19
[email protected]
Guy-Yann
MORVAN
20
[email protected]
Yannis
OZAROWSKI
22
[email protected]
Hugo
ROIGNANT
21
[email protected]
Mathieu
SINIC
19
[email protected]
Mathieu
THOULOUSE
21
[email protected]
Romain
VAUDOUR
20
[email protected]
Pierre
ZEMB
21
[email protected]
La table
cir2
Les commandes élémentaires permettant de créer cette table sont :
cir2 :
CREATE TABLE cir2 (Prenom VARCHAR(30), Nom VARCHAR(30), Age INT(3),
création d'une nouvelle table
Email VARCHAR(30));
SHOW TABLES;
ALTER TABLE cir2 ADD Sexe CHAR;
retrait d'un champ : ALTER TABLE cir2 DROP Sexe;
modication du nom d'un champ : ALTER TABLE cir2 CHANGE Email Courrier VARCHAR(30);
achage de la structure de la table : DESCRIBLE cir2;
achage des tables de la base courante :
ajout d'un champ :
chargement d'un chier directement dans une table :
listecir2.txt contenant tous les élèves au format
"Tim" Tab "Auriol" Tab 21 Tab "[email protected]" \r\n
on peut le charger dans la table cir2 avec :
LOAD DATA LOCAL INFILE '/path/listecir2.txt'INTO TABLE cir2
si l'on dispose d'un chier
LINES TERMINATED BY '\r\n';
- une valeur nulle (NULL) s'écrit :
\N
:
dans le chier.
- en cas d'erreur dans le chier, on peut le corriger, eacer la table (sans la supprimer) :
DELETE FROM cir2;
et la recharger.
4.4.
43
SYNTAXE SQL ET PREMIÈRES COMMANDES
ajout d'une valeur (i.e. une ligne) :
INSERT INTO cir2 VALUES ("François", "KANY", 42, "[email protected]");
UPDATE cir2 SET Age = 43 WHERE Nom = "KANY";
suppression d'une valeur : DELETE FROM cir2 WHERE Nom="KANY";
achage de toute la table : SELECT * FROM cir2; (* permet de pointer sur toutes les entrées).
suppression de la table : DROP TABLE cir2;
correction d'une valeur :
Recherche dans une base de données
Les commandes élémentaires permettant de réaliser ces opérations sont :
sélection d'une ligne :
SELECT * FROM cir2 WHERE Nom = "Auriol";
SELECT * FROM cir2 WHERE Age = 21;
sélection de plusieurs lignes :
sélection de lignes suivant plusieurs critères :
SELECT * FROM cir2 WHERE Age = 21 AND Prenom = "Mathieu";
les mots clés AND et OR permettent d'exécuter plusieurs requêtes en une seule commande.
( AND est prioritaire sur OR si l'on n'utilise pas de parenthèses pour regrouper les opérateurs).
sélection d'une colonne : SELECT Nom FROM cir2;
sélection de plusieurs colonnes : SELECT Nom, Prenom FROM cir2;
sélection d'une colonne en évitant les doublons :
SELECT DISTINCT Prenom FROM cir2;
(Mathieu n'apparaît qu'une fois).
sélection d'une colonne croisée avec un critère sur les lignes :
SELECT Prenom FROM cir2 WHERE Age=21;
tri des lignes par ordre croissant : SELECT Nom FROM cir2 ORDER BY Age;
(ou
BY Age DESC;
pour un tri décroissant).
sélection suivant un modèle :
SELECT * FROM cir2 WHERE Nom LIKE "A%";
"a") ; LIKE "%A"; (qui nissent par "A" ou
(tous les noms qui commencent par "A" ou
"a") ;
LIKE "%A%";
(qui contiennent "A" ou
"a").
SELECT * FROM cir2 WHERE Nom REGEXP "^A"; (tous les noms qui commencent par "A" ou
"a") ; REGEXP "A$"; (qui nissent par "A" ou "a") ; REGEXP "^.A"; (dont la deuxième lettre
est "A" ou "a") ; REGEXP BINARY "^a"; (dont la première lettre est exactement "a").
comptage du nombre de lignes : SELECT COUNT(*) FROM cir2;
Concept de clé primaire
PRIMARY KEY
: attribue un identiant
id
unique à un élément d'une base de données ; ce
qui permet de diérencier deux entrées qui auraient exactement les mêmes attributs. Cet identiant s'appelle la clé primaire. On peut l'attribuer manuellement ou automatiquement à l'aide
de
id INT NOT NULL AUTO_INCREMENT,
Voici le code pour la table
cir2.
CREATE TABLE cir2 (id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id),
Prenom VARCHAR(30), Nom VARCHAR(30), Age INT(3), Email VARCHAR(30));
44
CHAPITRE 4.
INTRODUCTION À
SQL
On doit alors entrer :
INSERT INTO cir2 VALUES (1,"Tim", "Auriol", 21, "[email protected]");
ou bien :
INSERT INTO cir2 VALUES (NULL,"Tim", "Auriol", 21, "[email protected]");
Concept de clé étrangère
Une clé étrangère sert à créer des liens entre diérentes tables. Soient A et B deux tables
indexées par leurs clés primaires respectivement a et b. b est une clé étrangère pour A (et
réciproquement), on l'indique par le mot clé
REFERENCES .
Par exemple, créons la table des TD
d'informatique de ce livre. Pour lier cette table à leurs auteurs, il faut écrire :
CREATE TABLE tdinfo (
id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id),
Intitule VARCHAR(255), Langage ENUM ("Mathematica","Python"),
Programmeur INT NOT NULL REFERENCES cir2(id));
INSERT
SELECT
INSERT
INSERT
INTO cir2 VALUES (NULL,"Khaled", "JAFFAL",20, "[email protected]");
@last:=LAST_INSERT_ID();
INTO tdinfo VALUES (NULL,"Sudoku","Python",@last),
INTO tdinfo VALUES (NULL,"pH","Python",@last);
INSERT INTO cir2 VALUES (NULL,"Corentin", "DELCOURT", 18,
"[email protected]");
SELECT @last:=LAST_INSERT_ID();
INSERT INTO tdinfo VALUES (NULL,"RSA", "Python",@last),
INSERT INTO tdinfo VALUES (NULL,"Transformee de Fourier","Python",@last);
Ainsi,
SELECT * FROM tdinfo;
permet de visualiser les intitulés et les langages avec les
identiants des programmeurs tels qu'ils apparaissent dans la table
cir2.

Documents pareils