Vous êtes sur la page 1sur 157

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Bases de donn ees


Cours 4 : Le langage SQL pour ORACLE Odile PAPINI
ESIL Universit e de la m editerran ee Odile.Papini@esil.univmed.fr http://odile.papini.perso.esil.univmed.fr/sources/BD.html

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Plan du cours
1 2

Introduction SQL comme LDD Identicateurs Types Tables SQL comme Langage de Requ etes Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues SQL comme LCD
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Bibliographie
Livres : G. Gardarin : Bases de donn ees objet et relationnel. Eyrolles ed. 1999. C. J. Date : Introduction aux bases de donn ees. (8i` eme edition). Vuibert ed. 2004. H. Garcia-Molina, J. D. Ullman, J. Widow : Database systems, the complete book. Prentice Hall ed. 2002. Supports de cours : Support de cours : J. Le Maitre : http ://lemaitre.univ-tln.fr/cours.htm Support de cours : C. Sabatier, Universit e de la M editerran ee.
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

SQL : Introduction
SQL : Structured Query Langage langage de gestion de bases de donn ees relationnelles pour d enir les donn ees (LDD) int erroger la base de donn ees (Langage de requ etes) manipuler les donn ees (LMD) contr oler lacc` es aux donn ees (LCD)

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

SQL : Introduction
SQL : Quelques rep` eres historiques 1974 SEQUEL (Structured English Query Language) anc etre de SQL 1979 premier SGBD bas e sur SQL par Relational Software Inc. (rebaptis e Oracle) 1986 SQL1 1i` ere norme ISO 1989 ajout des contraintes dint egrit e de base (cl e primaire et cl e etrang` ere) 1992 SQL2 2i` eme norme extension de SQL1 (nouveaux types et nouveaux op erateurs 1999 SQL3 extension de SQL2 (introduction des types orient es objet)
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

SQL et Oracle
SQL : Quelques rep` eres historiques Oracle est SGBD qui utilise SQL PL/SQL dit (L4G) langage proc edural nombreux programmes utilitaires :
SQL*PLUS SQL interactif SQL*FORMS : saisie et visualisation des donn ees avec des formulaires SQL*REPORTWRITER : rapports imprim es WebDB : interface avec le Web Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Identicateurs Types Tables

SQL comme LDD


Identicateurs : lettre suivie par : lettre ou chire ou cha ne de caract` eres entre guillemets maximum 30 caract` eres di erent dun mot cl e ASSERT, ASSIGN, AUDIT, COMMENT, DATE, DECIMAL, DEFINITION, FILE, FORMAT, INDEX, LIST, MODE, OPTION, PARTITION, PRIVILEGE, PUBLIC, SELECT, SESSION, SET, TABLE pas de distinction entre majuscules et minuscules
Odile PAPINI Bases de donn ees

ou ou $

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Identicateurs Types Tables

SQL comme LDD


Tables : relations dun sch ema relationnel stock ees sous tables table : form ee de lignes et de colonnes SQL2 : nom dune table pr ec ed e du nom dun sch ema ORACLE :
nom de sch ema remplac e par le nom dutilisateur qui a cr ee la table par d efaut le sch ema est le nom de lutilisateur connect e

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Identicateurs Types Tables

SQL comme LDD


Tables :

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Identicateurs Types Tables

SQL comme LDD


Tables : colonnes toutes les donn ees dune colonne sont du m eme type identicateur unique pour les colonnes dune m eme table 2 colonnes dans 2 tables di erentes peuvent avoir le m eme nom nom complet dune colonne comprend le nom complet de la table ` a laquelle elle appartient exemple : DEPARTEMENTS.DEPARTEMENT ID ou HR.DEPARTEMENTS.DEPARTEMENT ID
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Identicateurs Types Tables

SQL comme LDD


Types de donn ees de SQL2 : types pour les cha nes de caract` eres types num eriques types temporels (date, heure, ) SQL2 na pas de type pour les donn ees volumineuses (images , sons) SQL2 ne permet pas ` a lutilisateur de cr eer ses propres types

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Identicateurs Types Tables

SQL comme LDD


SQL2 : Types pour les cha nes de caract` eres CHAR(taille)
cha nes de caract` eres de longueur xe codage en longueur xe : remplissage de blancs taille comprise entre 1 et 2000 octets

VARCHAR(taille max)
cha nes de caract` eres de longueur variable taille comprise entre 1 et 4000 octets

constantes
cha nes de caract` eres entre guilllemets
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Identicateurs Types Tables

SQL comme LDD


ORACLE : Types pour les cha nes de caract` eres CHAR(taille) ou NCHAR(taille) VARCHAR(taille max) MAIS de pr ef erence VARCHAR2(taille max) ou NVARCHAR2(taille max) constantes
cha nes de caract` eres entre c otes
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Identicateurs Types Tables

SQL comme LDD


ORACLE : Types pour les cha nes de caract` eres

exemples

NCHAR(5) : cha nes de 5 caract` eres VARCHAR2(20) : cha nes de 20 caract` eres au plus Administration, Marketing
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Identicateurs Types Tables

SQL comme LDD


SQL2 : Types num eriques types num eriques pour les entiers :
SMALLINT pour 2 octets INTEGER pour 4 octets

types num eriques pour les d ecimaux ` a virgule ottante :


REAL DOUBLE PRECISION ou FLOAT

types num eriques pour les d ecimaux ` a virgule xe :


DECIMAL(nb chires, nb d ecimales) NUMERIC(nb chires, nb d ecimales)

constantes
exemples : 43.8, -13, 5.3E-6
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Identicateurs Types Tables

SQL comme LDD


ORACLE : Types num eriques exemples

ORACLE accepte tous les types num eriques de SQL2 mais il les traduit dans ses propres types NUMBER : nombre en virgule ottante avec jusqu` e` a 38 chires signicatifs NUMBER(nb chires, nb d ecimales) : nombre en virgule xe
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Identicateurs Types Tables

SQL comme LDD


SQL2 : Types temporels DATE
pour les dates

TIME
pour les heures, minutes et secondes

TIMESTAMP
pour un moment pr ecis : date et heure, minutes et secondes (pr ecision jusqu ` a la microseconde)
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Identicateurs Types Tables

SQL comme LDD


ORACLE : Types temporels le type DATE remplace DATE et TIME de SQL2 DATE correspond ` a une date avec une pr ecision jusqu` a la seconde constantes
exemples : 1/05/2007 ou 1 MAY 2007

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Identicateurs Types Tables

SQL comme LDD

SQL2 : Type bool en BIT


pour enregistrer la valeur dun bit exemples : BIT(1), BIT(4)

pas support e par ORACLE

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Identicateurs Types Tables

Base de donn ee relationnelle : Manipulation : exemple (1)


exemple du cours pr ec edent : BD vols-r eservations

Voici 3 sch emas de relations : avions(No AV, NOM AV, CAP, LOC) pilotes(No PIL, NOM PIL, VILLE) vols(No VOL, No AV, No PIL, V d, V a, H d, H a)
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Identicateurs Types Tables

Base de donn ee relationnelle : Manipulation : exemple (2)


et voici les 3 tables correspondantes :
No AV 100 101 102 avions NOM AV CAP airbus 300 airbus 300 carav 200 LOC nice paris toulouse No PIL 1 2 3 pilotes NOM PIL laurent sophie claude VILLE nice paris grenoble

No VOL it100 it101 it102 it103 it104

No AV 100 100 101 102 101

No PIL 1 2 1 3 3
Odile PAPINI

vols Vd nice paris paris grenoble toulouse

Va paris toulouse nice toulouse grenoble

Hd 7 11 12 9 17

Ha 8 12 13 11 18

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Identicateurs Types Tables

SQL comme LDD : Exemple


avions(no AV, NOM AV, CAP, LOC)

no AV NUMBER(4) NOM AV VARCHAR2(20) CAP NUMBER(4) LOC VARCHAR2(15)


pilotes(no PIL, NOM PIL, VILLE)

no PIL NUMBER(4) NOM PIL VARCHAR2(20) VILLE VARCHAR2(15)


vols(no VOL, no AV, no PIL, V d, V a, H d, H a)

no VOL VARCHAR2(5) no AV NUMBER(4) no PIL NUMBER(4) V d VARCHAR2(15) V a VARCHAR2(15)


Odile PAPINI

H d DATE H a DATE
Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Identicateurs Types Tables

SQL comme LDD


ORACLE : Types pour objets larges LOB : large objet form e par : valeur du LOB : une grande donn ee (jusqu` a 4 Go) index du LOB : structure dacc` es le type localisateur du LOB pointeur vers lendroit o` u il est stock e Types pour objets larges CLOB ou NCLOB : pour le stockage de grandes cha nes de caract` eres BLOB : pour le stockage de grandes cha nes doctets BFILE : pour le stockage de donn ees binaires dans un chier ext erieur ` a la base
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Identicateurs Types Tables

SQL comme LDD


ORACLE : Autres types Les types cha nes doctets RAW(taille) : 2000 octets max LONG RAW : 2 Go max
conversion automatique dune cha ne doctets en une cha ne de caract` eres repr esentant un nombre hexad ecimal, et inversement

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Identicateurs Types Tables

SQL comme LDD


ORACLE : Autres types Le type adresse de ligne ROWID : une valeur de type est un nombre en base 64 dont les chires sont repr esent es par : A-Z, a-z, 0-9, +, /, il s ecrit : OOOOOOFFFBBBBBBLLL
OOOOOO : num ero de lobjet qui contient la ligne (6 chires en base 64) FFF : num ero du chier dans la BD (3 chires en base 64, le premier chire a le num ero 1 (AAB)) BBBBBB : num ero du bloc dans le chier (6 chires en base 64) LLL : num ero du ligne dans le bloc (3 chires en base 64), le premier chire a le num ero 0 (AAA))
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Identicateurs Types Tables

SQL comme LDD


ORACLE : Absence de valeur NULL : repr esente labsence de valeur pour tous les types de donn ees. Ce nest pas une valeur pour les types cha ne de caract` eres :
la cha ne vide repr esente aussi labsence de valeur pour les types cha ne de caract` eres (taille xe ou variable) une cha ne remplie de blancs nest pas equivalente ` a la cha ne vide

pour les types num eriques


le nombre 0 ne repr esente pas labsence de valeur

pour les types LOB


labsence de valeur est labsence de localisateur un LOB vide nest pas une absence de valeur
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Identicateurs Types Tables

SQL comme LDD


cr eation de table

CREATE TABLE nom de table (liste de d enition de colonne, [liste de contrainte de table]) ; d enition de colonne : := nom de colonne (nom de domaine ou type) [liste de contrainte de colonne] [DEFAULT valeur par d efaut]
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Identicateurs Types Tables

SQL comme LDD


cr eation de table : contrainte de colonne contrainte de colonne : := [CONSTRAINT nom] type de contrainte de colonne type de contrainte de colonne : := PRIMARY KEY ou NOT NULL ou UNIQUE ou CHECK(condition sur valeur) ou REFERENCES nom de table(nom de colonne)
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Identicateurs Types Tables

SQL comme LDD


cr eation de table : contrainte de table contrainte de table : := [CONSTRAINT nom] type de contrainte de table type de contrainte de table : := PRIMARY KEY (liste de nom de colonne) ou NOT NULL (liste de nom de colonne) ou UNIQUE (liste de nom de colonne) ou CHECK (condition sur ligne) ou FOREIGN KEY liste de nom de colonne REFERENCES nom de de table (liste de nom de colonne)
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Identicateurs Types Tables

SQL comme LDD


Exemple : Cr eation de la table avions ` a partir du sch ema : avions(no AV, nom AV, CAP, LOC) CREATE TABLE avions ( no AV NUMBER(4)
CONSTRAINT Cle P avions PRIMARY KEY,

NOM AV VARCHAR2(20), CAP NUMBER(4)


CONSTRAINT Dom CAP avions CHECK (CAP 4),

LOC VARCHAR2(15) ) ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Identicateurs Types Tables

SQL comme LDD : Exemple : Cr eation de la table vols

Cr eation de la table vols ` a partir du sch ema : vols(no VOL, no AV, no PIL, V d, V a, H d, H a) Contraintes de colonnes ? Contraintes de table ?

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Identicateurs Types Tables

SQL comme LDD : Exemple : Cr eation de la table vols


vols(no VOL, no AV, no PIL, V d, V a, H d, H a)
CREATE TABLE vols ( no VOL VARCHAR2(5)

CONSTRAINT Cle P vols PRIMARY KEY,


no AV NUMBER(4)

CONSTRAINT Ref no AV vols REFERENCES avions,


no PIL NUMBER(4)

CONSTRAINT Ref no PIL vols REFERENCES pilotes,


V d VARCHAR2(15) NOT NULL, V a VARCHAR2(15) NOT NULL, H d DATE, H a DATE, CONSTRAINT C1 vols CHECK (v d = v a), CONSTRAINT C2 vols CHECK (h d < h a) ) ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Identicateurs Types Tables

SQL comme LDD


suppression de table

DROP TABLE nom ; Quand une table est supprim ee, ORACLE : eace tous les index qui y sont attach es quelque soit le propri etaire eace tous les privil` eges qui y sont attach es MAIS les vues et les synomymes se r ef erant ` a cette table ne sont pas supprim es
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Identicateurs Types Tables

SQL comme LDD


modication de table

ALTER TABLE nom de table modication de table ; modication de table : := ADD COLUMN d enition de colonne ADD CONSTRAINT contrainte de table DROP COLUMN nom de colonne DROP CONSTRAINT nom de contrainte
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Identicateurs Types Tables

SQL comme LDD

Exemple : Ajout dun colonne ` a la table vols de sch ema : vols(no VOL, no AV, no PIL, V d, V a, H d, H a) ALTER TABLE vols ADD COLUM COUT VOL NUMBER(8) le sch ema devient : vols(no VOL, no AV, no PIL, V d, V a, H d, H a, COUT VOL)

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Identicateurs Types Tables

SQL comme LDD

insertion de lignes dans une table

INSERT INTO nom de table [liste de colonnes] VALUES liste de valeurs ; ou INSERT INTO nom de table [liste de colonnes] requ ete ;

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Identicateurs Types Tables

SQL comme LDD : Exemple


ajouter un avion dans la table avions en respectant lordre des colonnes
INSERT INTO avions VALUES (100, Airbus, 200, Paris) ;

ajouter un avion dans la table avions sans conna tre lordre


INSERT INTO avions (no AV, CAP, LOC, NOM AV) VALUES (101, 200, Paris, Airbus) ;

ajouter un avion dans la table avions dont la localisation est INDEFINI


INSERT INTO avions (no AV, NOM AV, CAP) VALUES (102, Airbus, 200) ;

ou
INSERT INTO avions VALUES (102, Airbus, 200, NULL) ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Identicateurs Types Tables

SQL comme LDD


suppression de lignes dune table DELETE [FROM] nom de table [WHERE condition] ; Exemples : vider la table avions
DELETE FROM avions ;

supprimer de la table avions tous les avions dont la capacit e est inf erieur ` a 100
DELETE FROM avions WHERE CAP < 100 ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Identicateurs Types Tables

SQL comme LDD


modication de lignes dans une table UPDATE nom de table SET liste expression colonne [WHERE condition] ; expression colonne : := nom de colonne = expression ou nom de colonne = requ ete Exemple : modier la capacit e de lavion num ero 100 UPDATE avions SET CAP = 300 WHERE no AV = 100 ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes


interrogation
requ ete : := SELECT [DISTINCT] projection FROM liste de (nom de table [[AS] nom]) | (requ ete AS nom) WHERE condition [GROUP BY liste de nom de colonne] [HAVING condition] [ORDER BY liste de ((nom de colonne | rang de colonne) (ASC | DESC)] ; requ ete : := requ ete ( UNION | INTERSECT | EXCEPT ) requ ete requ ete : := (requ ete)
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes


projection : := * | nom de table | liste de (terme de projection[[AS] nom]) terme de projection : := expression | agr egation expression : := etique | valeur | nom de colonne | expression arithm agr egation : := COUNT(*) op erateur dagr egation([DISTINCT] expression) op erateur dagr egation : := COUNT | SUM | AVG | MAX | MIN
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes


condition : := condition el ementaire NOT condition | condition(AND | OR) condition | (condition) condition el ementaire : := reconnaissance de mod` ele | test de valeur nulle | comparaison | a un intervalle | appartenance a ` un ensemble | appartenance ` existence reconnaissance de mod` ele : := expression [NOT] LIKE de cha ne test de valeur nulle : := nom de valeur IS [NOT] NULL
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes


comparaison : := expression (= | <>| > | < | <= | >= | ) expression | ete expression (= | <>) (| SOME | ALL ) requ expression (> | < | <= | >=) (| SOME | ALL ) requ ete mono colonne appartenance ` a un intervalle : := expression BETWEEN expression AND expression appartenance ` a un ensemble : := ete) | expression (IN | NOTIN) (requ (liste de expression) (IN | NOTIN) (requ ete) ensemble de valeurs : := (liste de valeur) | requ ete mono colonne existence : := EXISTS (requ ete)
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes


S election de lignes toutes les lignes et toutes les colonnes SELECT * FROM nom de table ;
pour conna tre toutes les caract eristiques des avions stock es dans la table SELECT * FROM avions ;

toutes les lignes mais seulement certaines colonnes SELECT liste de nom de colonne FROM nom de table ;
pour conna tre les num eros de tous les vols SELECT no VOL FROM vols ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes


S election de lignes suppression des lignes dupliqu ees SELECT DISTINCT liste de nom de colonne FROM nom de table ;
pour conna tre les num eros des pilotes qui conduisent au moins un avion SELECT DISTINCT no PIL FROM vols ;

colonnes calcul ees SELECT expression [AS alias] FROM nom de table ;
acher une augmentation de 5% du co ut de chaque vol SELECT no VOL, 5% %, COUT VOL*0.05 AUGM, COUT VOL*1.05 Nouveau co ut FROM vols ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes : Exemple de calcul


sur les cha nes de caract` eres
acher les trajets assur es par les vols sous la forme : Ville de d epart > Ville darriv ee SELECT no VOL, V d || > || V a TRAJET FROM vols ;

sur les dates


acher les dates de d epart et darriv ee de chaque vol en d ecalant les dates SELECT no VOL, D d + 1/24 D d, D a + 1/24 D a FROM vols ; pour conna tre la dur ee en heures de tous les vols SELECT no VOL, 24 *(D a -D d) dur ee FROM vols ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes


Recherche par comparaison SELECT liste de nom de colonne FROM nom de table WHERE expression ;
pour conna tre tous les avions qui ont une capacit e > 200 places SELECT no AV FROM avions WHERE CAP > 200 ; pour conna tre tous les pilotes qui eectuent des vols qui durent plus dune heure SELECT DISTINCT no PIL FROM vols WHERE (24 *(D a -D d) )> 1 ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes


Recherche par ressemblance SELECT liste de nom de colonne FROM nom de table WHERE expression [NOT] LIKE motif [caract` eres sp eciaux] ;
caract` ere sp eciaux :
% : remplace 0, 1 ou plusieurs caract` eres : remplace 1 caract` ere

caract` ere d echappement :


permet de traiter les caract` ere sp eciaux comme de simples caract` eres il ny a pas de caract` ere d echappement pr ed eni
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes

Recherche par ressemblance : exemples pour conna tre la capacit e de tous les avions SELECT no AV, NOM AV, CAP FROM avions WHERE NOM AV LIKE Boeing% ;

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes

Recherche avec condition conjonctive SELECT liste de nom de colonne FROM nom de table WHERE condition AND condition ;
pour conna tre tous les avions qui sont ` a Marseille et dont la capacit e est de 300 places SELECT no AV FROM avions WHERE LOC = Marseille AND CAP = 300 ;

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes

Recherche avec condition disjonctive SELECT liste de nom de colonne FROM nom de table WHERE condition OR condition ;
pour conna tre tous les vols qui utilisent les avions 100 et 101 SELECT no VOL FROM vols WHERE no AV = 100 OR no AV = 101 ;

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes

Recherche avec condition n egative SELECT liste de nom de colonne FROM nom de table WHERE NOT condition ;
pour conna tre tous les pilotes qui nhabitent pas ` a Marseille SELECT no PIL FROM pilotes WHERE NOT VILLE = Marseille ;

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes

Recherche avec un intervalle SELECT liste de nom de colonne FROM nom de table WHERE expression BETWEEN expression AND expression ;
pour conna tre tous les avions qui ont une capacit e entre 200 et 300 places SELECT no AV FROM avions WHERE CAP BETWEEN 200 AND 300 ;

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes

Recherche avec une liste SELECT liste de nom de colonne FROM nom de table WHERE expression [NOT] IN liste de expression ;
pour conna tre tous les pilotes qui habitent soit ` a Marseille soit ` a Nice SELECT no PIL FROM pilotes WHERE VILLE IN (Marseille, Nice) ;

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes


Recherche avec une liste SELECT liste de nom de colonne FROM nom de table WHERE expression (<>| > | < | <= | >= | ) ANY liste de expression ; SELECT liste de nom de colonne FROM nom de table WHERE expression (<>| > | < | <= | >= | ) SOME liste de expression ;
pour conna tre tous les vols dont le d epart est ` a plus de 5 jours et dont la dur ee est moins de 5 heures SELECT no VOL, D d, 24*(D a - D d) Dur ee FROM vols WHERE D d > ALL (sysdate +5, D a -5/24) ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes

Traitement de labsence de valeur sur les expressions num eriques


un calcul num erique ou de dates exprim e avec les op erateurs +, , , / na pas de valeur lorsquau moins une des composantes na pas de valeur SELECT no AV, 2*CAP/3 AS CAP RED FROM avions WHERE no AV = 320 ;

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes


Traitement de labsence de valeur sur les cha nes de caract` eres
un calcul de cha nes exprim e avec lop erateur || na pas de valeur lorsque toutes ses composantes nont pas de valeur la cha ne vide et labsence de valeur sont confondues SELECT no CL, NOM RUE CL || || VILLE CL AS ADR CL ou no CL, NOM RUE CL || NULL || VILLE CL AS ADR CL FROM clients WHERE no CL = 1035 ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes


Traitement de labsence de valeur sur les comparaisons
toute comparaison exprim ee avec les op erateurs =, <>, >, <, <=, >=, LIKE qui comporte une expression qui na pas de valeur prend la valeur logique INDEFINIE les comparaisons ignorent les lignes o` u il y a absence de valeur SELECT * FROM pilotes WHERE NAISS PIL <> 1960 AND VILLE <> Paris ; comparaisons ind enies : SELECT * FROM avions WHERE NULL = NULL OR = OR LIKE % OR A LIKE OR A NOT LIKE ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes

Traitement de labsence de valeur table de v erit e pour le connecteur


VRAI FAUX INCONNIE VRAI VRAI FAUX INDEFINI FAUX FAUX FAUX FAUX INDEFINI INDEFINI FAUX INDEFINI

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes


Traitement de labsence de valeur table de v erit e pour le connecteur
VRAI FAUX INDEFINI VRAI VRAI VRAI VRAI FAUX VRAI FAUX INDEFINI INDEFINI VRAI INDEFINI INDEFINI

table de v erit e pour le connecteur


VRAI FAUX INDEFINI
Odile PAPINI

FAUX VRAI INDEFINI


Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes


Traitement de labsence de valeur

equivalences disjonctives
expr NOT BETWEEN expr1 AND expr2 expr < expr1 OR expr > expr2 expr IN (expr1 exprN ) expr = expr1 OR OR expr = exprN expr op ANY (expr1 exprN ) expr op expr1 OR OR expr op exprN
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes


Traitement de labsence de valeur Les expressions suivantes : expr NOT BETWEEN expr1 AND expr2 expr IN (expr1 exprN ) expr op ANY (expr1 exprN ) sont vraies ssi expr a une valeur et si au moins une des expressions expr1 , exprN a une valeur qui satisfait les comparaisons SELECT NUM PIL FROM pilotes WHERE VILLE IN (Marseille, Nice, ) ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes


Traitement de labsence de valeur

equivalences conjonctives
expr BETWEEN expr1 AND expr2 expr >= expr1 AND expr <= expr2 expr NOT IN (expr1 exprN ) expr <> expr1 AND AND expr <> exprN expr op ALL (expr1 exprN ) expr op expr1 AND AND expr op exprN
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes


Traitement de labsence de valeur Les expressions suivantes : expr BETWEEN expr1 AND expr2 expr NOT IN (expr1 exprN ) expr op ALL (expr1 exprN ) sont vraies ssi expr a une valeur et si au moins toutes les expressions expr1 , exprN ont une valeur qui satisfait la comparaison SELECT NUM PIL FROM pilotes WHERE VILLE NOT IN (Marseille, Nice, ) ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes


Traitement de labsence de valeur recherche de labsence de valeur SELECT liste de nom de colonne FROM nom de table WHERE expression IS [NOT] NULL ;
pour conna tre tous les vols auxquels on na pas encore aect e davions SELECT no VOL FROM vols WHERE no AV IS NULL ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes


Traitement de labsence de valeur Donner une valeur ` a labsence de valeur NVL (expr1 , expr2 ) = expr1 si elle d enie, expr2 sinon expr1 et expr2 doivent etre de m eme type
pour quune capacit e davion inconnue soit consid er ee comme nulle SELECT no VOL, NVL(CAP,0) FROM avions ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes

Ordonner les r eponses SELECT liste de nom de colonne FROM nom de table [WHERE expression] ORDER BY { expression | position } [ASC | DESC] [{ expression | position } [ASC | DESC]] ;

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes

Ordonner les r eponses pour conna tre les horaires des vols tri es par ordre croissant des dates et heures de d epart SELECT no VOL, DATE d, DATE a FROM vols ORDER BY DATE d ;

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes


Les fonctions de groupe les fonctions de groupe calculent les r esultats ` a partir dune collection de valeurs. COUNT (*) comptage des lignes COUNT ([DISTINCT | ALL]) comptage des valeurs MAX ([DISTINCT | ALL]) maximum des valeurs MIN ([DISTINCT | ALL]) maximum des valeurs SUM ([DISTINCT | ALL]) minimum des valeurs AVG ([DISTINCT | ALL]) moyenne des valeurs STDDEV ([DISTINCT | ALL]) ecart-type des valeurs VARIANCE ([DISTINCT | ALL]) variance des valeurs
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes

Les fonctions de groupe pour conna tre le nombre davions SELECT COUNT(*) NBR AV FROM avions ; pour conna tre le nombre dheures de vols du pilote 4020 SELECT SUM(24 *(D a - D d)) NBR H FROM vols WHERE no PIL = 4020 ;

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes


Les regroupements de lignes les fonctions de groupe calculent les r esultats ` a partir dune collection de valeurs. SELECT liste dexpressions1 FROM nom de table GROUP BY liste dexpressions2 ; etre des les expressions de liste dexpressions1 doivent expressions form ees uniquement :
dexpressions de liste dexpressions2 de fonctions de groupe de constantes litt erales
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes

Les regroupements de lignes pour conna tre le nombre davions aect es ` a chaque ville daectation dun avion SELECT LOC, COUNT(*) NBR AV FROM avions GROUP BY LOC ;

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes


Les regroupements de lignes
avions tri es sur LOC no AV LOC 820 Ajaccio 715 Ajaccio 720 225 456 531 Marseille Marseille Marseille Toulouse
Odile PAPINI

table r esultat LOC NBR AV

Ajaccio

Marseille Toulouse
Bases de donn ees

3 1

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes

Les regroupements de lignes pour conna tre le nombre de vols qui ont la m eme dur ee SELECT 24*(D a - D d) DUR VOL, COUNT(*) NBR VOL FROM vols GROUP BY D a - D d ;

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes


Les regroupements de lignes regroupement de lignes s electionn ees SELECT liste dexpressions1 FROM nom de table WHERE condition GROUP BY liste dexpressions2 ; pour conna tre le nombre davions di erents utilis es par chaque pilote assurant un vol SELECT LOC, no PIL, COUNT(DISTINCT no AV) NBR AV FROM vols WHERE no PIL IS NOT NULL GROUP BY no PIL ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes


Conditions sur lensemble des lignes SELECT liste dexpressions FROM nom de table [ WHERE condition ] HAVING condition sur lignes ; les expressions de liste dexpressions et condition sur lignes doivent etre form ees uniquement :
de fonctions de groupe de constantes litt erales
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes

Conditions sur lensemble des lignes pour savoir si le pilote 4010 assure tous les vols avec un avion di ; erent ` a chaque fois SELECT OUI REP FROM vols WHERE no PIL = 4010 HAVING COUNT(*) = COUNT(DISTINCT no AV) ;

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes


Conditions sur lensemble des lignes SELECT liste dexpressions FROM nom de table [ WHERE condition ] GROUP BY liste dexpressions2 HAVING condition sur lignes ; les expressions de liste dexpressions et condition sur lignes doivent etre form ees uniquement :
dexpressions de liste dexpressions2 de fonctions de groupe de constantes litt erales
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes


Conditions sur lensemble des lignes pour conna tre les pilotes qui conduisent au moins deux avions di erents SELECT no PIL FROM vols WHERE no PIL IS NOT NULL GROUP BY no PIL HAVING COUNT(DISTINCT no AV) >= 2 ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes


Op erateurs ensemblistes SELECT liste dexpressions1 FROM nom de table [ WHERE condition ] [ GROUP BY liste dexpressions2] UNION | UNION ALL | INTERSECT | MINUS SELECT liste dexpressions3 FROM nom de table [ WHERE condition ] [ GROUP BY liste dexpressions4] ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes


Op erateurs ensemblistes pour conna tre les villes qui sont soit des villes de d epart soit des villes darriv ees dun vol SELECT V d VILL FROM vols WHERE V d IS NOT NULL UNION SELECT V a FROM vols WHERE V a IS NOT NULL ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes


Op erateurs ensemblistes pour conna tre le nombre de vols assur es par chaque pilote SELECT no PIL, COUNT(*) NBR VOL FROM vols WHERE no PIL IS NOT NULL GROUP BY no PIL UNION ALL (SELECT no PIL, 0 FROM pilotes MINUS SELECT no PIL, 0 FROM vols) ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes


Produit cart esien SELECT liste dexpressions FROM liste de(nom de table [ alias ]) [ WHERE condition ] ; pour conna tre le co ut de chaque classe du vol V900 lorsquon les applique au vol V100 SELECT Classe, COEF PRIX * COUT VOL COUT FROM defclasses D, vols V WHERE D.no VOL = V900 AND V.no VOL = V100 :
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes


Op erateur de jointure naturelle SELECT liste dexpressions FROM liste de(nom de table [ alias ]) WHERE expr comp expr [AND | OR expr comp expre ] ; ou SELECT liste dexpressions FROM
nom de table [ alias ] INNER JOIN nom de table [ alias ] ON expr comp expr [ AND | OR expr comp expre ] ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes

Op erateur de jointure naturelle pour conna tre le nombre de places de chaque vol qui a et e aect e` a un avion SELECT no VOL, CAP FROM vols, avions WHERE vols.no AV = avions.no AV ;

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Op erateur de jointure naturelle : exemple (1)


table vols no VOL no AV V101 560 V141 101 V169 101 V631 NULL V801 240 table avions no AV CAP 101 350 240 NULL 560 250

equi-jointure sur no AV vols.no VOL V101 V141 V169 V801 vols.no AV 560 101 101 240
Odile PAPINI

avions.no AV 560 101 101 240


Bases de donn ees

avions.CAP 250 350 350 NULL

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Op erateur de jointure naturelle : exemple (2)


vols.no VOL V101 V141 V169 V801 vols.no AV 560 101 101 240 avions.no AV 560 101 101 240 avions.CAP 250 350 350 NULL

projection sur no VOL, CAP vols.no VOL V101 V141 V169 V801
Odile PAPINI

avions.CAP 250 350 350 NULL


Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes


Op erateur de semi-jointure externe SELECT liste dexpressions FROM nom de table1, nom de table2 WHERE expr table1 comp nom table2.col(+) [ AND expr table1 comp nom table2.col(+) ] ou SELECT liste dexpressions FROM
nom de table1 [ alias ] LEFT JOIN | RIGHT JOIN nom de table2 [ alias ] ON expr comp expr [ AND | OR expr comp expr ] ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

SQL comme Langage de Requ etes

Op erateur de semi-jointure externe pour conna tre le nombre de places de chaque vol (m eme lorsquaucun avion nest aect e au vol) SELECT no VOL, CAP FROM vols V LEFT JOIN avions A ON V.no AV = A.no AV ;

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Op erateur de semi-jointure externe : exemple (1)


table vols no VOL no AV V101 560 V141 101 V169 101 V631 NULL V801 240 table avions no AV CAP 101 350 240 NULL 560 250

equi-jointure sur no AV vols.no VOL V101 V141 V169 V801 vols.no AV 560 101 101 240
Odile PAPINI

avions.no AV 560 101 101 240


Bases de donn ees

avions.CAP 250 350 350 NULL

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Op erateur de semi-jointure externe : exemple (2)


vols.no VOL V101 V141 V169 V801 vols.no AV 560 101 101 240 avions.no AV 560 101 101 240 avions.CAP 250 350 350 NULL

equi-jointure externe vols.no VOL V101 V141 V169 V801 V631 vols.no AV 560 101 101 240 NULL
Odile PAPINI

avions.no AV 560 101 101 240 NULL


Bases de donn ees

avions.CAP 250 350 350 NULL NULL

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Op erateur de semi-jointure externe : exemple (2)


vols.no VOL V101 V141 V169 V801 V631 vols.no AV 560 101 101 240 NULL avions.no AV 560 101 101 240 NULL avions.CAP 250 350 350 NULL NULL

projection sur no VOL, CAP vols.no VOL V101 V141 V169 V801 V631
Odile PAPINI

avions.CAP 250 350 350 NULL NULL


Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL


Fonctions num eriques (1) SIGN(nombre) signe du nombre sp eci e ABS(nombre) valeur absolue ACOS(nombre) arc cosinus ASIN(nombre) arc sinus ATAN(nombre) arc tangente COS(nombre) cosinus SIN(nombre) sinus TAN(nombre) tangente COSH(nombre) cosinus hyperbolique SINH(nombre) sinus hyperbolique TANH(nombre) tangente hyperbolique
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL


Fonctions num eriques (2) EXP(puissance) e elev e` a la puissance LN(nombre) logarithme naturel LOG(base,nombre) logarithme en base quelconque SQRT(nombre) racine carr ee POWER(nombre,puissance) puissance dun nombre MOD(dividende,diviseur) modulo (reste de la division) CEIL(nombre) le plus petit entier plus grand que le nombre pass e en argument FLOOR(nombre) le plus grand entier plus petit ou egal au nombre pass e en argument
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL

Fonctions num eriques (3) ROUND(nombre [position]) arrondi ` a la position sp eci ee. Un entier positif (resp. n egatif) indique une position apr` es (resp. avant) la virgule. Par d efaut il y a arrondi ` a lunit e. TRUNC(nombre [position]) troncature ` a la position sp eci ee (voir ROUND). Par d efaut il y a troncature ` a lunit e.

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL


Conversion en cha ne de caract` eres (1) TO CHAR(nombre[format[nls param]])
format est une cha ne de caract` eres form ee des el ements suivants :
9 un chire quelconque 0 un chire ou un z ero si absence de chires $ symbole mon etaire am ericain B remplace le nombre 0 par des blancs MI signe du nombre post-x e sil est n egatif, un blanc post-x e sinon. S signe du nombre PR nombre mis entre < et > sil est n egatif, nombre mis entre 2 blancs sinon.
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL


Conversion en cha ne de caract` eres (2) et des el ements suivants :
D caract` ere qui s epare la partie enti` ere de la partie fractionnaire G symbole de s eparation de groupes de chires C symbole mon etaire international L symbole mon etaire local . , caract` eres ach es tels quels V9...9 multiplie le nombre par 10n o n est le nombre de 9 apr` es V. EEEE ecriture scientique du nombre RM rm ecriture en chires (entre 0 et 3999) FM ecriture scientique du nombre
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL

Conversion en cha ne de caract` eres (3) TO CHAR(nombre[format[nls param]])


nls param est une cha ne de caract` eres form ee ` a partir des expressions suivantes :
NLS NUMERIC CHARACTERS = dg LS CURRENCY = symbole mon etaire local NLS ISO CURRENCY = territoire

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL


Fonctions sur les cha ne de caract` eres : recherche de sous cha ne INSTR(cha ne, sous cha ne [position [n]]) INSTRB(cha ne, sous cha ne [position [n]]) ` partir dune position (par d a efaut 1), exprim ee en nombre de caract` eres ou doctets, relative au d ebut de la cha ne si position est positif, ou relative ` a sa n si position est n egatif, recherche la position de la ni` eme (par d efaut 1` ere) occurrence de la sous cha ne, retourne 0 lorsque la recherche echoue.
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL

Fonctions sur les cha ne de caract` eres : extraction de sous cha ne SUBSTR(cha ne, position [longueur]) SUBSTRB(cha ne, position [longueur]) ` partir dune position, extrait une sous cha a ne de longueur donn ee (par d efaut jusqu` a la n de la cha ne).

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL


Fonctions sur les cha ne de caract` eres : remplacement ou suppression REPLACE(cha ne,sous cha ne [sous cha ne de remplacement]) remplace ou supprime toutes les occurrences dune sous cha ne. LTRIM(cha ne [ensemble caract` eres ` a supprimer]) RTRIM(cha ne [ensemble caract` eres ` a supprimer]) supprime ` a gauche (ou ` a droite) de la cha ne les occurrences des caract` eres ` a supprimer (par d efaut 1 blanc).
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL


Fonctions sur les cha ne de caract` eres : r ep etition LPAD(cha ne,longueur [cha ne r ep et ee]) RPAD(cha ne,longueur [cha ne r ep et ee]) r ep etition, ` a gauche (ou ` a droite) de la cha ne, dune autre cha ne (par d efaut 1 blanc) jusqu` a obtenir la longueur sp eci ee.

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL


Fonctions sur les cha ne de caract` eres : minuscules, majuscules LOWER(cha ne) met en minuscules la cha ne. UPPER(cha ne) met en majuscules la cha ne. INITCAP(cha ne) met en majuscules les premi` eres lettres de chaque mot.

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL


Fonctions sur les cha ne de caract` eres LENGTH(cha ne) longueur de la cha ne en caract` eres LENGTHB(cha ne) longueur de la cha ne en octets CHR(code [USING NCHAR CS]) retourne le caract` ere du jeu de caract` eres de base ou du jeu de caract` eres local, qui correspond au code. ASCII(cha ne) retourne le code d ecimal du premier caract` ere.
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL


Fonctions sur les cha ne de caract` eres : conversion de type TO NUMBER(cha ne) retourne le nombre correspondant HEXTORAW(cha ne hexa) retourne la cha ne doctets correspondants CHARTOROWID(cha ne) retourne le ROWID correspondant TRANSLATE(cha ne USING CHAR CS | NCHAR CS) conversion dun type de cha ne de caract` eres bas e sur le jeu de caract` eres de base dans un type de cha ne de caract` eres bas e sur le jeu de caract` eres national, et inversement.
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL


Fonctions sur les cha ne de caract` eres : traduction (le type est inchang e) TRANSLATE(cha ne,liste source, liste destination) traduit la cha ne en remplaant chacun de ses caract` eres gurant la liste source par son correspondant dans la liste destination. CONVERT(cha ne[jeu de carac dest[jeu de carac source]]) traduction dun jeu de caract` eres dans un autre. SOUNDEX(cha ne) retourne la cha ne phon etique.
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL


Fonctions sur les dates : recherche SYSDATE retourne la date courante LAST DAY(date) retourne la derni` ere date du mois qui contient la date pass ee en argument. NEXT DAY(date, nom jour ds semaine) retourne la premi` ere date post erieure ` a la date pass ee en argument et qui correspond au jour de la semaine pass e en argument. Pour conna tre la date du prochain lundi.
SELECT NEXT DAY(SYSDATE,Lundi) ProchainLundi FROM Dual ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL


Fonctions sur les dates : calcul sur les mois ADD MONTHS(date, nbre mois) retourne la date pass ee en argument augment ee dun nombre de mois MONTHS BETWEEN(date1, date2) retourne le nombre de mois qui s eparent les 2 dates, avec eventuellement une partie fractionnaire correspondant a ` une partie de 31 jours.
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL

Fonctions sur les dates : calcul sur les mois SELECT month between(16/03/99,01/02/99) NBmois1, to date(16/03/99)-to date(01/02/99) NBjours1 month between(16/04/99,01/03/99) NBmois2, to date(16/04/99)-to date(01/03/99) NBjours2 From Dual ;

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL


Fonctions sur les dates : conversion de date NEW TIME(date,timezone1,timezone2) retourne la date pass ee en argument convertie par changement de zone horaire.
AST,ADT Atlantique standard ou d ecal e BST,BDT Bering standard ou d ecal e CST,CDT Central standard ou d ecal e EST,EDT Oriental standard ou d ecal e GMT Greenwich HST,HDT Hawaii-Alaska standard ou d ecal e MST,MDT Mountain standard ou d ecal e NST Terre-Neuve standard PST,PDT Pacique standard ou d ecal e YST,YDT Yukon standard ou d ecal e
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL


Fonctions sur les dates : conversion de date TO CHAR(date[format[nls langue]]) conversion dune date en une cha ne de caract` eres. TO DATE(cha ne[format[nls langue]]) conversion dune cha ne de caract` eres en date.
format est une cha ne de caract` eres constitu ee de mots cl es nls langue est une cha ne de la forme : NLS DATE LANGUAGE = langue langue : french, american, arabic, german ... (46 langues support ees)
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL


Fonctions sur les dates : conversion de date : formats (1) SCC, CC si` ecle avec et sans signe. SYEAR, YEAR ann ee en lettres avec et sans signe. SYYYY, YYYY ann ee sur 4 chires avec et sans signe. Y,YYY ann ee sur 4 chires avec virgule. RRRR ann ee sur 4 chires ou 2 chires avec correction ann ee 2000. YYY ann ee sur 3 chires (les 3 derniers). YY ann ee sur 2 chires (les 2 derniers). RR ann ee sur 2 chires avec correction ann ee 2000. Y le dernier chire de lann ee.
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL


Fonctions sur les dates : conversion de date : formats (2) BC, AD indication BC (Before Christ) ou AD (Ano Domini). Q N du trimestre de lann ee (1-4). MONTH mois en toutes lettres sur 9 caract` eres. MON abr eviation du mois sur 3 lettres. MM N du mois dans lann ee. WW N de la semaine dans lann ee (1-53). IW N de la semaine ISO dans lann ee (1-52 ou 1-53). W N de la semaine dans le mois. DAY jour en toutes lettres sur 9 caract` eres. DY abr eviation du jour (2 ou 3 lettres).
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL


Fonctions sur les dates : conversion de date : formats (3) DDD N du jour dans lann ee. DD N du jour dans le mois. D N du jour dans la semaine. J jour du calendrier Julien. AM, PM indication AM ou PM. HH, HH12 heure sur 12 heures. HH24 heure sur 24 heures. MI minutes. SS secondes par minute (0-59). SSSSS secondes par jour (0-86399). cha ne la cha ne est reproduite telle quelle
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL


Fonctions sur les dates : formats de conversion les caract` eres / , . ; : sont reproduits tels quels. utilisation des majuscules et des nimuscules pr ecise le format de sortie.
exemple : MONTH donnera JUIN alors que Month donnera Juin.

suxes :
TH ajout du suxe ordinal SP nombre en toutes lettres SPTH, THSP nombre en toutes lettres avec ajout du suxe ordinal
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL


Fonctions sur les dates : formats de conversion modicateurs :
FM suppression de blancs et de z eros FX obligation de respecter exactement le format, les blancs sont signicatifs

acher la date courante sous di erentes formes : SELECT


to char(sysdate,DAY DD MONTH YYYY) fmt1, to char(sysdate,FM DAY DD MONTH YYYY) fmt2, to char(sysdate,DD/MM/YYYY HH24 :MI :SS) fmt3

FROM Dual ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL

Fonctions sur les dates : troncature et arrondi dune date TRUNC(date[format]) retourne une date tronqu ee selon le format sp eci e ROUND(date[format]) retourne une date arrondie selon le format sp eci e

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL


troncature et arrondi dune date : format (1) SCC, CC si` ecle (arrondi au milieu du si` ecle) SYEAR, YEAR ann ee (arrondi au 1er juillet) SYYYY, YYYY YYY, YY, Y IYYY, IYY, IY, I ann ee ISO (arrondi au 1er juillet) Q trimestre (arrondi au 16` eme jour du 2` eme mois du trimestre) MONTH, MON, MM, RMmois (arrondi au 16` eme jour)
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL


troncature et arrondi dune date : format (2) WW semaine (7 jours) d enie ` a partir du 1er janvier (arrondi au 5` eme jour) IW semaine ISO (arrondi au vendredi) DAY, DY, D premier jour de la semaine, d epend du pays : lundi/France, dimanche/US, (arrondi au 5` eme jour) DDD, DD, J jour, par d efaut lorsque le format est absent (arrondi ` a la demi-journ ee) HH, HH12, HH24 heure (arrondi ` a la demi-heure) MI minute (arrondi ` a 30 secondes)
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL

troncature et arrondi dune date : exemple Le premier jour de la premi` ere semaine de lann ee :
SELECT
to char(trunc(to date(06/01/99),WW),FM Day DD), to char(trunc(to date(06/01/99),IW),FM Day DD) from Dual ;

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL


Sous-requ etes imbrication de sous-requ etes dans la clause WHERE SELECT projection FROM nom de table WHERE condition
(SELECT projection FROM nom de table WHERE condition, ) ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL


Sous-requ etes : donnant une seule ligne SELECT projection FROM nom de table WHERE expr op
(SELECT projection FROM nom de table WHERE condition, ) ;

op { = , <>, < , <= , > , >= }


Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL


Sous-requ etes : donnant une seule ligne pour conna tre les vols qui utilisent le m eme avion que celui utilis e par le vol V101 SELECT no VOL FROM vols WHERE no Av = (SELECT no Av
FROM vols WHERE no VOL = V101 ) ;

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL


Sous-requ etes donnant au plus une ligne SELECT projection FROM nom de table WHERE (expr1 , exprn ) op
(SELECT (expr1 , exprn ) FROM nom de table WHERE condition, ) ;

op {= , <>}
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL


Sous-requ etes donnant au plus une ligne pour conna tre le vols qui assure le m eme trajet que celui du vol V101 mais 2 jours plus tard SELECT no VOL FROM vols WHERE (V d, V a, D d, D a) = (SELECT (V d, V a, D d+2, D a+2)
FROM vols WHERE no VOL = V101 ) ;

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL


Sous-requ etes donnant 0, 1 ou plusieurs lignes SELECT projection FROM nom de table WHERE expr NOT IN
(SELECT (projection FROM ) ;

SELECT projection FROM nom de table WHERE expr op ANY | ALL


(SELECT (projection FROM ) ; op { = , <>, < , <= , > , >= }
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL


Sous-requ etes donnant 0, 1 ou plusieurs lignes pour conna tre le vols qui sont assur es par un pilote qui habite Paris SELECT no VOL FROM vols WHERE no PIL IN (SELECT no PIL
FROM pilotes WHERE VILLE = Paris ) ;

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL

Sous-requ etes donnant 0, 1 ou plusieurs lignes pour conna tre les pilotes qui nassurent aucun vol SELECT no PIL FROM pilotes WHERE no PIL NOT IN (SELECT no PIL
FROM vols WHERE no PIL IS NOT NULL ) ;

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL

Sous-requ etes dexistence SELECT projection FROM nom de table [Alias] WHERE [NOT] EXISTS
(SELECT (projection FROM ) ;

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Fonctions diverses pour requ etes SQL


Sous-requ etes dexistence pour conna tre les avions qui sont conduits par au moins un pilote de Marseille SELECT DISTINCT no AV FROM vols WHERE EXISTS (SELECT *
FROM pilotes WHERE no PIL = vols.no PIL AND VILLE = Marseille) ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Les vues
Les vues une vue est une table virtuelle r esultat dune requ ete r ole dune vue
r eduire la complexit e syntaxique des requ etes d enir les sch emas externes. d enir des contraintes dint egrit e. d enir un niveau additionnel de s ecurit e en restreignant lacc` es ` a un sous ensemble de lignes et/ ou de colonnes.

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Les vues (exemple)


No VOL it200 it201 it202 it203 it204 No AV 100 100 101 102 104 No PIL 1 2 1 3 3 vols Vd nice paris paris paris nice Va paris toulouse nice toulouse paris Hd 7 11 12 9 17 Ha 8 12 13 11 18

Cr eation dune vue ligne ligne Va paris toulouse nice


Bases de donn ees

Vd nice paris paris


Odile PAPINI

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Les vues : cr eation


Les vues cr eation dune vue de sch ema externe
CREATE [OR REPLACE ] [ FORCE | NO FORCE ] VIEW nom de table [(liste de nom de colonne)] AS requ ete [WITH CHECK OPTION | WITH READ ONLY ] ; cr eation de la vue correspondant aux vols qui partent de Paris CREATE VIEW vols d Paris AS SELECT no VOL, V a, H d, H a FROM vols WHERE V d = Paris ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Les vues : interrogation


interroger une vue
interrogation de la vue correspondant aux vols qui partent de Paris SELECT * FROM vols d Paris ;

supprimer une vue


DROP VIEW nom de vue ; suppression de la vue correspondant aux vols qui partent de Paris DROP VIEW vols d Paris ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Requ etes avec vues


Exemples pour conna tre les pilotes qui assurent le plus grand nombre de vols
CREATE VIEW nbre de vols par pil AS SELECT no PIL, count(*) AS NBR VOLS FROM vols V WHERE no PIL IS NOT NULL GROUP BY no PIL ; SELECT no PIL FROM nbre de vols par pil WHERE NBR VOLS =
(SELECT max( NBR VOLS) FROM nbre de vols par pil) ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Les vues : mise ` a jour


op erations sur les vues
INSERT UPDATE DELETE

restrictions : Ces instructions ne sappliquent pas aux vues qui contiennent :


une jointure un op erateur ensembliste : UNION, INTERSECT, MINUS une clause GROUP BY, CONNECT BY, ORDER BY ou START WITH la clause DISTINCT, une expression ou une pseudo-colonne dans la liste de s election des colonnes.
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Requ etes avec vues


cr eation de la vue pour la personne qui d enit les vols
CREATE VIEW def vols AS SELECT no VOL, V d, D d, V a, D a FROM vols WHERE no VOL IS NULL AND no PIL IS NULL ;

d enir un nouveau vol


INSERT INTO def vols VALUES (V999, Marseille, to date(01/05/07 10 :30, DD/MM/RR HH :MI), Paris, to date(01/05/07 10 :30, DD/MM/RR HH :MI)) ;

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Requ etes avec vues


supprimer un vol non aect e
DELETE FROM def vols WHERE no VOL = V998 ;

modier un vol non aect e


UPDATE def vols SET D d= D d + 1 / 24, D a= D a + 1 / 24 WHERE no VOL = V998 ;

conna tre les vols non aect es


SELECT * FROM def vols ;

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Requ etes avec vues


cr eation de la vue pour la personne qui d enit les vols
CREATE VIEW def vols AS SELECT no VOL, V d, D d, V a, D a FROM vols WHERE no VOL IS NULL AND no PIL IS NULL ;

modier un vol non aect e


UPDATE def vols SET D d= D d + 1 / 24, D a= D a + 1 / 24 WHERE no VOL = V998 ;

conna tre les vols non aect es


SELECT * FROM def vols ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Requ etes avec vues


cr eation de la vue pour la personne qui aecte un avion et un pilote ` a un vol
CREATE VIEW aect vols AS SELECT no VOL, no AV, no PIL FROM vols ;

aecter un avion et un pilote ` a un nouveau vol


UPDATE aect vols SET no AV = 101, no PIL = 5050 WHERE no VOL = V999 AND no AV IS NUL AND no PIL IS NULL ;

aecter un nouvel avion ` a un vol


UPDATE aect vols SET no AV = 202 WHERE no VOL = V999 ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Requ etes avec vues


cr eation de la vue pour la personne qui aecte un avion et un pilote ` a un vol
CREATE VIEW aect vols AS SELECT no VOL, no AV, no PIL FROM vols ;

permuter laectation des pilotes de 2 vols


UPDATE aect vols A1 SET no PIL =
(SELECT no PIL FROM aect vols A2 WHERE (A1.no VOL = V100 AND A2.no VOL = V200) OR (A1.no VOL = V200 AND A2.no VOL = V100)) WHERE no VOL = V100 OR no VOL = V200 ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Les vues : contr ole de mise ` a jour


cr eation dune vue de v erication : contr ole de linsertion ou de la modicaion de ligne
CREATE VIEW nom de vue AS requ ete WITH CHECK OPTION ;

v erication des contraintes de domaine (interdiction des valeurs inconnues)


CREATE VIEW a avions AS SELECT * FROM avions WHERE no AV > 0 AND CAP > 1 AND NOM AV IN (Airbus, Boeing, Caravelle) WITH CHECK OPTION ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Requ etes avec vues

v erication des contraintes de domaine (autorisation des valeurs inconnues)


CREATE VIEW aa avions AS SELECT * FROM avions WHERE no AV > 0 AND (CAP IS NULL OR CAP > 1) AND (NOM AV IS NULL OR IN (Airbus, Boeing, Caravelle)) WITH CHECK OPTION ;

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Requ etes avec vues

Contraintes de r ef erence 1) valider linsertion dans la table r ef erenant 2) valider la suppression dans la table r ef erenc ee

r` egle dad equation : les insertions et les suppressions se font toujours au travers des vues

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Requ etes avec vues


Exemple : expression de cl es etrang` eres de la relation vols validation des insertions dans vols
CREATE VIEW a avions AS SELECT * FROM vols WHERE no AV > 0 AND (no PIL IS NULL OR no PIL IN(SELECT no PIL FROM pilotes)) AND (NOM AV IS NULL OR IN (SELECT NOM AV FROM avions)) WITH CHECK OPTION ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Requ etes avec vues


Exemple : expression de cl es etrang` eres de la relation vols validation des suppressions dans avions et dans pilotes
CREATE VIEW d avions AS SELECT * FROM avions A WHERE NOT EXISTS ( SELECT * FROM vols V WHERE A.no AV = V.no AV) ; CREATE VIEW d pilotes AS SELECT * FROM pilotes P WHERE NOT EXISTS ( SELECT * FROM vols V WHERE P.no PIL = V.no PIL) ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Requ etes avec vues


Exemple : ajout des contraintes de domaine de 2 fa cons agr egation
CREATE VIEW ad avions AS SELECT * FROM avions A WHERE no AV > 0 AND CAP > 1 AND NOM AV IN (Airbus, Boeing, Caravelle) AND NOT EXISTS ( SELECT * FROM vols V WHERE A.no AV = V.no AV) WITH CHECK OPTION ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Requ etes avec vues


Exemple : ajout des contraintes de domaine de 2 fa cons modulaire
CREATE VIEW a avions AS SELECT * FROM avions WHERE no AV > 0 AND CAP > 1 AND NOM AV IN (Airbus, Boeing, Caravelle) AS SELECT * FROM pilotes P WITH CHECK OPTION ; CREATE VIEW ad avions AS SELECT * FROM a avions WHERE NOT EXISTS ( SELECT * FROM vols V WHERE A.no AV = V.no AV) ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Interrogation Traitement de labsence de valeur Ordonner les r eponses Fonctions de groupe et regroupement de lignes Op erateurs de lalg` ebre relationnelle Fonctions pour requ etes SQL et sous-requ etes Vues

Requ etes avec vues


Expression de contraintes g en erales Exemple : emp echer laectation dun m eme avion ` a deux vols di erents dont les tranches horaires se chevauchent CREATE VIEW a vols AS SELECT * FROM vols V1 WHERE NOT EXISTS (
SELECT * FROM vols V2 WHERE V1.no AV = V2.no AV AND NVL(V2.D a, V2.D d) >= NVL(V1.D d, V1.D a) AND NVL(V1.D a, V1.D d) >= NVL(V2.D d, V2.D a)) WITH CHECK OPTION ;
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

SQL : langage de contr ole de donn ees (LCD)


S ecurit e des donn ees condentialit e
gestion des r oles et des utilisateurs attribution de privil` eges aux r oles et aux utilisateurs d enition de ltres (protection de don ees condentielles, contr ole dint egrit e)

p erennit e
gestion des transactions

int egit e
gestion des transactions
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

SQL : langage de contr ole de donn ees (LCD)


transaction : s equence dop erations manipulant des donn ees v erient les propri et es suivantes :
atomicit e coh erence ind ependance permanence

contr ole des transactions : COMMIT : valide la transaction en cours ROLLBACK : annule la transaction en cours
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Gestion des utilisateurs et des privil` eges

cr eation de r ole
CREATE ROLE nom-de-r ole [IDENTIFIED BY mot-de passe ] ;

ajout, modication, suppression de mot de passe


ALTER ROLE nom-de-r ole [IDENTIFIED BY mot-de passe ] ;

suppression de r ole
DROP ROLE nom-de-r ole ;

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Gestion des utilisateurs et des privil` eges


cr eation dutilisateur
CREATE USER nom-dutilisateur [IDENTIFIED BY mot-de passe ] ;

ajout, modication, suppression de mot de passe


ALTER USER nom-dutilisateur [IDENTIFIED BY mot-de passe ] ;

suppression de r ole
DROP USER nom-dutilisateur ;

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Gestion des utilisateurs et des privil` eges


attribution de privil` eges
GRANT systeme-privileges | ALL [privileges ] TO liste-roles-utilisateurs | PUBLIC [WITH ADMIN OPTION ] ;

systeme-privileges :
CREATE CREATE CREATE CREATE CREATE CREATE CREATE CREATE ROLE SEQUENCE SESSION SYNONYM PUBLIC SYNONYM TABLE USER VIEW
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Gestion des utilisateurs et des privil` eges


attribution de privil` eges sur des objets oracle
GRANT liste-droits ON nom-composant TO liste-roles-utilisateurs [WITH GRANT OPTION ] ;

liste-droits :
SELECT INSERT UPDATE DELETE ALTER REFERENCES ALL [PRIVILEGES ]
Odile PAPINI Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Gestion des utilisateurs et des privil` eges

suppression de privil` eges


REVOKE liste-systeme-privileges FROM liste-roles-utilisateurs

suppression de privil` eges sur des objets oracle


REVOKE liste-privileges ON nom-composant FROM liste-roles-utilisateurs

Odile PAPINI

Bases de donn ees

Introduction SQL comme LDD SQL comme Langage de Requ etes SQL comme LCD

Gestion des utilisateurs et des privil` eges

attribution de r oles
GRANT liste-roles TO liste-roles-utilisateurs [WITH ADMIN OPTION ] ;

suppression de r oles
REVOKE liste-roles FROM liste-roles-utilisateurs

Odile PAPINI

Bases de donn ees