Présentation du langage SQL / ORACLE

Slides:



Advertisements
Présentations similaires
26/ 04/ 2007 Auto-Jointure : SELECT * FROM Nom_relation R1 INNER JOIN Nom_relation R2 ON Condition_de_jointure; Problèmes Si des attributs de même nom.
Advertisements

L’optimiseur ORACLE L’optimiseur ORACLE suit une approche classique: Génération de plusieurs plans d’exécution. Estimation du coût de chaque plan généré.
Bases de Données Avancées: Bases de Données Relationnelles
Manipulation des données dans SQL
Langage de manipulation de données Ensemble de commandes permettant : – modifier la base : ajout, modification et suppression – interroger la base ex :
SQL - Subtilités.
4 relations –EMPLOYE –SERVICE –LOCALITE –ADRESSE.
Georges Gardarin 1 LE LANGAGE DE REQUETES SQL l Origines et Evolutions l SQL1 86: la base l SQL1 89: l'intégrité l SQL2 92: la nouvelle norme l SQL3 98:
Programme Introduction aux BD et aux SGBD Le modèle relationnel
Les Requêtes S.Q.L « Structured Query Language)
T ECHNOLOGIES O RACLE Création et gestion des objets © sebvita.com.
Les fonctions.
Année universitaire Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données.
LE LANGAGE SQL : LDD La création de tables L’ordre CREATE CREATE TABLE nom_de_table (Nom_colonne Type_colonne, Nom_colonne Type_colonne,
LMD: Langage de Manipulation de Données
(Procedural Language / Structured Query Language)
Langage Définition des
Le Langage d’Interrogation de Données LID Multi-table Jointures
10 Copyright © Oracle Corporation, Tous droits réservés. Autres concepts relatifs aux déclencheurs.
Regrouper les Données avec les Fonctions de Groupe
LE LANGAGE SQL Langage de manipulation de données (LMD)
Mise en œuvre du langage MDX - 1 ère partie- Présentation de lexemple et des outils utilisés -1-
T ECHNOLOGIES O RACLE Manipulation des données © sebvita.com.
Les fonctions de groupes Gestion des transactions
SQL Partie 3 : (LID : Langage d'interrogation de données)
Cours N°2 Base de Données & Langage SQL
1 LE LANGAGE DE REQUETES SQL Origines et Evolutions SQL1 86: la base SQL1 89: l'intégrité.
Mise en œuvre du langage MDX
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 SQL: Contraintes et Triggers Chapitre 5,
SQL partie3: Langage de définition des données
Bases de Données Avancées - TP2: SQL
Manipulation des données Requêtes simples
Initiation aux bases de données et à la programmation événementielle
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
Les transactions.
OPTIMISATION DE BASE DE DONNEES ORACLE
Limiter et trier des données
Introduction Le SQL (Structured  Query Language) est un langage universel de gestion des bases de données. Il a une triple fonction : LDD Langage de Définition.
Cours 4b: Introduction au SQL, le langage des SGBD Relationnels
SQL partie 3. SQL est un langage de définition de données SQL est un langage de définition de données (LDD), c'est-à-dire qu'il permet de créer des tables.
Le langage SQL LDD : Langage de Définition de Données
 CREATE TABLE  DROP TABLE  ALTER TABLE  INSERT  UPDATE  DELETE  SELECT interrogation 2 Instruction de mise à jour structure.
Partie2: Introduction à SQL LANGAGE DE REQUETES RELATIONNEL CHAPITRE 4: INTERROGATION DES BASES DE DONNÉES.
Mise en œuvre du langage MDX
DEFINITION DES DONNEES : schéma conceptuel. Schéma conceptuel instructiondescription CREATE TABLEcréation d'une relation ALTER TABLEmodification de la.
Sélection de colonnes (la projection)
Les Contraintes.
Cours SQL.
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
Copyright  Oracle Corporation, Tous droits réservés. 2 Sélection et Tri des Lignes Retournées par un SELECT.
Création et Gestion de Tables
Le Langage de Définition de Données LDD
3 Copyright © Oracle Corporation, Tous droits réservés. Créer des fonctions.
 L’information est conservée sous forme de tables  Contient: ◦ Un nom ◦ Une clé primaire ◦ Une liste de colonnes ◦ Les informations/données (sous forme.
Structured Query Language 1/34. SQL Types de données Langage de Définition de Données (LDD) Langage de Manipulation de Données (LDM) Langage de Contrôle.
Les bases de données Séance 8 Jointures.
Le langage SQL.
Initiation aux bases de données et à la programmation événementielle Cours N°2 : langage d’interrogation de données. (Les requêtes statistiques et autres).
Le Langage d ’ Interrogation des donn é es (LID) Module 2.
Introduction au langage PL/SQL
Le Langage de Manipulation de Données LMD Module 6.
CONCEPTS BD - Synthèse journée 1 :
Bases de données : modèlisation et SGBD Séance 3.
1 Les bases de données Séance 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
1 Les bases de données Séance 6 L ’extraction de données Le SELECT.
Langage de manipulation de données (LMD)
SQL LID – INTERROGATIN DES DONNEES
Manipulation D’Une Base De Données
Remarque : Un nombre ou une lettre en gras fait référence à un chapitre entier ou à une annexe entière. A Affichage des dates par défaut 02-06, Ajouter.
Transcription de la présentation:

Présentation du langage SQL / ORACLE Caractéristiques Bâti sur le modèle relationnel. Destiné à un large public (informaticien ou non). Langage non procédural. Le seul langage pour dialoguer avec la base de données. Son exploitation procédurale passe le PLSQL.

SQL ORACLE ALTER SESSION SET ROLE CREATE SELECT ALTER INSERT DROP Langage Manipulation Données - LMD - Langage Définition Données - LDD - Contrôle Transactions Contrôle sessions Contrôle Système ALTER SESSION SET ROLE SELECT INSERT UPDATE DELETE TRUNCATE CALL EXPLAIN PLAN LOCK TABLE CREATE ALTER DROP GRANT REVOKE ANALYZE AUDIT COMMENT COMMIT ROLLBACK SAVEPOINT SET TRANSACTION ALTER SYSTEM

Langage Manipulation des Données LMD

ORDRE SELECT SELECT [DISTINCT | ALL] { * | { [schema.]{table | view | snapshot}.* | expr } [ [AS] c_alias ] [, { [schema.]{table | view | snapshot}.* | expr } [ [AS] c_alias ] ] ... } FROM [schema.]{table | view | subquery | snapshot}[@dblink] [t_alias] [, [schema.]... ] ... [WHERE condition ] [START WITH condition] [CONNECT BY condition] [[GROUP BY expr [, expr] ... [HAVING condition] ] [{UNION | UNION ALL | INTERSECT | MINUS} SELECT command ] [ORDER BY {expr|position} [ASC | DESC] [, {expr|position} [ASC | DESC]] ...] [FOR UPDATE [OF [[schema.]{table | view}.]column [, [[schema.]{table | view}.]column] ..] [NOWAIT]

ORDRE SELECT Clause WHERE Opérateurs de comparaison : = != <> < > <= >= Prédicat de comparaison : BETWEEN v1 AND v2 IN (v1,v2,v3) IN (SELECT * ……) LIKE ‘’%chaine%’’ chaîne impérativement en majuscule. IS NULL / IS NOT NULL. AND OR NOT. EXISTS Clause ORDER BY Tri par ordre croissant ASC ou décroissant DESC sur une ou plusieurs colonnes. UNION UNION ALL INTERSECT MINUS Opérations ensemblistes sur les résultats des requêtes. UNION : toutes les lignes sélectionnées, mais sans doublons. UNION ALL : toutes les lignes sélectionnées avec doublons. INTERSECT : Les lignes communes entre les deux requêtes. MINUS : Les lignes sélectionnées dans une requête et non dans la deuxième requête. Clause CONNECT BY … START WITH Effectue une extraction des lignes selon un ordre hiérarchique prédéfini au niveau de la table. Utilisée dans le cas des relations réflexives.

ORDRE SELECT Exemple SELECT no,nom,titre,no_sup FROM e_emp CONNECT BY PRIOR no=no_sup START with titre=‘PRESIDENT’; Ordre GROUP BY … HAVING Réalise des regroupements sur plusieurs enregistrements selon un ou plusieurs critères, en vue d’un affichage groupé et/ou de l’utilisation des fonctions de groupe. Les fonctions de groupe FONCTION ROLE AVG Moyenne arithmétique SUM Somme MIN Minimum d’une liste de valeurs MAX Maximum d’une liste de valeurs COUNT Nombre d’apparition (ligne ou colonne) VARIANCE variance STDDEV Écart type

ORDRE SELECT Exemples SELECT MIN(salaire) "MIN", MAX(salaire) "MAX", AVG(salaire) MOYENNE, STDDEV(salaire) Ecart_type, SUM(salaire) SOMME FROM e_emp WHERE service_no=41; SELECT count(*) "Nombre Employés" FROM e_emp; Remarques importantes Les colonnes figurant dans un SELECT ayant une clause GROUP ne sont que : Des colonnes figurant dans la clause GROUP BY. Des fonctions de groupe. SELECT service_no,SUM(salaire) SALAIRES GROUP by service_no; SELECT MAX(count(*)) GROUP BY service_no;

Sélection Projection Equi-jointure/Jointure externe Comportements d’une Requête SQL

Opérateurs et fonctions ORDRE SELECT Opérateurs et fonctions Non typés Types numériques Type alphanumérique Type date SUBSTR INSTR UPPER LOWER LTRIM LPAD … SYSDATE ADD_MONTHS NEXT_DAY LAST_DAY MONTHS_BETWEEN DECODE CASE GREATEST LEAST NVL ABS CEIL FLOOR MOD POWER ROUND SQRT COS …

Fonctions non typées DECODE DECODE( crit, val1, result1 [, val2, result2] ... [, default] ) Elle renvoie result1 si critère =val1, result2 si critère=val2,… ou défault dans tous les autres cas. Ex : SELECT DECODE (deptno, 10, 'ACCOUNTING', 20, 'RESEARCH', 30, 'SALES', 40, 'OPERATION', 'NONE') FROM emp;, CASE CASE WHEN cond1 THEN expr1 [cond2 THEN expr2 …] [ELSE expr] END En fonction de la condition vérifiée, l'expression expr est éxecutée. GREATEST GREATEST(expr1,expr2,…) Renvoie la plus grande valeur parmi expr1,expr2,… LEAST LEAST(expr1,expr2, Renvoie la plus petite valeur parmi expr1,expr2,… NVL NVL(expr1,expr2) Renvoie la valeur de expr1 si elle est NOT NULL, sinon expr2.

Fonctions numériques Certaines des fonctions numériques utilisées sous SQL Fonction Syntaxe Rôle ABS ABS(n NUMBER) : NUMBER Valeur absolue de n CEIL CEIL(n NUMBER) : NUMBER Entier immédiatement >= à n FLOOR FLOOR((n NUMBER) : NUMBER Entier immédiatement <= à n MOD MOD(n1 NUMBER,n2 NUMBER) : NUMBER Reste de division de n1 sur n2 POWER POWER(n1 NUMBER,e NUMBER) : NUMBER Renvoie n1 puissance e ROUND ROUND(left NUMBER,right BINARY_INTEGER) : NUMBER SIGN SIGN(n NUMBER) : SIGNTYPE Renvoie un signe SQRT SQRT(n NUMBER) : NUMBER Racine carrée de n COS COS(n NUMBER) : NUMBER Cosinus de n SIN SIN(n NUMBER) : NUMBER Sinus de n TAN TAN(n NUMBER) : NUMBER Tangente de n LN LN(n NUMBER) : NUMBER Logarithme népérien EXP EXP(n NUMBER) : NUMBER Exponentielle de n LOG LOG(n NUMBER) : NUMBER Logarithme décimal de n

Fonctions alphanumériques Syntaxe Rôle LENGTH LENGTH(str VARCHAR2) : numérique Longueur d'une chaîne SUBSTR SUBSTR(str VARCHAR2,pos,length) : chaîne Renvoie une sous-chaîne INSTR INSTR(str1 VARCHAR2,str2 VARCHAR2,pos,nocc) Pos et nocc sont facultatives Position d'une ss-chaîne dans une chaîne UPPER UPPER(str VARCHAR2) : chaîne Renvoie en MAJUSCULE LOWER LOWER(str VARCHAR2) : chaîne Renvoie en minuscule LPAD LPAD(char1,n [,char2]) pad est facultatif Complète à gauche la chaîne par des pads. RPAD RPAD(str VARCHAR2,len,pad) : chaîne LTRIM LTRIM(VARCHAR2[,set]) Supprime les sets à gauche RTRIM Supprime les sets à droite REPLACE REPLACE(char, search_string [,replacement_string]) Remplacement d'une ss-chaîne dans une chaîne ASCII ASCII(ch CHAR) Code ASCII d'un caractère INITCAP INITCAP(str VARCHAR2) : chaîne Renvoie première lettre en CAPITAL CHR CHR(n NUMBER) : NUMBER Caractère du code ASCII n

Fonctions DATE Fonction Syntaxe Rôle SYSDATE Retourne la date OS ADD_MONTHS ADD_MONTHS(date1,n) Rajoute n mois à la date date1 MONTHS_BETWEEN MONTHS_BETWEEN(date1,date2) Nombre de mois entre date1 et date2 LAST_DAY LAST_DAY(date1) Date du dernier du mois de date1 NEXT_DAY NEXT_DAY(date1,str) Date du prochain jour indiqué par str TO_DATE TO_DATE(char [, fmt [, 'nlsparams'] ]) Conversion d'une chaîne de caractère en date selon le format fmt ROUND ROUND(date1[,fmt]) Arrondit date1 selon le format fmt

ORDRE SELECT INSERT INTO [schema.]{table | view | subquery }[@dblink] [ (column [, column] ...) ] {VALUES (expr [, expr] ...) | subquery } Exemple INSERT INTO e_continent VALUES (7,'Arctiue'); 1 ligne insérée

ORDRE UPDATE UPDATE [schema.]{table | view | subquery}[@dblink] [alias] SET { (column [, column] ...) = (subquery) | column = { expr | (subquery) } } [, { (column [, column] ...) = (subquery) | column = { expr | (subquery) } } ] ... [WHERE condition] Exemple UPDATE emp SET enom='BENOIT', salaire=2000 WHERE empno=7155; 1 ligne mise à jour

ORDRE DELETE DELETE [FROM] [schema.]{table | view}[@dblink] [alias] [WHERE condition] Exemple DELETE FROM emp WHERE empno=7155; 1 ligne supprimée

ORDRE TRUNCATE TRUNCATE {TABLE [schema.]table | CLUSTER [schema.]cluster} [ {DROP | REUSE} STORAGE] Permet la suppression de toutes les lignes d'une table.

ORDRE EXPLAIN PLAN Cette commande permet de déterminer le plan d'exécution d'un requête SQL, en donnant le coût d'exécution en terme de nombre d'accès. Syntaxe EXPLAIN PLAN FOR Requête SQL; Les résultats sont consigés dans la view TABLE_PLAN, créée par le script UTLXPLAN.sql SQL>desc TABLE_PLAN Exemple SELECT * FROM SCOTT.EMP; SELECT LPAD(' ',2*(LEVEL-1)||operation "Opération",options,object_name,position FROM plan_table;

ORDRE LOCK TABLE Cette ordre permet de poser des verrous sur les enregistrements d'une table. Syntaxe LOCK TABLE [schema.]{table | view}[@dblink] [, [schema.]{table | view}[@dblink] ]... IN lockmode MODE [NOWAIT] Les valeurs du paramètre lockmode sont : ROW SHARE ROW EXCLUSIVE SHARE UPDATE SHARE SHARE ROW EXCLUSIVE EXCLUSIVE Exemple LOCK TABLE emp IN ROW SHARE MODE NOWAIT Le mode NOWAIT : Si la table est déjà verrouillée, on est saisi par un message Oracle sans attente.

Langage Définition des Données LDD ALTER CREATE DROP

TYPES DE DONNES Type Syntaxe Remarques / Exemple NUMBER NUMBER [(total [ , Décimal])] Total est max égal à 38. Salaire NUMBER(7,2) CHAR CHAR [(longueur)] Nom CHAR(15) VARCHAR2 VARCHAR2 [(longueur)] Le type chaîne le plus efficace sous Oracle DATE Date_Naiss DATE RAW RAW (longueur) Géré comme le VARCHAR2, mais pas affichable. Seq RAW(100) LONG Permet de stocker des chaînes d'une longueur max de 2 Go. Texte LONG LONG RAW Stockage de fichiers binaires comme les images, son et de la vidéo. Longueur max est 2Go Photo LONG RAW

TYPES DE DONNES Type Syntaxe Remarques / Exemple BLOB Binaires de type long CLOB Caractères codées sur 2 octets NCLOB Caractères codés sur 4 octets ROWID Chaîne de 18 caractère donnant l'adresse unique d'un enregistrement. Les LOB (Large Objects) permettent le stockage de 4 Go de données dans la base, ils existent depuis la version 8 d'Oracle, il existe 3 types (BLOB, CLOB, NCLOB).

LES TABLES Création CREATE TABLE [schema.]table ( { column datatype [DEFAULT expr] [column_constraint] ... | table_constraint} [,{ column datatype [DEFAULT expr] [column_constraint] ... | table_constraint} ]...) [ [PCTFREE integer] [PCTUSED integer] [INITRANS integer] [MAXTRANS integer] [TABLESPACE tablespace] [STORAGE storage_clause] [ RECOVERABLE | UNRECOVERABLE ] [ PARALLEL ( [ DEGREE { integer | DEFAULT } ] [ INSTANCES { integer | DEFAULT } ] ) | NOPARALLEL ] [ CACHE | NOCACHE ] | [CLUSTER cluster (column [, column]...)] ] [ ENABLE enable_clause | DISABLE disable_clause ] ... [AS subquery]