Langage Définition des

Slides:



Advertisements
Présentations similaires
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é.
Advertisements

Bases de Données Avancées: Bases de Données Relationnelles
Manipulation des données dans SQL
Programme Introduction aux BD et aux SGBD Le modèle relationnel
Découverte de SQL Server par la pratique pour les administrateurs expérimentés Module 4 : Stockage des données, Tables dans SQL Server Bertrand Audras.
SGBD – Oracle Cours BD LF2 info
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:
T ECHNOLOGIES O RACLE Création et gestion des objets © sebvita.com.
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)
Contrôles d'accès aux données
10 Copyright © Oracle Corporation, Tous droits réservés. Autres concepts relatifs aux déclencheurs.
Gérer les tablespaces et les fichiers de données
Présentation du langage SQL / ORACLE
Initiation aux bases de données et à la programmation événementielle
Les Webcasts Groupe des Utilisateurs SQL Server Avril 2014 – Statistiques Incrémentales Fred Pichaut – Microsoft Senior.
Les fonctions de groupes Gestion des transactions
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é.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Procédures stockées CPI-SQLServer.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 SQL: Contraintes et Triggers Chapitre 5,
SQL partie3: Langage de définition des données
Création de bases de données
Bases de Données Avancées - TP2: SQL
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
OPTIMISATION DE BASE DE DONNEES ORACLE
Procédures Stockées Schedule: Timing Topic 60 minutes Lecture
Fichiers de données Fichiers de contrôles Fichiers de journalisations Fichiers de paramètres d’initialisation.
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
Modélisation des données Niveau conceptuel DON-2 V0-0.
Chap 4.5 : SQL (LDD) LDD : Langage de définition de données Réfs : Manuel p105.
 CREATE TABLE  DROP TABLE  ALTER TABLE  INSERT  UPDATE  DELETE  SELECT interrogation 2 Instruction de mise à jour structure.
Gérer la sécurité des mots de passe et les ressources
Mise à jour des Fichiers Redo Log
Mise en œuvre du langage MDX
Créer des packages.
Copyright  Oracle Corporation, All rights reserved. 19 Gestion des Privilèges.
(Ou groupes d ’utilisateurs)
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.
Structure de stockage et relations
Copyright  Oracle Corporation, All rights reserved. 20 Gestion des Rôles ( ou regroupement des privilèges)
Gérer les rôles.
Les Contraintes.
Gérer les utilisateurs
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.
Cours SQL.
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
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.
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.
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
NIVEAU LOGIQUE Vues. Fenêtre dynamique sur la base Ses données proviennent d'autres tables ou d'autres vues.
Les vues, indexes, séquences.  Qu’est ce qu’une vue 1. Une vue est une vision partielle ou particulière des données d'une ou plusieurs tables de la base.
Le Langage de Manipulation de Données LMD Module 6.
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.
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.
Structured Query Language SQL DDL
Généralité sur les bases de données
10 Copyright © 2004, Oracle. Tous droits réservés. Créer d'autres objets de schéma.
1. LE LANGAGE SQL DDL Version 2 - Janvier Le langage SQL-DDL
1. LE LANGAGE SQL DDL Version 1 - Mai 2009 corrigé le 11/2/2011
Transcription de la présentation:

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

TYPES DE DONNEES 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 DONNEES 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 Syntaxe formelle 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]

Caractéristiques/Exemples LES TABLES Caractéristiques/Exemples Chaque table est stockée dans un espace logique appelé TABLESPACE. Il est possible de créer une table et de la renseigner par les résultats d’un ordre SELECT. Les types de données sont les mêmes que les types des colonnes du SELECT CREATE TABLE bonus1(nom,remuneration) AS SELECT nom,salaire FROM emp; Une table ne peut contenir plus de 1000 colonnes (255 sous la version 7.x). une table contient au plus 1 colonne de type LONG ou LONG RAW. Exemple 1 CREATE TABLE employes ( emp_no NUMBER(3) CONSTRAINT pk_01 PRIMARY KEY, nom VARCHAR2(25) NOT NULL, prn VARCHAR2(35), dt_nais DATE NOT NULL, sal NUMBER(11,2) NOT NULL, sup_no NUMBER(3) CONSTRAINT fk_01 REFERENCES superieur(sup_no) TABLESPACE users STORAGE (INITIAL 1M NEXT 1M MINEXTENTS 1 MAXEXTENTS 10));

Caractéristiques/Exemples LES TABLES Caractéristiques/Exemples Modification Exemple 2 CREATE TABLE employes ( no_emp NUMBER, no_service NUMBER, CONSTRAINT no_emp_pk PRIMARY KEY (no_emp), CONSTRAINT no_service_fk FOREIGN KEY (no_service) REFERENCES service (no_service) TABLESPACE tbs_emp; Remarques L’utilisation du TABLESPACE est très importante. Les contraintes peuvent concernées, soit les colonnes, soit les tables. Les noms des contraintes permettent l’activation ou la désactivation de la contrainte.

LES TABLES Modification Modification des tables ALTER TABLE Changer le type de données d’une colonne vide Modification de la structure des tables Marquer les colonnes comme inutilisables Augmenter ou diminuer la taille d’une colonne. Ajouter et supprimer des colonnes d’une table Modifier la contrainte NOT NULL. Créer ou supprimer une contrainte

LES TABLES Modification Syntaxe formelle ALTER TABLE [schema.]table [ADD { { column datatype [DEFAULT expr] [column_constraint] ...| table_constraint} | ( { column datatype [DEFAULT expr] [column_constraint] ...| table_constraint} [, { column datatype [DEFAULT expr] [column_constraint] ...| table_constraint} ] ... ) } ] [ MODIFY { column [datatype] [DEFAULT expr] [column_constraint] ... | (column [datatype] [DEFAULT expr] [column_constraint] ... [, column datatype [DEFAULT expr] [column_constraint] ...] ...) } ] [PCTFREE integer] [PCTUSED integer] [INITRANS integer] [MAXTRANS integer] [STORAGE storage_clause] [DROP drop_clause] ... [ALLOCATE EXTENT [( [SIZE integer [K|M] ] [DATAFILE 'filename'] [ INSTANCE integer] )] [ PARALLEL ( [ DEGREE { integer | DEFAULT } ] [ INSTANCES { integer | DEFAULT } ] ) | NOPARALLEL ] [ CACHE | NOCACHE ] [ ENABLE { enable_clause | TABLE LOCK } | DISABLE { disable_clause | TABLE LOCK } ] ...

LES TABLES Modification Syntaxe usuelle ALTER TABLE nom_table [MODIFY(col1 type1 [NOT NULL] [, col1 type1 [NOT NULL] , …])] [ADD(col1 type1 [NOT NULL] [, col1 type1 [NOT NULL] , …])] [DROP col1,col2,…)] [ADD CONSTRAINT clause_contrainte] [SET UNUSED COLUMN nom_col] [DROP UNUSED COLUMNS] Exemple 1 ALTER TABLE employes MODIFY dt_nais NULL; Exemple 2 ALTER TABLE employes ADD (dt_rec DATE NOT NULL,adresse VARCHAR2(50)); Exemple 3 ALTER TABLE employes ADD (age NUMBER(2) NOT NULL) DROP (dt_nais,dt_rec); Exemple 4 ALTER TABLE employes ADD CONSTRAINT emp_sup_no CHECK (sup_no!=no);

LES TABLES Changement de nom Syntaxe RENAME ancien_nom TO nouveau_nom ; Exemple RENAME employe TO emps; Remarque La syntaxe est la même pour tous objets du schéma : table, vue, séquence, synonyme, …

Suppression des lignes LES TABLES Suppression des lignes Syntaxe TRUNCATE TABLE [schema.]table [ {DROP | REUSE} STORAGE] ; Rôle Supprime toutes les lignes d’une table. Préserve la structure de la table. Commande irréversible, car ne nécessitant pas de validation. Cette commande est du ressort du DBA. Exemple TRUNCATE TABLE emps;

LES TABLES Suppression tables Syntaxe DROP TABLE [schema.]table [CASCADE CONSTRAINTS] ; Rôle Supprime toutes les lignes d’une table. Supprime la structure de la table. L’espace de la table est libéré. CASCADE CONSTRAINTS permet de supprimer la table même si l’une de ses colonnes sont référencées par d’autres tables. Exemple DROP TABLE emps CASCADE CONSTRAINTS;

LES TABLES Les partitions Avantages des partitions Partitionner une table revient à À diviser une grande table en plusieurs tables plus petites Avantages des partitions Améliorer les performances au niveau recherche pour les requêtes SQL. Faciliter les sauvegardes et les restaurations de la base. Prévenir contre la corruption des fichiers de la base.

LES TABLES Les partitions TYPES PARTITIONS Partitionnement par plage Partitionnement par hachage Création des partitions en fonction d'une plage de valeurs d'une colonne Partition en fonction de valeurs générées par hachage sur une clé donnée.

LES TABLES Les partitions Syntaxe 1 : par plage CREATE TABLE table (col1 type_donnée1, …, coln type_donnéen) PARTITION BY RANGE (col) (PARTITION part1 VALUES THAN (val1) TABLESPACE tbs1, … (PARTITION partn VALUES THAN (MAXVALUE) TABLESPACE tbsn); Syntaxe 1 : par Hachage (col1 type_donnée1, …, coln type_donnéen) PARTITION BY HASH (col) PARTITION n STORE IN (tbs1,tbs2,…tbsn);

LES VUES - VIEWS Définition - Syntaxe VUE - VIEW Table virtuelle basée sur un SELECT Données de la vue se trouvent dans les tables qui la sous-tendent Chaque appel de la vue invoque le SELECT Cataloguer des ordres SQL complexes. Restreindre l'accès à certaines des colonnes d'une ou de plusieurs tables. Cacher la structure physique de la base de données.

LES VUES - VIEWS Création - Syntaxe CREATE [OR REPLACE] VIEW [schema.]view [(alias [,alias]...)] AS subquery [WITH CHECK OPTION [CONSTRAINT constraint]] ; Exemple CREATE OR REPLACE VIEW vue_4145 AS SELECT no,nom,titre,salaire*4*12 "SALAIRE ANNUEL" FROM e_emp WHERE service_no BETWEEN 41 AND 45; Remarques Le SELECT peut contenir toutes les clauses sauf : CONNECT BY/ORDERBY. WITH CHECK OPTION permet que les UPDATE ou INSERT faits à travers la vue ne produisent que des lignes correspondant à la définition de la vue. Une view peut être créée par SELECTION, JOINTURE ou PROJECTION.

LES VUES - VIEWS Contraintes VUE VIEW Ne pas Contenir toutes les colonnes NOT NULL. INSERT Contient une colonne calculée VUE VIEW UPDATE Renferme la clause GROUP BY DELETE Renferme la clause DISTINCT

Modification / Suppression LES VUES - VIEWS Modification / Suppression Modification ALTER VIEW [schema.]view COMPILE; Utilisée si la structure des tables sous-tendant la view changent. Suppression DROP VIEW [schema.]view; Exemple DROP VIEW vue_4145;

INDEX Définition - Syntaxe INDEX Accélérateur d'accès sur une table ou un cluster. Peut être unique ou multiple, concaténé ou non. Transparent aux requête, mais utilisé par l'optimiseur Oracle. Amélioration des temps d'accès. Intervenir dans le tuning des bases Oracle.

INDEX Définition - Syntaxe CREATE [UNIQUE] INDEX [schema.]index ON { [schema.]table (column [ASC|DESC][, column [ASC|DESC]] ...) | CLUSTER [schema.]cluster } [INITRANS integer] [MAXTRANS integer] [TABLESPACE tablespace] [STORAGE storage_clause] [PCTFREE integer] [NOSORT | SORT] [ RECOVERABLE | UNRECOVERABLE ] Exemple CREATE UNIQUE INDEX i_nom_emp ON employes(nom DESC) TABLESPACE tbs_idx;

Règles construction index Utiliser un index UNIQUE pour créer une contrainte d'unicité sur une colonne. Stocker les index dans un TABLESPACE différent de celui des données. Le choix des colonnes d'index doit tenir compte de leurs fréquence de mise à jour. Un index peut être partitionné. Depuis la version 8i d'Oracle, on peut définir des index sur les fonctions : Exemple CREATE INDEX nom_idx ON table(UPPER(col));

Modification - Suppression INDEX Modification - Suppression Modification ALTER INDEX [schema.]index REBUILD; Utiliser cette commande pour reconstruire l'index. Suppression DROP INDEX [schema.]index; Exemple DROP INDEX vue_4145;

SEQUENCE Définition - Syntaxe Rôle Permet de générer séquentiellement des numéros attribués à des colonnes numériques ayant une contrainte de type PRIMARY KEY ou UNIQUE. Syntaxe CREATE SEQUENCE [schema.]sequence [INCREMENT BY integer] [START WITH integer] [MAXVALUE integer | NOMAXVALUE] [MINVALUE integer | NOMINVALUE] [CYCLE | NOCYCLE] [CACHE integer | NOCACHE] [ORDER | NOORDER]

SEQUENCE Définition - Syntaxe Clause Signification START WITH Définit la valeur de départ de la séquence. INCREMENT BY Définit le pas d'incrémentation. MINVALUE/NOMINVALUE Définit la valeur minimale de la séquence, ou la désactive. MAXVALUE/NOMAXVALUE Définit la valeur maximale de la séquence, ou la désactive (1 ou 10E27. CYCLE/NOCYCLE Autorise ou non les cycles dans le cas où la MAXVALUE est atteinte. CACHE/NOCACHE Demande au système de pré-allouer ou pas un espace en mémoire. LONG Permet de stocker des chaînes d'une longueur max de 2 Go. Texte LONG ORDER/NOORDER Séquence ordonnée ou non.

SEQUENCE Exemples - Fonctions CREATE SEQUENCE seq_emp INCREMENT BY 1 START WITH 100 MAXVALUE 50000 MINVALUE 10 CYCLE CACHE 100 ORDER; Exemple 2 SELECT seq_emp.NEXTVAL // Valeur suivante de la séquence FROM dual; Exemple 3 SELECT seq_emp.CURRVAL //valeur courante

Modification - Suppression SEQUENCE Modification - Suppression Modification ALTER SEQUENCE [schema.]sequence [INCREMENT BY integer] [MAXVALUE integer | NOMAXVALUE] [MINVALUE integer | NOMINVALUE] [CYCLE | NOCYCLE] [CACHE integer | NOCACHE] [ORDER | NOORDER] ; Suppression DROP SEQUENCE [schema.]sequence; Exemple DROP SEQUENCE seq_emp;

SYNONYMES Définition - Syntaxe Rôle Permet de donner un nom ou un alias afin de le référencer différemment. Un synonyme peut être créé sur les objets suivants : TABLES, VUES, SEQUENCES, SYNONYMES, CLUSTERS, PROCEDURES, FONCTIONS, PACKAGES. Syntaxe CREATE [PUBLIC] SYNONYM [schema.]synonym FOR [schema.]object[@dblink] Exemple CREATE SYNONYM t_employes FOR employes; SELECT * from t_employes; t_employes et employes référencent la même table.

SYNONYMES Nom - Suppression Remarques PUBLIC permet de créer des synonymes accessibles par tous les utilisateurs. Par défaut le synonyme est privé, accessible uniquement par le propriétaire. Un synonyme est mesure de protection des objets. Changement de nom RENAME SYNONYM ancien TO nouveau; Suppression DROP SYNONYM nom_syn;

UTILISATEURS Définition - Syntaxe Un utilisateur est un objet au même titre que les autres (tables, vues, …). Des tables spéciales entretenues par le DBA permettent de stocker toutes les informations sur les utilisateurs. Un synonyme est mesure de protection des objets. Utilisateurs prédéfinis SCOTT / TIGER : droits limités. SYS / CHANGE_ON_INSTALL : superutilisateur. SYSTEM / MANAGER : synonyme de SYS, ayant des droits, mais moins que SYS. Opérations sur les utilisateurs Création. Modification. Suppression. Attribution des privilèges. Attribution de rôles.

UTILISATEURS Création Syntaxe CREATE USER user IDENTIFIED BY password [DEFAULT TABLESPACE tablespace] [TEMPORARY TABLESPACE tablespace] [QUOTA {integer [K|M] | UNLIMITED} ON tablespace] ... [PROFILE profile]; Exemple CREATE USER rpig4 IDENTIFIED BY rpig4 DEFAULT TABLESPACE users TEMPORAY TABLESPACE temp; L'indication du DEFAULT TABLESPACE est importante. Le quota permet d'attribuer à l'utilisateur un quota sur un TABLESPACE.

Modification – Suppression UTILISATEURS Modification – Suppression Modification ALTER USER user [IDENTIFIED BY password] [DEFAULT TABLESPACE tablespace] [TEMPORARY TABLESPACE tablespace] [QUOTA {integer [K|M] | UNLIMITED} ON tablespace] ... [PROFILE profile] [DEFAULT ROLE { role [, role] ... | ALL [EXCEPT role [, role] ...] | NONE}] ; Suppression DROP USER user [CASCADE] ; CASCADE signifie qu'il faut effacer tous les objets de cet utilisateur.

ROLES Définition - Syntaxe Un objet qui encapsule plusieurs droits ou privilèges élémentaires. Un rôle est rattaché à un ou plusieurs utilisateurs. Un rôle est le reflet d'une typologie d'utilisateur (user final, administrateur, exploitant). Le rôle des rôles est de simplifier le travail d'administration de la base. Rôles prédéfinis CONNECT : droits de connexion et d'exécution d'ordre LMD. RESOURCE : droits de connexion et d'exécution d'ordre LDD non DBA. DBA : Tous les droits. Opérations sur les rôles Création. Modification. Suppression.

CLUSTERS Définition - Syntaxe Un cluster est organisation qui permet de rassembler dans un même bloc disque les lignes de plusieurs tables, en se basant sur une valeur commune d'une ou de plusieurs colonnes. Un rôle est rattaché à un ou plusieurs utilisateurs. Un rôle est le reflet d'une typologie d'utilisateur (user final, administrateur, exploitant). Le rôle des rôles est de simplifier le travail d'administration de la base. Clusters indexés Stockage dans les blocs selon la valeur d'une clé fonctionnelle. Accès aux blocs selon un index (obligatoire). Hash clusters Stockage dans les blocs selon la valeur de la clé de hachage. Lors de la création du hach cluster, indiquer le nombre de valeurs de la clé.

CLUSTERS Création Syntaxe CREATE CLUSTER [schema.]cluster (column datatype [,column datatype] ... ) [PCTUSED integer] [PCTFREE integer] [SIZE integer [K|M] ] [INITRANS integer] [MAXTRANS integer] [TABLESPACE tablespace] [STORAGE storage_clause] [ PARALLEL ( [ DEGREE { integer | DEFAULT } ] [ INSTANCES { integer | DEFAULT } ] ) | NOPARALLEL ] [ CACHE | NOCACHE ] [INDEX | [HASH IS column] HASHKEYS integer];

CLUSTERS Création Exemple CREATE CLUSTER cl_01 (deptno NUMBER(3)); CREATE INDEX cl_01_idx ON CLUSTER cl_01; CREATE TABLE salaire ( … ) CLUSTER cl_01(dept_no); CREATE TABLE departement ( CLUSTER cl_01(no);