Le langage de requêtes SQL manipulation des données

Cours le langage de requêtes SQL manipulation des données, tutoriel & guide de travaux pratiques en pdf.

Grammaire d’un langage

On utilise une notation basée sur la BNF (Backus Naur Form)
On définit la grammaire du langage à l’aide un ensemble de règles (clauses)
• Chaque règle a un nom noté entre < > <il pleut>
• La définition de la règle est indiquée par ::= <il pleut> ::= …
• Une règle peut être constante
<il pleut> ::= « Il pleut »
• Une règle peut offrir un choix indiqué par |
<il pleut> ::= « Il pleut » | « Il flotte »

Raccourcis syntaxiques

Partie optionnelle notée [ ]
• Définition : A [ B ] ::= A B | A <il pleut> ::= « Il pleut » [ « beaucoup » ] Groupement noté { } ou [ ]
• Définition : A { B | C } ::= A B | A C <il pleut> ::= « Il » { « pleut » | « flotte » } [ « un peu » | « beaucoup » ] Répétition notée { }…
• Définition : A … ::= • | A | A A | A A A | … <il pleut> ::= « Il pleut » { « Il pleut » }… 10
Dérivation
• On peut utiliser une règle dans la définition d’une autre règle <expr> ::= <terme> | <expr> { + | – } <terme>
<terme> ::= <fact> | <terme> { * | / } <fact> <fact> ::= [ + | – ] <prim>
• Les définitions peuvent être récursives <prim> ::= <const> | <var> | ( <expr> )
Création du schéma
CREATECREATE SCHEMASCHEMA <clause<claused’autorisation>d’autorisation>
[ [{{<élément<élémentdedeschéma>schéma>}…}…] ]
<clause d’autorisation> ::= AUTHORIZATION <identifiant du propriétaire>
<élément de schéma> ::=
<définition de relation>
| <définition de vue>
| <définition de droit>
Création d’une relation
CREATECREATE TABLETABLE <nom<nomdederelation>relation>
( (<élément<élémentdederelation>relation>[ [{{, ,<élément<élémentdederelation>relation>}…}…] ]) ) SQL-86 :
<élément de relation> ::=
<définition d’attribut> | <définition de contrainte>
<définition d’attribut> ::=
<nom d’attribut> <type de donnée> [ NOT NULL [ UNIQUE ] ] <définition de contrainte> ::=
UNIQUE ( <nom d’attribut> [ { , <nom d’attribut> }… ] )
Base de données exemple
VINS (NUMV, CRU, ANNEE, DEGRE, NUMVT, PRIX)
VITICULTEURS (NUMVT, NOM, PRENOM, VILLE)
BUVEURS (NUMB, NOM, PRENOM, VILLE)
COMMANDES (NUMC, NUMV, NUMB, DATE, QTE)
Vins Viticulteurs
Commandes
Buveurs
Exemple de création de relation
Les possibilités de SQL-86 sont très limitées
CREATE TABLE COMMANDES ( NUMC INTEGER NOT NULL UNIQUE, NUMV INTEGER NOT NULL, NUMB INTEGER NOT NULL, DATE CHARACTER (8) NOT NULL, UNIQUE (NUMV, NUMB, DATE), QTE DECIMAL (15, 2) )

Manipulation des données

Manipulation ensembliste
• Utilisation d’une expression logique spécifiant l’ensemble des tuples à insérer, rechercher, modifier ou détruire.
Manipulation tuple à tuple
• Insertion directe d’une valeur de tuple dans une relation.
• Déclaration et utilisation d’un curseur – un pointeur courant – sur un ensemble pour rechercher, modifier, détruire le tuple courant.
Manipulation ensembliste
SELECT : recherche de tuple(s) satisfaisant une condition (expression de qualification)
INSERT : insertion dans une relation de tuple(s) obtenus par recherche dans la base
DELETE : suppression de tuple(s) satisfaisant une condition
UPDATE : modification de tuple(s) satisfaisant une condition
Recherche
La syntaxe de base est fondée sur le bloc
SELECT …
FROM …
WHERE …
Les blocs peuvent être imbriqués
• Uniquement dans la clause where en SQL1 Au niveau externe des blocs peuvent être liés
• Uniquement par union en SQL1
Syntaxe d’une recherche simple
SELECT [ DISTINCT | ALL ] <liste résultat>
SELECT [ DISTINCT | ALL ] <liste résultat>
FROM <liste de références de relation>
FROM <liste de références de relation>
[ WHERE <expression de recherche> ]
[ WHERE <expression de recherche> ]
<liste résultat> ::=
* | <expression de valeur> [ { , <expression de valeur> }… ] <liste de références de relation> ::=
<référence de relation> [ { , <référence de relation> }… ]
Sélection de tuples (restriction)
Q1 : Donner les Beaujolais.
SELECT * FROM VINS WHERE CRU = ‘Beaujolais’
Simplicité et productivité de SQL
Simplicité et productivité de SQL
Sélection d’attributs
Q2 : Donner les différents crus, années et degrés des vins.
SELECT CRU, ANNEE, DEGRE FROM VINS

1. Introduction
2. Définition des données
3. Manipulation des données
4. Recherches
5. Mises à jour
6. Programmation
7. Normalisation et extensions

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *