L3-Informatique Paris 8
Base de données
Rim Chaabane rchaab[email protected]paris8.fr - Séance 6 -
1
Introduction au langage SQL
1. Description
SQL est un acronyme pour “Structured Query Language” qui a été conçu par IBM, et a
succédé au langage SEQUEL. C’est maintenant le langage le plus utilisé dans les SGBD
commerciaux. Le langage SQL est un langage de définition (LDD) et de manipulation
(LMD) de bases de données relationnelles, développé par IBM dans les années soixante.
Il est a évolué de manière à pouvoir être utilisé en mode interactif (comme un langage
de script), en mode procédural (on crée des programmes effectuant plusieurs taches
dans un même traitement. Ex : un script Shell), ou intégré à un autre langage (librairies
SQL pour python, C, Java,…). SQL est un langage déclaratif { savoir qu’il permet {
l’utilisateur de spécifier le résultat qu’il attend, c’est au SGBD de trouver, ensuite, le
moyen d’aboutir { ce résultat.
L’interpréteur SQL existe en de nombreuses versions, du fait que chaque éditeur de
SGBD-R adapte la norme SQL à son propre système (mySQL, pSQL (de PostgreSQL),
PL\SQL (d’Oracle), etc...).
SQL permet de :
définir les données (CREATE, ALTER, DROP)
interroger la base et formuler des requêtes (SELECT)
manipuler les données (INSERT, UPDATE, DELETE)
contrôler l’accès aux données (GRANT, REVOKE)
SQL ne distingue pas majuscules ou minuscules et n’accepte pas d’accents.
Dans le cadre de ce cours nous manipulons le langage MySQL
1
.
2. Se connecter à mySQL
Pour vous connecter { mySQL, la première condition est qu’un client/serveur mySQL
soit installé sur votre machine. A partir de là deux possibilités s’offrent { vous :
- Accéder à une base existante : une base nécessite une autorisation d’accès avec
un login et un mot de passe.
La commande dans ce cas est :
shell> mysql -h host -u user -p
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 459 to server version: 3.22.20a-log
Type 'help' for help.
1
http://dev.mysql.com/doc/refman/5.0/fr/
L3-Informatique Paris 8
Base de données
Rim Chaabane rchaab[email protected]paris8.fr - Séance 6 -
2
mysql>
- Accéder à mySQL de manière anonyme au serveur sans avoir à une quelconque
base en particulier.
shell> mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 29 to server version: XXX
mysql>
3. Utiliser mySQL
Si vous êtes connectés à une base, dans ce cas vous avez accès aux informations
contenues dans cette dernière comme les tables qui y sont définies. Vous pouvez donc
faire des requêtes d’interrogation de ces tables ou de modification.
Sinon, vous êtes dans un environnement hors base de données. Vous ne pouvez créer, ou
manipuler les tables qu’en environnement base de données. Pour cela il vous faut en
créer une.
Vous pouvez cependant utiliser les commandes d’environnement ou requêtes. Toute
requête se termine par un ″;″. Si le ; est omis, l’interprète mySQL ne va exécuter votre
requête que lorsque vous aurez saisi ce caractère. Voici quelques requêtes et
commandes non liées à une base de données :
Commande pour connaitre la version de votre client mySQL et la date du jour.
mysql> SELECT VERSION(), CURRENT_DATE;
+--------------+--------------+
| VERSION() | CURRENT_DATE |
+--------------+--------------+
| 3.22.20a-log | 1999-03-19 |
+--------------+--------------+
1 row in set (0.01 sec)
mysql>
Le résultat de cette requête renvoie une table avec en première ligne le nom de
l’information demandée, et les lignes suivantes contiennent les informations
correspondantes. Ici une seule version de mySQL et une seule date du jour.
La dernière ligne affichée (1 row in set(0.01 sec)) correspond au nombre de résultats
trouvés (ici 1) et le temps pour exécuter cette requête. Ce temps est imprécis, car il
indique le temps calculé par le logiciel et ne prend pas en compte le temps processeur ou
matériel.
Ou une opération de calcul mathématique :
mysql> SELECT SIN(PI()/4), (4+1)*5;
+-------------+---------+
| SIN(PI()/4) | (4+1)*5 |
L3-Informatique Paris 8
Base de données
Rim Chaabane rchaab[email protected]paris8.fr - Séance 6 -
3
+-------------+---------+
| 0.707107 | 25 |
+-------------+---------+
Plusieurs requêtes sur une même ligne :
mysql> SELECT VERSION(); SELECT NOW();
+--------------+
| VERSION() |
+--------------+
| 3.22.20a-log |
+--------------+
+---------------------+
| NOW() |
+---------------------+
| 1999-03-19 00:15:33 |
+---------------------+
Une seule requête sur plusieurs lignes :
mysql> SELECT
-> USER()
-> ,
-> CURRENT_DATE;
+--------------------+--------------+
| USER() | CURRENT_DATE |
+--------------------+--------------+
| joesmith@localhost | 1999-03-18 |
+--------------------+--------------+
Pour quitter l’environnement MySQL, il faut saisir la commande :
mysql> quit
Bye
Attention : pas de ; pour la commande quit.
Pour annuler une requête pendant sa saisie, il faut taper la commande \c :
mysql> SELECT
-> USER()
-> \c
mysql>
L’erreur la plus fréquente est d’oublier le ; en fin de requête ou de fermer une chaine de
caractères. Voici les différentes invites mysql pour ces cas d’erreur :
L3-Informatique Paris 8
Base de données
Rim Chaabane rchaab[email protected]paris8.fr - Séance 6 -
4
Invite
Signification
mysql>
Prêt pour une nouvelle commande.
->
En attente de la ou des lignes terminant la commande.
'>
En attente de la prochaine ligne collectant une chaîne
commencée par un guillemet simple (‘'’).
">
En attente de la prochaine ligne collectant une chaîne
commencée par un guillemet double (‘"’).
`>
En attente de la prochaine ligne collectant une chaîne
commencée par un guillemet oblique (‘`’).
Il suffit alors de saisir le caractère omis, pour que mysql exécute la requête.
Voici quelques méta-commandes utiles :
Méta-commandes
Description
\?
Affiche toutes les méta-commandes
\h
Idem
\h <commande>
Affiche le man d’une commande
\q
Quit
\W
Affiche les warnings
\w
Désactive l’affichage des warnings
\ ! <shell commande>
Exécute une commande shell
\u <nom-de-bdd>
Utilise une base de données
4. Voir et créer une base de données
Avant de pouvoir manipuler des données stockées dans tes tables, il nous faut créer une
base de données en déterminant les droits d’accès { cette base. Il faut ensuite accéder {
la base nouvellement créée, pour y définir des tables. On insèrera alors dans ces tables
des données. Une fois ces données insérées, nous pourront les manipuler.
L’intérêt d’une base de données est qu’elle peut être définie sur un serveur, et ainsi être
partagée par plusieurs utilisateurs (clients). Chaque utilisateur aura un accès soit total à
la base, soit un accès limité. Comme pour un compte unix, les utilisateurs ont des droits
limités alors que l’administrateur { des droits absolus lui permettant entre autre de
supprimer une base.
4.1. Voir le contenu d’une base de données
Pour voir les tables déjà existantes dans votre environnement vous aurez besoin
de la commande suivante :
mysql> SHOW DATABASES;
+-----------------------+
| Database |
+-----------------------+
L3-Informatique Paris 8
Base de données
Rim Chaabane rchaab[email protected]paris8.fr - Séance 6 -
5
| information_schema |
+-----------------------+
La base trouvée ici est information_schema, elle peut être nommée différemment
(ex : mysql). Cette base contient les accès et les privilèges.
Pour accéder à une base on fait :
mysql> USE information_schema
Database changed
Attention ; la commande USE, tout comme QUIT s’utilise sans ; à la fin.
Pour voir l’ensemble des tables de cette base, il faut faire :
mysql> SHOW TABLES;
+---------------------------------------+
| Tables_in_information_schema |
+---------------------------------------+
| CHARACTER_SETS |
| |
+---------------------------------------+
/!\Attention/!\ Contrairement aux noms des tables et aux noms des commandes SQL, le
nom des bases de données est sensible à la casse.
Pour changer de base de données, il suffit de faire de nouveau appel à USE nom_bdd.
4.2. Créer une base de données
Pour créer votre base de données il faut faire appel à la commande CREATE
DATABASE (ou en minuscules) comme suit :
mysql> CREATE DATABASE test;
Nous créons ici la base dont le nom est ‘test’.
Une fois créée, il faut y accéder, par la commande USE test.
Puis nous créons les tables qu’elle va contenir :
mysql> CREATE TABLE personne (nom VARCHAR(20), prenom VARCHAR(20),
-> sexe CHAR(1), naissance DATE);
Nom, prenom sexe, et naissance sont les attributs du type-entité PERSONNE dans le
modèle E/A. Mais dans le langage SQL ce sont les colonnes de la table personne.
Lorsque l’on définit une table de données, chaque colonne doit avoir un type qui permet
de représenter correctement les données qui y seront stockées. Par exemple la colonne
nom a pour type VARCHAR(20) ce qui correspond à une chaine de caractères de
longueur 20. Les différentes longueurs possibles pour un type VARCHAR sont de 1 à 255
1 / 9 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !