cours3 gdm sql

31

Upload: abdelbaki-ipnoese

Post on 04-Jul-2015

233 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Cours3 gdm sql
Page 2: Cours3 gdm sql

Introduction Les serveurs de données relationnels présententaujourd’hui une interface externe sous forme d’unlangage de recherche et mise à jour, permettant despécifier les ensembles de données à sélectionner ouà mettre à jour à partir de propriétés des valeurs, sansdire comment retrouver les données.

Plusieurs langages assertionnels permettant demanipuler des bases de données relationnelles ontété proposés, en particulier QUEL [Zook77], QBE[Zloof77] et SQL [IBM82, IBM87].

le langage SQL est normalisé [ISO89, ISO92] etconstitue le standard d’accès aux bases de donnéesrelationnelles

Page 3: Cours3 gdm sql

Introduction SQL = Structured Query Language

Langage de requêtes standard pour

l’interrogation de bases de données

relationnelles (SQL-1 en 1989, puis SQL-2 en

1992, et enfin SQL-3 )

Développé à l’origine pour le protype de SGBD

recherche d’IBM SYSTEM/R, qui a débouché sur

les produits commerciaux SQL/DS et DB-2

Mélange d’algèbre relationnelle et de calcul

relationnel à variables n-uplets

Page 4: Cours3 gdm sql

Introduction De manière générale, SQL comme les autres

langages qui ont été proposés (e.g., QUEL)utilisent tous des critères de recherche (encoreappelés qualifications)

SQL: construits à partir de la logique desprédicats du premier ordre. Ils comportent:

Page 5: Cours3 gdm sql

LDD: Langage de Définition de Données: définir le

schéma de la base de données

La définition d’un schéma logique comprend

essentiellement deux parties :

1) d’une part la description des tables et de leur contenu,

2) d’autre part les contraintes qui portent sur les

données de la base. La spécification des contraintes est

souvent placée au second plan bien qu’elle soit en fait

très importante : elle permet d’assurer, au niveau de la

base des contrôles sur l’intégrité des données qui

s’imposent à toutes les applications accédant à cette

base.

3) Un dernier aspect de la définition d’un schéma, est la

description de la représentation physique.

Page 6: Cours3 gdm sql

LMD :Langage de Manipulation de Données: interroger et modifier les données de la base

•Langage de contrôle d’accès aux données.

Page 7: Cours3 gdm sql

CRÉATION DE TABLE CREATION SCHEMA

CREATE SCHEMA AUTHORIZATION nom-schema

create table nom_relation (nom_attribut_1 type_attribut_1, …)

CREATE TABLE <nom de table> (<élément de table>+)

Page 8: Cours3 gdm sql

CRÉATION DE TABLESUn élément de table est soit une définition de

colonne, soit une définition de contrainte, comme suit :

<ÉLÉMENT DE TABLE> ::= <DÉFINITION DE COLONNE> | <CONTRAINTE DE TABLE>

Page 9: Cours3 gdm sql

Une colonne est définie par un nom et un type

de données. Une valeur par défaut peut

être précisée. Une contrainte de colonne peut

aussi être définie à ce niveau. On obtient

donc la syntaxe suivante :

<DÉFINITION DE COLONNE> : := <NOM DE

COLONNE> <TYPE DE DONNÉES>

[<CLAUSE DÉFAUT>] [<CONTRAINTE DE

COLONNE>]

Page 10: Cours3 gdm sql

Type de données

Page 11: Cours3 gdm sql

EXEMPLECREATE TABLE Internaute

(email VARCHAR (50) NOT NULL,

nom VARCHAR (20) NOT NULL,

prenom VARCHAR (20),

motDePasse VARCHAR (60) NOT NULL,

AnneeNaiss DECIMAL (4))

CREATE TABLE Cinéma (nom VARCHAR (50) NOT NULL, adresse VARCHAR (50) DEFAULT ’Inconnue’)

Page 12: Cours3 gdm sql

LDDEXPRESSION DES CONTRAINTES D’INTÉGRITÉ

1)Les contraintes de colonnes permettent despécifier différentes contraintes d’intégrité

– valeur nulle impossible (syntaxe NOT NULL),

– unicité de l’attribut (syntaxe UNIQUE ouPRIMARY KEY),

– contrainte référentielle – syntaxe REFERENCES<table référencée> [(<colonne référencée>)]

– contrainte générale (syntaxe CHECK<condition>)spécifier des plages ou des listes devaleurs possibles

Page 13: Cours3 gdm sql

1.Un attribut doit toujours avoir une valeur. C’est la contrainte NOT NULL vue précédemment.

2. Un attribut (ou un ensemble d’attributs) constitue(nt) la clé de la relation.

3. Un attribut dans une table est liée à la clé primaire d’une autre table (intégrité référentielle).

4. La valeur d’un attribut doit être unique au sein de la relation.

5. Enfin toute règle s’appliquant à la valeur d’un attribut (min et max par exemple).

LDDEXPRESSION DES CONTRAINTES D’INTÉGRITÉ

Page 14: Cours3 gdm sql

Clé de la table (1) CREATE TABLE Internaute (email VARCHAR (50)

NOT NULL, nom VARCHAR (20) NOT NULL,

prenom VARCHAR (20),

motDePasse VARCHAR (60) NOT NULL,

anneeNaiss INTEGER,

PRIMARY KEY (email))

Page 15: Cours3 gdm sql

1 CREATE TABLE Notation (idFilm INTEGER NOT NULL, email VARCHAR (50) NOT NULL,

note INTEGER DEFAULT 0,

PRIMARY KEY (titre, email))

2 CREATE TABLE Artiste(id INTEGER NOT NULL,

nom VARCHAR (30) NOT NULL,

prenom VARCHAR (30) NOT NULL,

anneeNaiss INTEGER,

PRIMARY KEY (id),

UNIQUE (nom, prenom));

Clé de la table (2)

Page 16: Cours3 gdm sql

Clés étrangères CREATE TABLE Film (idFilm INTEGER NOT NULL,

titre VARCHAR (50) NOT NULL,

annee INTEGER NOT NULL,

idMES INTEGER,

codePays INTEGER,

PRIMARY KEY (idFilm),

FOREIGN KEY (idMES) REFERENCES Artiste,

FOREIGN KEY (codePays) REFERENCES Pays);

Page 17: Cours3 gdm sql

MODIFICATION d’une table ALTER TABLE nomTable ACTION description

ACTION peut être principalement ADD, MODIFY, DROP ou RENAME, et description est la commande

de modification associée à ACTION.

Page 18: Cours3 gdm sql

Modification des attributs On peut ajouter un attribut region à la table Internaute

avec la commande :

ALTER TABLE Internaute ADD region VARCHAR(10);

On peut modifier La taille de region

ALTER TABLE Internaute MODIFY regionVARCHAR(30) NOT NULL;

ALTER TABLE Internaute ALTER region SET DEFAULT ’BLIDA’;

ALTER TABLE Internaute DROP region; //détruire

Page 19: Cours3 gdm sql

LMD la recherche (mot clé SELECT ) permet de retrouver

des tuples ou parties de tuples vérifiant la qualification

citée en arguments ;

– l’insertion (mot clé INSERT ) permet d’ajouter des

tuples dans une relation ; les tuples peuvent être fournis

par l’utilisateur ou construits à partir de données existant

déjà dans la base ;

– la suppression (mot clé DELETE ) permet de

supprimer d’une relation les tuples vérifiant la

qualification citée en argument ;

– la modification (mot clé UPDATE )permet de

mettre à jour les tuples vérifiant la qualification citée en

argument à l’aide de nouvelles valeurs d’attributs ou de

résultats d’opérations arithmétiques appliquées aux

anciennes valeurs.

Page 20: Cours3 gdm sql

SELECTION SELECT [DISTINCT] *FROM table_1 [synonyme_1],

table_2 [synonyme_1], …[WHERE prédicat_1AND [ou OR] prédicat_2 …

Page 21: Cours3 gdm sql

INSERTION

Page 22: Cours3 gdm sql

MODIFICATION

Page 23: Cours3 gdm sql

SUPPRESSION

Page 24: Cours3 gdm sql

Les critères de sélection Comparaison à une valeur donnée.

Pour chaque enregistrement, la valeur d'un champ donné est comparée à une valeur fixe. Cette valeur fixe est généralement une valeur numérique, une date ou un texte.

Voici les opérateurs de comparaison:

= "est égal"

> "strictement supérieur"

< "strictement inférieur"

>= "supérieur ou égal"

<= "inférieur ou égal"

<> "est différent"

Page 25: Cours3 gdm sql

1. Afficher le prénom et le nom de tous les employés du service "Marketing"

SELECT fldPrénom, fldNom

FROM tblEmployés

WHERE fldService='Marketing';

2. Afficher le prénom, le nom et l'âge de tous les employés plus jeunes que 50 ans

SELECT fldPrénom, fldNom, fldAge

FROM tblEmployés

WHERE fldAge<50;

Page 26: Cours3 gdm sql

3 Augmentez de la valeur 1 à l'âge de AICHA.

UPDATE tblEmployés

SET fldAge=fldAge+1

WHERE fldNom=‘AICHA';

4. Effacez tous les employés du service Informatique.

DELETE FROM tblEmployés

WHERE fldService='Informatique';

Page 27: Cours3 gdm sql

5. Afficher le nom, le prénom et l'âge de tous les employés entrés en service à partir du

1.1.2014

SELECT fldNom, fldPrénom, fldAge

FROM tblEmployés

WHERE fldEntréeService>=#1/1/14#;

Page 28: Cours3 gdm sql

Comparaison à un filtre • % représente n'importe quelle séquence de 0 ou

plusieurs caractères;

• _ représente un seul caractère quelconque.

Exemple: Pour rechercher des personnes dont le nom est ‘ABDrahime' ou ‘ABDrahmene' ou

'SCHMIT' etc. on définit par exemple le filtre suivant : ‘ABD%'

Exemple: Le filtre 'BL__' sélectionne par exemple les valeurs 'BLEU' ou 'BLUE' mais pas 'BLANC'

Les filtres sont utilisés ensemble avec le mot réservé LIKE. Voici la syntaxe:

. . .

WHERE <Nom du champ> LIKE <Filtre>

Page 29: Cours3 gdm sql

Afficher le nom et le prénom des employés dont le prénom contient un trait d'union

(p.ex. MED-LAMINE)

SELECT fldNom, fldPrénom

FROM tblEmployés

WHERE fldPrénom LIKE '%-%';

2. Afficher le nom, le prénom et l'âge des employés dont le nom commence par 'W', est

composé de 5 lettres et se termine par 'R'

SELECT fldNom, fldPrénom, fldAge

FROM tblEmployés

WHERE fldNom LIKE 'W___R';

Page 30: Cours3 gdm sql

Les opérateurs logiques Il existe 3 opérateurs logiques:

1. NOT (Négation logique)

2. AND (Et logique)

3. OR (Ou logique)

Page 31: Cours3 gdm sql

Afficher le prénom et le nom de tous les employés qui ne travaillent pas dans le service

"Marketing" SELECT fldPrénom, fldNom FROM tblEmployés WHERE NOT fldService='Marketing'; Formulez une requête qui affiche exactement le même

résultat, sans utiliser l'opérateur NOT. SELECT fldPrénom, fldNom FROM tblEmployés WHERE fldService<>'Marketing';