Documente Academic
Documente Profesional
Documente Cultură
Base de données
SQL
http://gherabi.zz.mu
PLAN
Problèmes
§ Difficultés de gestion
§ Incohérence des données
§ Coûts élevés
§ Maintenance difficile
§ Gestion de pannes ???
§ Partage des données ???
§ Confidentialité ???
Solution
Utilisateur
Base de
données
Applications
http://gherabi.zz.mu
Introduction
10/12/18 12
Commandes de Base
SQL*PLUS supporte trois types de commandes :
Syntaxe:
CREATE TABLE nomtable
(
Nomcol1 typecol1 (Taille1) ,
Nomcol2 typecol2 (Taille2) ,
Nomcol3 typecol3 (Taille3)..
)
Les valeurs de cette colonne sont en fait des références sur des
references entrées d'une autres table. C'est par ce mécanisme que l'on
relie des informations dispersées sur plusieurs tables.
Syntaxe:
CREATE TABLE nomtable
(Nomcol1 typecol1 PRIMARY KEY )
Ou :
CREATE TABLE nomtable
(Nomcol1 typecol1,
Constraint Nom_de_contrainte PRIMARY
KEY(NomCol1) )
Syntaxe:
CREATE TABLE nomtable
( Nomcol1 typecol1,
Nomcol2 typecol2,
Constraint Nom_de_contrainte Foreign key(Nomcol2)
references Table_pere(NomCol2) )
Syntaxe:
CREATE TABLE nomtable
( Nomcol1 typecol1,
Nomcol2 typecol2,
Constraint nom_contrainte Chech (Condition))
Exemple : check
Syntaxe:
CREATE TABLE nomtable
( Nomcol1 typecol1 NOT NULL,
Nomcol2 typecol2,
)
Exemple : Résumé
Contrainte default : Cette contrainte permet d'indiquer le contenu d'une zone quand
elle n'est pas indiquée lors de l'insertion d'une ligne dans la table.
Syntaxe:
CREATE TABLE nomtable
( Nomcol1 typecol1 Default (‘Valeur par defaut’),
Nomcol2 typecol2,
)
Exemple : Default
Définir une valeur par défaut : La clause DEFAULT doit être suivie par la
valeur à affecter. Cette valeur peut être un des types suivants:
La commande DESCRIBE
Cette commande permet de donner une description sur une table (le nom du
champ, le type du champ et la contrainte appliquée sur le champ)
Syntaxe:
DESCRIBE nomtable
Exemple : Describe
DESCRIBE Emp ;
Nom de la colonne Null? Type
------------------------------ -------- ----
ID NOT NULL NUMBER
NOM VARCHAR2(15)
PRENOM VARCHAR2(15)
POSTE NOT NULL VARCHAR2(15)
SAL NUMBER
Syntaxe:
ALTER TABLE nom table
ADD nomNouvelleCol typeColonne,
DROP COLUMN nomColEn,
MODIY nomcolAChanger
nouveau_type_de_données NULL ou NOT NULL
ADD CONSTRAINT nom Contrainte …
DROP CONSTRAINT nom Contrainte
Exemples: Alter
Syntaxe:
DROP TABLE nom table;
DROP TABLE nom table CASCADE CONSTRAINTS
Exemple : DROP
Syntaxe:
RENAME table1 TO Table2;
Renommer table1 par un autre nom table2
Exemple : RENAME
Syntaxe:
INSERT INTO <nom table>
values (val1, val2, val3,..., valn)
Exemple: INSERT
Syntaxe:
UPDATE <nom table>
SET <colonne1> = <expression>,
<colonne2> = <expression2>
WHERE condition
Exemple: UPDATE
Syntaxe:
Delete from <nom table>
WHERE condition
Exemples: DELETE
Syntaxe:
v SELECT * FROM <nom de table>
v SELECT <col 1> , <col 2> , <col N> FROM <nom de
table>
Exemples: SELECT
Les opérateurs:
Exemple: Opérateurs
Exemple :
Select nom || ‘est un ‘ || fonction as ‘’ détails employés ’’
from Employe;
détails employés
Alami est un ingénieur
Anouari est un directeur
Saloumi est un technicien
…
…
1. From
2. Where
3. ORDER BY
4. GROUP BY
5. DISTINCT
Exemples:
10/12/18 54
GHERABI Noreddine
Les commandes DML
§ ALL
§ ANY
§ BETWEEN , NOT BETWEEN
§ EXISTS, NOT EXISTS
§ IN , NOT IN
§ LIKE , NOT LIKE
Jointure: Exemples
Jointure avec IN
Union
Intersection :
10/12/18 69
GHERABI Noreddine
Les commandes DML
q Les fonctions sur chaînes de caractères
10/12/18 70
GHERABI Noreddine
Les commandes DML
q Quelques fonctions sur les dates
10/12/18 71
GHERABI Noreddine
Les Vues
Il est possible d'avoir une vue partielle d'une table ou de plusieurs tables.
Une vue se comporte comme une table mais ne contient pas de données.
Ses données sont extraites d'autres tables ou vues. Une vue comporte
plusieurs avantages :
Ø Un utilisateur peut n'être intéressé que par certaines colonnes et certaines
lignes d'une table donnée. La vue lui permet de ne voir que ces lignes et
ces colonnes.
Ø Le propriétaire d'une table peut désirer n'en autoriser qu'un accès limité, à
d'autres utilisateurs. La vue lui permet de le faire. Les autres utilisateurs
qu'il aura nommés n'auront accès qu'à la vue qu'il aura définie.
GHERABI Noreddine 72
Les Vues
q Création d’une vue
v CREATE VIEW nom_vue
AS SELECT colonne1, colonne2, ... FROM table WHERE condition
crée la vue nom_vue. Celle-ci est une table ayant pour structure colonne1,
colonne2, ... de table et pour lignes, les lignes de table vérifiant condition
(toutes les lignes s'il n'y a pas de condition)
Exemple :
73
GHERABI Noreddine
Les Vues
q Mise à jour d’une vue
Il est possible de mettre à jour une vue comme on le fait pour une table.
Toutes les tables d'où sont extraites les données de la vue sont affectées
par cette mise à jour.
Exemples :
74
GHERABI Noreddine
Les Vues
q Supprimer une vue
Pour supprimer une vue en utilisant la commande DROP utilisée pour la
suppression des tables
DROP VIEW nom_vue
Exemple :
75
GHERABI Noreddine
Les Vues
q Liste des vues
v describe user_views
v select view_name from user_views
76
GHERABI Noreddine
Les commandes DCL
Syntaxe :
Exemple :
Syntaxe :
Exemple :
Syntaxe :
10/12/18 81
SQL*Plus -M. GHERABI Noreddine
Affectation des privilèges
Les privilèges systèmes: Les privilèges systèmes, sont plus
généraux dans le sens où ils s'utilisent sur un ensemble
d'objets
v CREATE SESSION
v ALTER ANY (TABLE ...),
v CREATE ANY (TABLE, ...),
v CREATE USER,
v DROP ANY TABLE,
v GRANT ANY (ALL PRIVILEGES, DBA, CONNECT ..
v UNLIMITED TABLESPACE
Syntaxe :
GRANT Option
TO utilisateur;
WITH ADMIN OPTION;
Exemple :
GRANT CREATE SESSION TO adil WITH ADMIN
OPTION;
GRANT DROP User TO said;
Syntaxe :
GRANT Option
ON Table
TO utilisateur;
WITH GRANT OPTION;
Exemples :
GRANT Select
ON Client
TO nour;
GRANT Select,update(col1,col2),delete
ON Client
TO nour,adil;
Syntaxe:
v CREATE ROLE Compta;
Exemples :
v GRANT SELECT, INSERT, UPDATE, DELETE ON
FACTURE TO Compta ;
Affectation d’un rôle a un utilisateur
v GRANT Compta TO nom_utilisateur ;
Syntaxe:
v DROP ROLE Nom_Role;
Exemple :
v DROP ROLE Compta;
Syntaxe:
v Privileges systèmes :
REVOKE Option FROM Utilisateur;
v Privilèges objets
REVOKE Option ON table
FROM Utilisateur;
Exemples:
v SYSTEME
REVOKE Create table
FROM nour;
v OBJET
REVOKE Select ON Client
FROM nour;