Vous êtes sur la page 1sur 29

INTRODUCTION

 Une base de données est un ensemble d'informations structurées.


 Un SGBDR (Système de Gestion de Bases de Données Relationnel) est un logiciel
qui permet de :

- stocker,

- consulter,

- modifier,

- supprimer

les données de la base de données.


Un SGBDR stocke les informations dans des tables.

Définitions
 SQL (Strutured Query Language) :
- est le langage utilisé pour accéder aux données d'une base de données.
- est normalisé. C'est un standard adopté par l'ANSI (American National Standards Institute).
ANSI SQL89

- est un langage ensembliste (non procédural)

- est un langage « universel » utilisé par :

* les administrateurs

* les développeurs

* les utilisateurs

pour :
administrer et contrôler

définir et développer

 manipuler
Les commandes
Commandes de manipulation des données :

- SELECT : interrogation

- INSERT : insertion

- UPDATE : mise à jour

- DELETE : suppression

Les commandes de définition de données :

- CREATE : création d'un objet

- ALTER : modification d'un objet

- TRUNCATE : supprimer les lignes d'une table

- DROP : supprimer un objet

- RENAME : renommer un objet

Remarque : les commandes GRANT et REVOKE seront vues dans le cours d'administration.
Catégorie Commandes SQL
Description des données (DDL)
CREATE
Création de tables
ALTER
Modification de tables
DROP
Suppression de tables

Manipulation des données (DML)


INSERT
Insertion de lignes dans une table
UPDATE
Mise à jour de lignes dans une table
DELETE
Suppression de lignes dans une table
Contrôle des données (DCL)

GRANT
Attribution de droits d'accès
REVOKE
Suppression de droits d'accès
COMMIT
Prise en compte des mises à jour
ROLLBACK
Suppression des mises à jour
Interrogation des données
SELECT
Interrogations diverses
Les objets

Les objets du SGBD Relationnel ORACLE sont


les suivants :

- les Tables,

- les Vues,

- les Index,

- les Séquences,

- les Synonymes,

- les Clusters.

Seuls les objets TABLES, VUES, INDEX et SYNONYMES seront vus dans ce cours.
Créer une Base de données
Une base de données, usuellement abrégée en BD ou BDD, est un
ensemble structuré et organisé permettant le
stockage de grandes quantités d'informations afin d'en faciliter
l'exploitation (ajout, mise à jour, recherche de
données).
Syntaxe simple : Create database Nom_Base
ex : Create database MaBase
Quand on utilise cette commande simple, SQL choisi des valeurs
par défauts pour la taille du fichier de base
et journal leurs noms leurs incrémentations etc.…,
CREATE TABLE

 CREATE TABLE "nom de table"


("colonne 1" "type de données pour la colonne 1",
"colonne 2" "type de données pour la colonne 2",
... );
 Exemple :
 CREATE TABLE Customer
(First_Name char(50),
Last_Name char(50),
Address char(50),
City char(50),
Country char(25),
Birth_Date datetime);
clé primaire

 La clé primaire concourt à identifier uniquement chaque ligne


d’une table. Elle peut représenter une partie d’un enregistrement
concret, ou être un champ artificiel (un champ qui n’a rien à voir
avec l’enregistrement réel). La clé primaire peut représenter un ou
plusieurs champs d’une table. Lorsque la clé primaire représente
plusieurs champs, elle est appelée « clé composite ».
 CREATE TABLE Persons(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
)
clé étrangère
 La clé étrangère représente un champ (ou des champs) qui pointe
vers la clé primaire d’une autre table. L’objectif de la clé étrangère
est d’assurer l’intégrité référentielle des données. En d’autres mots,
seules les valeurs devant apparaître dans la base de données sont
permises.
 CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
)
Insert
 Insertion :
 Pour insérer des données dans une base, il y a 2 syntaxes
principales :
 Insérer une ligne en indiquant les informations pour chaque
colonne existante (en respectant l’ordre)
 Insérer une ligne en spécifiant les colonnes que vous souhaiter
compléter. Il est possible d’insérer une ligne en renseigner
seulement une partie des colonnes
 INSERT INTO client (prenom, nom, ville, age) VALUES ('Rébecca',
'Armand', 'Saint-Didier-des-Bois', 24), ('Aimée', 'Hebert',
'Marigny-le-Châtel', 36), ('Marielle', 'Ribeiro', 'Maillères', 27),
('Hilaire', 'Savary', 'Conie-Molitard', 58);
update
SQL UPDATE
La commande UPDATE permet d’effectuer des modifications sur
des lignes existantes. Très souvent cette commande est utilisée
avec WHERE pour spécifier sur quelles lignes doivent porter la ou
les modifications.
Exemple :
UPDATE client SET rue = '49 Rue Ameline', ville = 'Saint-Eustache-
la-Forêt', code_postal = '76210' WHERE id = 2;
SQL DELETE

 La commande DELETE en SQL permet de supprimer des


lignes dans une table. En utilisant cette commande associé à
WHERE il est possible de sélectionner les lignes concernées
qui seront supprimées.
 Exemple
 DELETE FROM utilisateur WHERE date_inscription < '2012-04-
10‘;
DROP

 SQL DROP TABLE


 La commande DROP TABLE en SQL permet de supprimer
définitivement une table d’une base de données. Cela
supprime en même temps les éventuels index, trigger,
contraintes et permissions associées à cette table.
 Attention : il faut utiliser cette commande avec attention car
une fois supprimée, les données sont perdues. Avant de
l’utiliser sur une base importante il peut être judicieux
d’effectuer un backup (une sauvegarde) pour éviter les
mauvaises surprises.
 DROP TABLE nom_table
Opération de sélection
SELECT nom de colonne FROM nom de table
Where condition;

La clause WHERE permet d'effectuer un filtrage de tuples. C'est à dire


sélectionner un sous-ensemble de lignes dans les tables.

Seules les lignes vérifiant la clause WHERE seront retournées.

- Les opérateurs logiques (AND, OR) peuvent être utilisés dans le cas de
prédicats multiples.

- L'opérateur NOT inverse le sens du prédicat.

- Pas de limite dans le nombre de prédicats.


Exemples :

Lister tous les pilotes de la compagnie

SQL> SELECT *
FROM pilote;

==> - pas de sélection


- tous les tuples de la relation PILOTE sont ramenés

Lister les pilotes qui vivent à Nice

SQL> SELECT *
FROM PILOTE
WHERE ADR='Nice';

==> - sélection : clause WHERE

- seuls les tuples de la relation PILOTE vérifant la


clause WHERE sont ramenés
Opérateurs arithmétiques
Dans les critères de la clause WHERE, nous pouvons avoir les opérateurs de comparaison arithmétiques suivants :

= : égal,

!= : différent,

> : supérieur,

>= : supérieur ou égal,

< : inférieur,

<= : inférieur ou égal.

Exemple :

Liste des pilotes qui gagnent plus de 10000 et dont le numéro de tel est 93000000

SQL> SELECT plnom


FROM pilote
WHERE sal > 10000
AND tel='93000000';
les opérateurs sur les chaînes : LIKE
et SOUNDEX
Opérateur LIKE

Caractères jokers de l'opérateur LIKE :


% : remplace 0 à n caractères
_ : remplace 1 et un seul caractère

Exemple 1 :

Sélectionnez les pilotes dont le nom commence par M.

SQL> SELECT *
FROM pilote
WHERE plnom LIKE 'M%';

Exemple 2 :

Sélectionnez les pilotes dont le nom contient un A en troisième position.

SQL> SELECT * FROM pilote


WHERE plnom LIKE '___A%';
ESCAPE
La clause ESCAPE permet de de-spécialiser les caractères jokers :
_

et

%.

Le caractère précisé derrière la clause ESCAPE permet la recherche des caractères _ et % dans une
chaîne de caractères.

Exemple 3 :

Sélectionnez les pilotes dont le nom contient le caractère _.

SQL> SELECT *
FROM pilote
WHERE plnom LIKE '%*_%' ESCAPE '*';
Opérateur SOUNDEX
Opérateur SOUNDEX

SOUNDEX(chaîne) est une fonction qui permet une comparaison phonétique.

SOUNDEX(chaîne) génère une valeur numérique sur 4 octets (selon un algorithme précis).

Pour faire une comparaison phonétique entre 2 chaînes :


SOUNDEX(chaîne1) = SOUNDEX(chaîne2)

Exemple :

Sélectionnez les pilotes dont le nom ressemble à Tonton

SQL> SELECT plnom


FROM pilote
WHERE SOUNDEX(plnom) = SOUNDEX('Tonton');

PLNOM
------------
Tintin
l'opérateur IN and not in

IN est l'opérateur qui permet de tester l'appartenance de la valeur


d'une colonne à une liste.
Exemples :

Liste des vols dont la ville d'arrivée est Nice ou Paris.

SQL> SELECT vol


FROM vol
WHERE va IN ('Nice ', 'Paris');
l'opérateur BETWEEN
BETWEEN est l'opérateur qui permet de tester si une valeur appartient à un intervalle.
Remarque : les bornes sont incluses.
Exemple :

Salaire et nom des pilotes gagnant entre 15000 et 18000


SQL> SELECT plnom, sal
FROM pilote
WHERE sal BETWEEN 15000 AND 18000;

PLNOM SAL
------------ ---------
Mathé 15000
Icare 17000,6
Mopolo 17000,6
Chretien 15000,6
Vernes 17000,6
Tournesol 15000,6

6 ligne(s) sélectionnée(s).
Les opérateurs ANY, SOME et ALL
Ils se combinent avec l'un des opérateurs arithmétiques :

Remarques :

- l'opérateur ANY est équivalent à l'opérateur SOME.

- la condition =ANY est équivalent à l'opérateur IN.


Exemple 2 :

Sélectionnez les pilotes dont le salaire n'est pas un nombre rond.

SQL> SELECT plnom


FROM pilote
WHERE sal != ALL (12000, 13000, 14000, 15000, 16000, 17000,
18000, 19000, 20000, 21000, 22000, 24000, 25000, 26000, 27000,
28000,29000);

Remarque :

La condition != ALL est équivalente à la condition NOT IN.


DISTINCT

 Cette clause permet de ne pas afficher les lignes qui


ont même valeur. Si elle est indiquée, les
enregistrements en double seront supprimés du
fichier résultant final.:
 Exemple:
 SELECT DISTINCT dynastie FROM monarque
EXERCICES

« Id et type d'avions de capacité supérieure à 300"


"Nom des pilotes habitants taza ou casa"
"Quels sont les noms de pilotes comportant un 't' .
"Quels sont les vols au départ de kenitra, rabat ou fes ?"
"Quels sont les avions dont la capacité est comprise entre 250 et 310 ?"
"Quels sont les pilotes dont l'adresse ou le téléphone sont inconnus ?"
"Nom des pilotes ayant un 'a' et un 'e' dans leur nom"
"Nom des pilotes ayant 2 'o' dans leur nom "
"Nom des pilotes dont le numéro de téléphone est renseigné"
Alter Table 
Vous pouvez être amené à modifier à n’importe quel moment la structure
d’une table créée dans la base de données. Les raisons classiques de
modification d’une table sont les suivantes :
Ajouter une colonne
Supprimer une colonne
Changer un nom de colonne
Changer les types de données d’une colonne
La syntaxe SQL de ALTER TABLE est :
 ALTER TABLE table_name
ADD column_name datatype
 ALTER TABLE table_name
DROP COLUMN column_name
 ALTER TABLE table_name
MODIFY COLUMN column_name datatype
TRUNCATE
 Cette commande est très utile pour supprimer toutes les
données d’une table. La commande DROP TABLE, que nous
avons vue dans la last section permet aussi d’exécuter cette
opération. Mais comment devons-nous procéder pour
supprimer les données tout en conservant la table ? Pour ce
faire, il convient d’utiliser la commande TRUNCATE TABLE.
 La syntaxe pour TRUNCATE TABLE est :
 TRUNCATE TABLE "nom de table";