Le langage SQL pour Oracle - partie 1 : SQL comme LDD



Documents pareils
Création et Gestion des tables

Bases de Données relationnelles et leurs systèmes de Gestion

Olivier Mondet

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Le langage SQL (première partie) c Olivier Caron

Bases de données Cours 4 : Le langage SQL pour ORACLE

Pour les débutants. langage de définition des données

Le Langage De Description De Données(LDD)

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

CREATION WEB DYNAMIQUE

Compétences Business Objects

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

TP3 : Creation de tables 1 seance

Bases de données relationnelles

1/ Présentation de SQL Server :

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

16H Cours / 18H TD / 20H TP

MySQL / SQL EXEMPLES

Partie 0 : Gestion des tablespace et des utilisateurs... 3

TP Contraintes - Triggers

Introduction au Système de Gestion de Base de Données et aux Base de Données

PHP 5. La base de données MySql. A. Belaïd 1

Historisation des données

Les BASES de DONNEES dans WampServer

Cours: Administration d'une Base de Données

Langage SQL : créer et interroger une base

Le Langage SQL version Oracle

SQL Historique

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Cours Bases de données 2ème année IUT

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

WEB DEVELOPER SGBD SYSTEME DE GESTION DE BASES DE DONNEES L étudiant sera capable :

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres.

FileMaker 13. Guide de référence SQL

A QUOI SERVENT LES BASES DE DONNÉES?

Présentation du module Base de données spatio-temporelles

I4 : Bases de Données

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Système de Gestion de Bases de Données Relationnelles. MySQL. Youssef CHAHIR

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Intégrité sémantique dans les bases de données relationnelles

1. Base de données SQLite

Devoir Data WareHouse

1 Introduction et installation

Bases de données et sites WEB

Bases de Données Avancées

OpenPaaS Le réseau social d'entreprise

A QUOI SERVENT LES BASES DE DONNÉES?

Modélisation et Gestion des bases de données avec mysql workbench

1 Position du problème

Bible MySQL! La première version de MySQL est apparue en Cette première version est créée pour un usage personnel à partir de msql.

Notes de cours : bases de données distribuées et repliquées

Auto-évaluation Oracle: cours de base

Les bases de données

I. MySQL : Serveur et SGBD

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

Structured Query Language

Bases de données relationnelles & SQL

Support de cours. Introduction à SQL et MySQL. 2003, Sébastien Namèche

Application web de gestion de comptes en banques

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

Corrigés détaillés des exercices

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry

Initiation à SQL. Le langage de communication avec une base de données relationnelles. Application avec PostgreSQL. Nathalie Camelin 2011/2012

Bases de données Outils de gestion

Cours Base de données relationnelles. M. Boughanem, IUP STRI

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

Ora2Pg Performances. (C) 2013 Gilles Darold

Objectifs du TP : Initiation à Access

NF26 Data warehouse et Outils Décisionnels Printemps 2010

1 Modélisation d une base de données pour une société de bourse

Université de Nice Sophia-Antipolis. Langage SQL. version 5.7 du polycopié. Richard Grin

Sybase Adaptive Server Enterprise 15

Gestion des utilisateurs et de leurs droits

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

Intégrité des données

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Bases de données avancées

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

LE LANGAGE SQL2 1. INTRODUCTION

SQL Server 2000, Analysis Services et DTS

Vincent Augusto

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

Bases de Données Avancées

Gestion de base de données

Bases de données. Yamine AIT AMEUR. INPT-ENSEEIHT DIMA 2 Rue Charles Camichel Toulouse Cedex 7

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Cours SQL. Base du langage SQL et des bases de données

MODE OPERATOIRE OPENOFFICE BASE

Bases de données élémentaires Maude Manouvrier

Administration des bases de données. Jean-Yves Antoine

Transcription:

Le langage SQL pour Oracle - partie 1 : SQL comme LDD 1

SQL : Introduction SQL : Structured Query Langage langage de gestion de bases de donn ees relationnelles pour Définir les données (LDD) interroger la base de données (Langage de requêtes) manipuler les données (LMD) contrôler l accès aux données (LCD) 2

Identificateurs Lettre suivie par : lettre ou chiffre ou _ ou ou $ Chaîne de caractères entre guillemets Maximum 30 caractères Différent d un mot clé : 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 3

Tables : relations d un schéma relationnel stockées table : formée de lignes et de colonnes SQL2 : nom d une table précédée du nom d un schéma ORACLE : nom de schéma remplacé par le nom d utilisateur qui a créé la table par défaut, le schéma est le nom de l utilisateur connecté 4

Tables : colonnes toutes les données d une colonne sont du même type identificateur unique pour les colonnes d une même table 2 colonnes dans 2 tables différentes peuvent avoir le même nom nom complet d une colonne comprend le nom complet de la table à laquelle elle appartient exemple : DEPARTEMENTS.DEPARTEMENT ID ou HR.DEPARTEMENTS.DEPARTEMENT ID 5

Types de données SQL2 : types pour les chaînes de caractères types numériques types temporels (date, heure, ) SQL2 n a pas de type pour les données volumineuses (images, sons) SQL2 ne permet pas à l utilisateur de créer ses propres types 6

Types pour les chaînes de caractères : CHAR(taille) Chaînes de caractères de longueur fixe codage en longueur fixe : remplissage de blancs taille comprise entre 1 et 2000 octets VARCHAR(taille_max) mais de préférence VARCHAR2(taille_max) Chaînes de caractères de longueur variable taille comprise entre 1 et 4000 octets constantes Chaînes de caractères entre guillemets. 7

Types pour les chaînes de caractères : exemples NCHAR(5) : chaînes de 5 caractères VARCHAR2(20) : chaînes de 20 caractères au plus Administration, Marketing 8

Types numériques SQL2 : types numériques pour les entiers : SMALLINT pour 2 octets INTEGER pour 4 octets types numériques pour les décimaux à virgule flottante : REAL DOUBLE PRECISION ou FLOAT types numériques pour les décimaux à virgule fixe : DECIMAL(nb chiffres, nb décimales) NUMERIC(nb chiffres, nb décimales) Constantes exemples : 43.8, -13, 5.3E-6 9

Types numériques Oracle : ORACLE accepte tous les types numériques de SQL2 mais il les traduit dans ses propres types NUMBER : nombre en virgule flottante avec jusqu à 38 chiffres significatifs NUMBER(nb chiffres, nb décimales) : nombre en virgule fixe 10

Types temporels SQL2 : DATE : pour les dates TIME : pour les heures, minutes et secondes TIMESTAMP : pour un moment précis : date et heure, minutes et secondes (précision jusqu à la microseconde). 11

Types temporels Oracle : DATE remplace DATE et TIME de SQL2 DATE correspond à une date avec précision jusqu à la seconde Constantes : Exemples : 1/05/2007 ou 1 MAY 2007 12

Type booléen SQL2 : BIT Pour enregistrer la valeur d un bit Exemples : BIT(1), BIT(4) Non supporté par Oracle. 13

Exemple jouet : Schéma de relations : AVION(NumAV, NomAV, CAP, LOC) PILOTE(NumPIL,NomPIL,VILLE) VOL(NumVOL, NumAV, NumPIL, Vd, Va, Hd, Ha) 14

Les trois tables correspondantes : AVION NumAV NomAV CAP LOC 100 Airbus 300 Nice 101 Airbus 300 Paris 102 Carav 200 Toulouse PILOTE NumPIL NomPIL VILLE 1 Laurent Nice 2 Sophie Paris 3 Claude Grenoble VOL NumVOL NumAV NumPIL Vd Va Hd Ha it100 100 1 Nice Paris 7 8 it101 100 2 Paris Toulouse 11 12 it102 101 1 Paris Nice 12 13 it103 102 3 Grenoble Toulouse 9 11 it104 101 3 Toulouse Grenoble 17 18 15

AVION(NumAV, NomAV, CAP, LOC) numav NUMBER(4) NomAV VARCHAR2(20) CAP NUMBER(4) LOC VARCHAR2(15) PILOTE(NumPIL, NomPIL, VILLE) NumPIL NUMBER(4) NomPIL VARCHAR2(20) VILLE VARCHAR2(15) VOL(NumVOL, NumAV, NumPIL, Vd, Va, Hd, Ha) NumVOL VARCHAR2(5) NulAV NUMBER(4) NumPIL NUMBER(4) Vd VARCHAR2(15) Va VARCHAR2(15) Hd DATE Ha DATE 16

Création de table : Syntaxe : CREATE TABLE nom de table (liste de définition_de_colonne, [liste de contrainte_de_table]) ; définition_de_colonne : := nom_de_colonne (nom_de_domaine ou type) [liste de contrainte_de_colonne] [DEFAULT valeur_par_défaut] 17

Création 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) 18

Création 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) 19

Exemple : création de la table avion à partir du schéma : AVION(NumAV, NomAV, CAP, LOC) CREATE TABLE AVION ( NumAV NUMBER(4) CONSTRAINT PK_AVION PRIMARY KEY, NomAV VARCHAR2(20), CAP NUMBER(4) CONSTRAINT Dom_CAP_AVION CHECK (CAP 4), LOC VARCHAR2(15) ) ; 20

Création de la table VOL à partir du schéma : VOL(NumVOL, NumAV, NumPIL, Vd, Va, Hd, Ha) Contraintes de colonnes? Contraintes de table? 21

CREATE TABLE VOL ( NumVOL VARCHAR2(5), NumAV NUMBER(4), NumPIL NUMBER(4), Vd VARCHAR2(15) NOT NULL, Va VARCHAR2(15) NOT NULL, Hd DATE, Ha DATE, CONSTRAINT PK_VOL PRIMARY KEY(NumVol), CONSTRAINT FK_VOL_NumAV FOREIGN KEY (NumAV) REFERENCES AVION, CONSTRAINT FK_VOL_NumPIL FOREIGN KEY(NumPIL) REFERENCES PILOTE, CONSTRAINT C1_VOL CHECK (Vd <> Va), CONSTRAINT C2 VOL CHECK (Hd < Ha) ) ; 22

Suppression de table : DROP TABLE nom; Quand une table est supprimée, ORACLE : efface tous les index qui y sont attachés quelque soit le propriétaire efface tous les privilèges qui y sont attachés MAIS les vues et les synomymes se référant à cette table ne sont pas supprimés 23

Modification de table : ALTER TABLE nom_de_table modification_de_table ; modification de table : := ADD COLUMN définition_de_colonne ADD CONSTRAINT contrainte_de_table DROP COLUMN nom_de_colonne DROP CONSTRAINT nom_de_contrainte 24

Exemple : Ajout d un colonne à la table vols de schéma : VOL(NumVOL,NumAV,NumPIL,Vd,Va,Hd,Ha) ALTER TABLE VOL ADD COLUM COUT_VOL NUMBER(8) ; le schéma devient : VOL(NumVOL,NumAV,NumPIL,Vd,Va,Hd,Ha, COUT VOL) 25

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ête ; 26

Exemples : ajouter un avion dans la table AVION en respectant l ordre des colonnes INSERT INTO AVION VALUES (100, Airbus, 200, Paris ) ; ajouter un avion dans la table AVION sans connaître l ordre INSERT INTO AVION (NumAV, CAP, LOC, NomAV) VALUES (101, 200, Paris, Airbus ) ; ajouter un avion dans la table avions dont la localisation est INDEFINI INSERT INTO AVION (NumAV, NomAV, CAP) VALUES (102, Airbus, 200); ou INSERT INTO AVION VALUES (102, Airbus, 200, NULL) ; 27

Suppression de lignes d une table DELETE [FROM] nom de table [WHERE condition] ; Exemples : vider la table AVION DELETE FROM AVION; supprimer de la table AVION tous les avions dont la capacité est inférieur à 100 DELETE FROM AVION WHERE CAP < 100 ; 28

Modification 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ête Exemple : modifier la capacité de l avion num éro 100 UPDATE AVION SET CAP = 300 WHERE NumAV = 100 ; 29