9 Copyright © 2004, Oracle. Tous droits réservés. Utiliser des instructions LDD pour créer et gérer des tables.

Slides:



Advertisements
Présentations similaires
T ECHNOLOGIES O RACLE Création et gestion des objets © sebvita.com.
Advertisements

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,
SQL partie3: Langage de définition des données
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.
Créer des packages.
 C'est une fenêtre par laquelle les informations d'une table peuvent être visualisées et changées.  C'est une table virtuelle: ◦ elle n'existe pas ◦
Manipulation des Données
DEFINITION DES DONNEES : schéma conceptuel. Schéma conceptuel instructiondescription CREATE TABLEcréation d'une relation ALTER TABLEmodification de la.
Module 4 : Implémentation de l'intégrité des données.
Gérer les rôles.
Les Contraintes.
21/04/2015© Robert Godin. Tous droits réservés.1 6Gestion des contraintes d’intégrité en SQL n Contrainte d'intégrité statique – respectée pour chacun.
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.
4 Copyright © Oracle Corporation, Tous droits réservés. Gérer les sous-programmes.
13 Copyright © Oracle Corporation, Tous droits réservés. Gérer l'intégrité des données.
Le Langage de Définition de Données LDD. 2 Les ordres et les objets Ordre CREATE –Création de la structure de l’objet  DD Ordre DROP –Suppression des.
Les bases de données Séance 8 Jointures.
Le langage SQL.
NIVEAU LOGIQUE Vues. Fenêtre dynamique sur la base Ses données proviennent d'autres tables ou d'autres vues.
INTRODUCTION AUX BASES DE DONNEES Base et métabase
Les bases de données Séance 4 Construction du Modèle Physique (la BDD)
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.
RAPPEL SUR LES BASES DE DONNÉES, LE SQL 1 er trimestre V1.0 06/01/2015.
SQL partie 5 1 LMD create – update – primary key secondary key.
Le langage de définition de données B.T.S. S.I.O – SI3 –
SQL : 4 fonctions d'exploitation de SGBD SQL (Structured Query Language, traduisez Langage de requêtes structuré) est un langage informatique ayant pour.
1- phpMyAdmin 3ème partie : Manipulation des données Le langage SQL 2- Gérer les tables 3- Gérer les données.
SQL partie 1 Langage de Définition de Données. SQL est un langage de définition de données  SQL est un langage de définition de données (LDD), c'est-à-dire.
ملخص Initiation à la sgbdr
Structured Query Language SQL DDL
Langage de manipulation de données (LMD)
Oracle.
Structured Query Language
Collecte de données CAPI
Généralité sur les bases de données
Les bases de données et le modèle relationnel
Langage de Manipulation des Données LMD
Technologies d’intelligence d’affaires
SQL LID – INTERROGATIN DES DONNEES
SQL LMD FICHE 4.6.
Manipulation D’Une Base De Données
Structure D’une Base De Données Relationnelle
Langage d’interrogation des Données LID
I Copyright © 2004, Oracle. Tous droits réservés. Introduction.
1 Copyright © 2004, Oracle. Tous droits réservés. Extraire des données à l'aide de l'instruction SQL SELECT.
2 Copyright © 2004, Oracle. Tous droits réservés. Restreindre et trier les données.
Bases de données sous Access. Initiation aux bases de données  Structure d’une base de données.
3 Copyright © 2004, Oracle. Tous droits réservés. Utiliser des fonctions monoligne afin de personnaliser la sortie.
4 Copyright © 2004, Oracle. Tous droits réservés. Afficher des données agrégées à l'aide des fonctions de groupe.
5 Copyright © 2004, Oracle. Tous droits réservés. Afficher des données de plusieurs tables.
6 Copyright © 2004, Oracle. Tous droits réservés. Utiliser des sous-interrogations pour résoudre des interrogations.
7 Copyright © 2004, Oracle. Tous droits réservés. Utiliser les opérateurs ensemblistes.
8 Copyright © 2004, Oracle. Tous droits réservés. Manipuler les données.
10 Copyright © 2004, Oracle. Tous droits réservés. Créer d'autres objets de schéma.
11 Copyright © 2004, Oracle. Tous droits réservés. Gérer les objets à l'aide de vues du dictionnaire de données.
Préface. Préface-3 Profil Avant de commencer Avant de commencer ce cours, vous devez savoir utiliser une interface graphique. Vous devez en outre être.
Préface Introduction Objectifs du chapitre I-2 Objectifs du cours I-3 Oracle10g I-4 Oracle Database 10g I-6 Oracle Application Server 10g I-7 Oracle Enterprise.
C Copyright © 2004, Oracle. Tous droits réservés. Syntaxe des jointures Oracle.
D Copyright © 2004, Oracle. Tous droits réservés. Utiliser SQL*Plus.
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.
1. LE LANGAGE SQL DDL Version 2 - Janvier Le langage SQL-DDL
7 Contraintes d’intégrité en SQL
Semaine 3 Retour sur la semaine 2 Plan de séance
Info Bases de données avancées
© Robert Godin. Tous droits réservés.
1. LE LANGAGE SQL DDL Version 1 - Mai 2009 corrigé le 11/2/2011
Systèmes d’Information et Application
DONNÉE DE BASE QM Manuel de formation. Agenda 2  Introduction  Objectif de la formation  Données de base QM: Caractéristique de contrôle Catalogue.
Transcription de la présentation:

9 Copyright © 2004, Oracle. Tous droits réservés. Utiliser des instructions LDD pour créer et gérer des tables

Copyright © 2004, Oracle. Tous droits réservés. Objectifs A la fin de ce chapitre, vous pourrez : répartir les principaux objets de base de données en catégories modifier la structure d'une table répertorier les types de données disponibles pour les colonnes créer une table simple comprendre la façon dont les contraintes sont créées lors de la création de la table décrire le fonctionnement des objets de schéma

Copyright © 2004, Oracle. Tous droits réservés. Objets de base de données ObjetDescription Table Unité de stockage de base ; constituée de lignes VueReprésente de façon logique des sous- ensembles de données d'une ou plusieurs tables SéquenceGénère des valeurs numériques IndexAméliore les performances de certaines interrogations SynonymeAffecte d'autres noms aux objets

Copyright © 2004, Oracle. Tous droits réservés. Règles d'appellation Les noms des tables et des colonnes : Doivent commencer par une lettre Doivent comporter de 1 à 30 caractères Doivent contenir uniquement les caractères A–Z, a–z, 0–9, _, $ et # Ne doivent pas dupliquer le nom d'un autre objet appartenant au même utilisateur Ne doivent pas être un mot réservé du serveur Oracle

Copyright © 2004, Oracle. Tous droits réservés. Vous devez : –Posséder le privilège CREATE TABLE –Disposer d'une zone de stockage Indiquez : –Le nom de la table –Le nom de la colonne, son type de données et sa taille Instruction CREATE TABLE CREATE TABLE [schema.]table (column datatype [DEFAULT expr][,...]);

Copyright © 2004, Oracle. Tous droits réservés. Référencer les tables d'un autre utilisateur Les tables appartenant à d'autres utilisateurs ne résident pas dans le schéma de l'utilisateur. Vous devez utiliser le nom du propriétaire comme préfixe pour ces tables. USERBUSERA SELECT * FROM userB.employees; SELECT * FROM userA.employees;

Copyright © 2004, Oracle. Tous droits réservés. Indiquez une valeur par défaut pour une colonne lors d'une insertion. Les valeurs littérales, les expressions et les fonctions SQL sont des valeurs légales. Le nom d'une autre colonne, ou une pseudo-colonne, sont des valeurs illégales. Le type de données par défaut doit correspondre au type de données de la colonne. Option DEFAULT... hire_date DATE DEFAULT SYSDATE,... CREATE TABLE hire_dates (id NUMBER(8), hire_date DATE DEFAULT SYSDATE); Table created.

Copyright © 2004, Oracle. Tous droits réservés. Créer des tables Créez la table. Vérifiez la création de la table. DESCRIBE dept CREATE TABLE dept (deptno NUMBER(2), dname VARCHAR2(14), loc VARCHAR2(13), create_date DATE DEFAULT SYSDATE); Table created.

Copyright © 2004, Oracle. Tous droits réservés. Types de données Type de donnéesDescription VARCHAR2(size) Données de type caractère de longueur variable CHAR(size) Données de type caractère de longueur fixe NUMBER(p,s) Données numériques de longueur variable DATE Valeurs de date et d'heure LONG Données de type caractère de longueur variable (jusqu'à 2 Go) CLOB Données de type caractère (jusqu'à 4 Go) RAW et LONG RAW Données binaires raw BLOB Données binaires (jusqu'à 4 Go) BFILE Données binaires stockées dans un fichier externe (jusqu'à 4 Go) ROWID Système de numérotation en base 64, représentant l'adresse unique d'une ligne dans sa table

Copyright © 2004, Oracle. Tous droits réservés.

Types de données date-heure Vous pouvez utiliser plusieurs types de données date- heure : Type de données Description TIMESTAMP Date avec partie décimale des secondes INTERVAL YEAR TO MONTH Stocké sous forme d'intervalle d'années et de mois INTERVAL DAY TO SECOND Stocké sous forme d'intervalle de jours, d'heures, de minutes et de secondes

Copyright © 2004, Oracle. Tous droits réservés. Types de données date-heure Le type de données TIMESTAMP est une extension du type DATE. Il permet de stocker l'année, le mois et le jour du type de données DATE, les heures, les minutes et les secondes, ainsi que la valeur de la partie décimale des secondes. Vous pouvez éventuellement indiquer le fuseau horaire. TIMESTAMP[(fractional_seconds_precision)] WITH TIME ZONE TIMESTAMP[(fractional_seconds_precision)] WITH LOCAL TIME ZONE

Copyright © 2004, Oracle. Tous droits réservés.

Types de données date-heure Le type de données INTERVAL YEAR TO MONTH permet le stockage d'une période à l'aide des champs date-heure YEAR et MONTH. Le type de données INTERVAL DAY TO SECOND permet le stockage d'une période en jours, heures, minutes et secondes. INTERVAL YEAR [(year_precision)] TO MONTH INTERVAL DAY [(day_precision)] TO SECOND [(fractional_seconds_precision)]

Copyright © 2004, Oracle. Tous droits réservés.

Type de données INTERVAL DAY TO SECOND Le type de données INTERVAL DAY TO SECOND permet le stockage d'une période en jours, heures, minutes et secondes. INTERVAL '4 5:12:10.222' DAY TO SECOND(3) Indique 4 jours, 5 heures, 12 minutes, 10 secondes et 222 millièmes de seconde. INTERVAL '4 5:12' DAY TO MINUTE Indique 4 jours, 5 heures et 12 minutes INTERVAL '400 5' DAY(3) TO HOUR Indique 400 jours et 5 heures INTERVAL '11:12: ' HOUR TO SECOND(7) Indique 11 heures, 12 minutes et 10, secondes

Copyright © 2004, Oracle. Tous droits réservés. Inclure des contraintes Les contraintes appliquent des règles au niveau table. Les contraintes empêchent la suppression d'une table s'il existe des dépendances. Les types de contrainte suivants sont pris en charge : – NOT NULL – UNIQUE – PRIMARY KEY – FOREIGN KEY – CHECK

Copyright © 2004, Oracle. Tous droits réservés. Règles relatives aux contraintes Vous pouvez nommer une contrainte, ou le serveur Oracle génère un nom à l'aide du format SYS_Cn. Vous pouvez créer une contrainte à différents instants : –Lors de la création de la table –Après la création de la table Définissez une contrainte au niveau colonne ou au niveau table. Vous pouvez afficher une contrainte via le dictionnaire de données.

Copyright © 2004, Oracle. Tous droits réservés. Définir des contraintes Syntaxe : Contrainte au niveau colonne : Contrainte au niveau table : CREATE TABLE [schema.]table (column datatype [DEFAULT expr] [column_constraint],... [table_constraint][,...]); column,... [CONSTRAINT constraint_name] constraint_type (column,...), column [CONSTRAINT constraint_name] constraint_type,

Copyright © 2004, Oracle. Tous droits réservés. Définir des contraintes Contrainte au niveau colonne : Contrainte au niveau table : CREATE TABLE employees( employee_id NUMBER(6) CONSTRAINT emp_emp_id_pk PRIMARY KEY, first_name VARCHAR2(20),...); CREATE TABLE employees( employee_id NUMBER(6), first_name VARCHAR2(20),... job_id VARCHAR2(10) NOT NULL, CONSTRAINT emp_emp_id_pk PRIMARY KEY (EMPLOYEE_ID)); 1 2

Copyright © 2004, Oracle. Tous droits réservés. Contrainte NOT NULL Garantit que les valeurs NULL ne sont pas autorisées pour la colonne : Contrainte NOT NULL (aucune ligne ne peut contenir de valeur NULL pour cette colonne) Absence de contrainte NOT NULL (n'importe quelle ligne peut contenir une valeur NULL pour cette colonne) Contrainte NOT NULL …

Copyright © 2004, Oracle. Tous droits réservés. Contrainte UNIQUE EMPLOYEES Contrainte UNIQUE INSERT INTO Non autorisé : existe déjà Autorisé …

Copyright © 2004, Oracle. Tous droits réservés. Contrainte UNIQUE Définie au niveau table ou au niveau colonne : CREATE TABLE employees( employee_id NUMBER(6), last_name VARCHAR2(25) NOT NULL, VARCHAR2(25), salary NUMBER(8,2), commission_pct NUMBER(2,2), hire_date DATE NOT NULL,... CONSTRAINT emp_ _uk UNIQUE( ));

Copyright © 2004, Oracle. Tous droits réservés. Contrainte PRIMARY KEY DEPARTMENTS PRIMARY KEY INSERT INTO Non autorisé (valeur NULL) Non autorisé (50 existe déjà) …

Copyright © 2004, Oracle. Tous droits réservés. Contrainte FOREIGN KEY DEPARTMENTS EMPLOYEES FOREIGN KEY INSERT INTO Non autorisé (9 n'existe pas) Autorisé PRIMARY KEY … …

Copyright © 2004, Oracle. Tous droits réservés. Contrainte FOREIGN KEY Définie au niveau table ou au niveau colonne : CREATE TABLE employees( employee_id NUMBER(6), last_name VARCHAR2(25) NOT NULL, VARCHAR2(25), salary NUMBER(8,2), commission_pct NUMBER(2,2), hire_date DATE NOT NULL,... department_id NUMBER(4), CONSTRAINT emp_dept_fk FOREIGN KEY (department_id) REFERENCES departments(department_id), CONSTRAINT emp_ _uk UNIQUE( ));

Copyright © 2004, Oracle. Tous droits réservés. Contrainte FOREIGN KEY : mots-clés FOREIGN KEY : définit la colonne dans la table enfant au niveau contrainte de table REFERENCES : identifie la table et la colonne dans la table parent ON DELETE CASCADE : supprime les lignes dépendantes dans la table enfant lorsqu'une ligne de la table parent est supprimée ON DELETE SET NULL : convertit les valeurs des clés étrangères dépendantes en valeurs NULL

Copyright © 2004, Oracle. Tous droits réservés. Contrainte CHECK Définit une condition à laquelle chaque ligne doit satisfaire Les expressions suivantes ne sont pas autorisées : –Références aux pseudo-colonnes CURRVAL, NEXTVAL, LEVEL et ROWNUM –Appels des fonctions SYSDATE, UID, USER et USERENV –Interrogations qui font référence à d'autres valeurs dans d'autres lignes..., salaryNUMBER(2) CONSTRAINT emp_salary_min CHECK (salary > 0),...

Copyright © 2004, Oracle. Tous droits réservés. CREATE TABLE : exemple CREATE TABLE employees ( employee_id NUMBER(6) CONSTRAINT emp_employee_id PRIMARY KEY, first_name VARCHAR2(20), last_name VARCHAR2(25) CONSTRAINT emp_last_name_nn NOT NULL, VARCHAR2(25) CONSTRAINT emp_ _nn NOT NULL CONSTRAINT emp_ _uk UNIQUE, phone_number VARCHAR2(20), hire_date DATE CONSTRAINT emp_hire_date_nn NOT NULL, job_id VARCHAR2(10) CONSTRAINT emp_job_nn NOT NULL, salary NUMBER(8,2) CONSTRAINT emp_salary_ck CHECK (salary>0), commission_pct NUMBER(2,2), manager_id NUMBER(6), department_id NUMBER(4) CONSTRAINT emp_dept_fk REFERENCES departments (department_id));

Copyright © 2004, Oracle. Tous droits réservés. UPDATE employees * ERROR at line 1: ORA-02291: integrity constraint (HR.EMP_DEPT_FK) violated - parent key not found UPDATE employees SET department_id = 55 WHERE department_id = 110; Violation de contraintes Le département 55 n'existe pas.

Copyright © 2004, Oracle. Tous droits réservés. Violation de contraintes Vous ne pouvez pas supprimer une ligne contenant une clé primaire utilisée comme clé étrangère dans une autre table. DELETE FROM departments WHERE department_id = 60; DELETE FROM departments * ERROR at line 1: ORA-02292: integrity constraint (HR.EMP_DEPT_FK) violated - child record found

Copyright © 2004, Oracle. Tous droits réservés. Créer une table avec une sous-interrogation Créez une table et insérez des lignes en combinant l'instruction CREATE TABLE et l'option AS subquery. Mettez en correspondance le nombre de colonnes indiqué avec le nombre de colonnes de sous- interrogation. Définissez les colonnes avec des noms et des valeurs par défaut. CREATE TABLE table [(column, column...)] AS subquery;

Copyright © 2004, Oracle. Tous droits réservés. CREATE TABLE dept80 AS SELECT employee_id, last_name, salary*12 ANNSAL, hire_date FROM employees WHERE department_id = 80; Table created. Créer une table avec une sous-interrogation DESCRIBE dept80

Copyright © 2004, Oracle. Tous droits réservés. Instruction ALTER TABLE Utilisez l'instruction ALTER TABLE pour : Ajouter une colonne Modifier une colonne existante Définir une valeur par défaut pour la nouvelle colonne Supprimer une colonne

Copyright © 2004, Oracle. Tous droits réservés. Supprimer une table Toutes les données de la table sont supprimées, ainsi que sa structure. Toutes les transactions en cours sont validées. Tous les index sont supprimés. Toutes les contraintes sont supprimées. Vous ne pouvez pas annuler l'instruction DROP TABLE. DROP TABLE dept80; Table dropped.

Copyright © 2004, Oracle. Tous droits réservés. Synthèse Dans ce chapitre, vous avez appris à utiliser l'instruction CREATE TABLE pour créer une table et inclure des contraintes : répartir les principaux objets de base de données en catégories modifier la structure d'une table répertorier les types de données disponibles pour les colonnes créer une table simple comprendre la façon dont les contraintes sont créées lors de la création de la table décrire le fonctionnement des objets de schéma

Copyright © 2004, Oracle. Tous droits réservés. Présentation de l'exercice 9 Cet exercice porte sur les points suivants : créer des tables créer une table à l'aide de l'instruction CREATE TABLE AS vérifier que des tables existent supprimer des tables

Copyright © 2004, Oracle. Tous droits réservés.