0% ont trouvé ce document utile (0 vote)
33 vues6 pages

résuméSGBD

Le document fournit un aperçu des commandes SQL pour la gestion des bases de données, y compris la création, la modification et la suppression de tables, vues, séquences et index. Il décrit également les contraintes, les jointures, les fonctions analytiques, et les procédures stockées, ainsi que les exceptions en PL/SQL. Enfin, il aborde l'utilisation des curseurs et des déclencheurs pour automatiser certaines actions dans la base de données.

Transféré par

gharianions77
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
33 vues6 pages

résuméSGBD

Le document fournit un aperçu des commandes SQL pour la gestion des bases de données, y compris la création, la modification et la suppression de tables, vues, séquences et index. Il décrit également les contraintes, les jointures, les fonctions analytiques, et les procédures stockées, ainsi que les exceptions en PL/SQL. Enfin, il aborde l'utilisation des curseurs et des déclencheurs pour automatiser certaines actions dans la base de données.

Transféré par

gharianions77
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

SQL - constraint

Suppression de vue :
LDD
 drop view v_sgbd;
TABLE
Création de table : SÉQUENCE
 Générer une valeur de clé primaire
 create table SGBD ( , , , ) ;
 create table ldd as select * from SGBD where Création de séquence :
(condition);
 create sequence seq_sgbd
LES CONTRAINTES start with val
increment by pas
 Il existe 5 types de contraintes :
maxvalue val_max
- Not null
minvalue val_min
- Unique
cycle
- Check
cache val ;
- Primary key
- Foreign key Modification de séquence :
 Il existe 2 niveaux de définitions :
- Contrainte au niveau colonne  alter sequence seq_sgbd
- Contrainte au niveau table start with val
 Primary key: constraint pk_const primary key increment by pas
 Foreign key: constraint fk_const foreign key maxvalue val_max
(colonne) references table (colonne) minvalue val_min
cycle
Modification de table : cache val ;

 alter table SGBD Utilisation de séquence :


- Add : ajouter une colonne
- Modify : modifier une colonne  Se fait par des pseudo-colonnes :
- Drop : supprimer une colonne - Nextval : incrémente la séquence et retourne
- Add constraint la nouvelle valeur
- Drop constraint - Currval : retourne la valeur courante de la
- Enable : activer une contrainte séquence
- Disable : désactiver une contrainte  insert into table values (seq_sgbd.nextval, ‘y’) ;

Suppression de table : Suppression de séquence :

 drop table SGBD ;  drop sequence seq_sgbd ;


 truncate table SGBD ;

Renommer table :

 rename ancien to nouveau ; INDEX


 Est un objet qui permet d’accélérer la recherche
VUE des lignes
 Il contient 2 champs :
 Est une table virtuelle qui ne contient pas des
- Clé d’index
donnés
- @ du bloc contenant la clé
Création et modification de vue :  Créez index si :
 Colonne contient un grand nbr de valeurs NULL
 create or replace view v_sgbd (alias) as select  Condition de jointure
col1,col2 from table where (condition) with  Utilisée souvent dans la Clause WHERE
- with check option  Table de grande taille
- with read only
Création d’index :  select last_name nom, first_name as prénom,
salary*12 “revenue annuel” from employes;
 create unique index idx_sgbd on SGBD
(col1,col2) ; CONCATÉNATION
 alter index ancient rename to nouveau;
 representee par le symbole ||
Suppression d’index :  select dep_id||’**’||dep_name as “dep” from
departments;
 drop index idx_sgbd ;
OPÉRATEURS DE COMPARAISON

SYNONYME BETWEEN
 Est un alias, objet qui peut être une table, une vue,  SELECT COL FROM TABLE WHERE COL BETWEEN ..
une séquence, une procédure, une fonction, un AND ..;
package, etc
 Masquer le vrai nom des objets IN
 Simplifier les noms des objets
 SELECT COL FROM TABLE WHERE COL IN(,);
Création et suppression de synonyme :
LIKE
 create public synonym sy_sgbd for nom_objet;
 drop synonym sy_sgbd;  SELECT COL FROM TABLE WHERE COL LIKE ‘Y_R%’;

IS NULL
LMD

Insertion des lignes :  SELECT COL FROM TABLE WHERE COL IS NULL;

 Insertion implicite: insert into table(col1,col2) OPERATEURS LOGIQUES


values(val1,val2); AND
 Insertion explicite: insert into table
values(val1,val2);  SELECT COL1,COL2 FROM TABLE WHERE
 Insertion à partir d’autres tables: insert into COL2>=VAL AND COL1 LIKE ‘%SGBD%’;
table(col1,col2) select att1,att2 from table where
OR
condition;
 SELECT COL1,COL2 FROM TABLE WHERE
Mise à jour de lignes :
COL2>=VAL OR COL1 LIKE ‘%SGBD%’;
 update table set att1=val where condition;
NOT
 update table set (col) = (select att from table
where condition) where condition;  SELECT COL FROM TABLE WHERE COL NOT IN(‘ ‘,’
 update table t set alias = (select att from table1 t1 ’,’ ’);
where [Link]=[Link]);
LES PARENTHESES > OPÉRATEURS DE COMPARAISON >
Suppression des lignes : NOT > AND > OR

 delete from table ; CLAUSE ORDER BY


 delete from table where condition;
 delete from table where att= (select att from tab  Tri des lignes ASC ou DESC
where condition);  La dernière clause dans SELECT
 select col from table order by col DESC;
LID  select col1,col2 from table order by col1, col2;

FONCTIONS DE CARACTÈRES
INSTRUCTION SELECT

 select * from table; Lower(ch) Majmin


 select col1, col2 from table; Upper(ch) Minmaj
 select distinct col from table;
Initcap(ch) 1er caractere en maj
ALIAS DE COLONNE Concat(ch1,ch2) Concaténation
 SELECT COL1,COL2, ROW_NUMBER() OVER
Substr(ch,pos,long) Extraction
(ORDER BY EXPRESSION [ASC|DESC]) “NUMERO”
Length(ch) Taille FROM TABLE;

Instr(ch1,ch2) Pos de ch2 ds ch1 RANK


Lpad(ch,long,car) Complète ch par car à
gauche  SELECT NOM, SCORE, RANK() OVER (PARTITION BY
EXPRESSION ORDER BY EXPRESSION [ASC|DESC])
Rpad(ch,long,car) Complète ch par car à AS CLASSEMENT FROM SCORES;
droite
DENSE_RANK
Ltrim(ch,car) Supprime car à gauche

Rtrim(ch,car) Supprime car à droite  SELECT NOM, SCORE, DENSE_RANK() OVER


(PARTITION BY EXPRESSION ORDER BY
Replace(ch,ch1,ch2) Remplace ch1 par ch2
EXPRESSION [ASC|DESC]) AS CLASSEMENT FROM
dans ch
SCORES;
Ascii(ch) Retourne le code ascii
FIRST_VALUE
Chr(n) Retourne le car ayant
le code ascii n  SELECT PRODUIT, DATE, MONTANT,
FIRST_VALUE(MONTANT) OVER (PARTITION BY
FONCTIONS NUMÉRIQUES
PRODUIT ORDER BY DATE ASC) AS
ABS(n) Valeur absolue PREMIERMONTANT FROM VENTES;

MOD(n1,n2) Reste LAST_VALUE


POWER(n,e) Puissance
 SELECT PRODUIT, DATE, MONTANT,
SQRT(n) Racine carrée LAST_VALUE(MONTANT) OVER (PARTITION BY
PRODUIT ORDER BY DATE ASC) AS
ROUND(n,p) Arrondissement
DERNIERMONTANT FROM VENTES;
TRUNC(n,p) Tronque n à la pos p
FONCTIONS MULTI-LIGNES
FLOOR(n) Partie entière
inferieure AVG
CEIL(n) Partie entière  SELECT AVG(MONTANT) AS MOYENNEVENTES
supérieure
FROM VENTES;
GREATEST(n,n1,n2) Max
COUNT
LEAST(n,n1,n2) Min
 SELECT COUNT(*) FROM TABLE WHERE
FONCTIONS DE CONVERSION
CONDITION;
TO_CHAR  SELECT COUNT(NOM) AS
NOMBRECLIENTSAVECNOM FROM CLIENTS;
 SELECT TO_CHAR(COL,’FM DD MONTH YYYY’) AS
DATE FROM TABLE ; MAX

TO_DATE  SELECT MAX(PRIX) AS PRIXMAXIMUM FROM


PRODUITS;
 SELECT HIRE_DATE FROM TAB WHERE
HIRE_DATE>TO_DATE(‘01/01/1982’,’DD-MM- MIN
YYYY’);
 SELECT MIN(PRIX) AS PRIXMINIMUM FROM
TO_NUMBER PRODUITS;

 SELECT COL FROM TABLE WHERE COL>= STDDEV


TO_NUMBER(‘7777’);
 SELECT STDDEV(MONTANT) AS ECARTTYPEVENTES
FONCTIONS ANALYTIQUES FROM VENTES;

ROW_NUMBER SUM
 SELECT SUM(MONTANT) AS TOTALVENTES FROM BLOCS ANONYMES
VENTES;

VARIANCE Declare – optionnelle


/* déclaration var, cte, types, curseurs
 SELECT VARIANCE(MONTANT) AS
Integer/number := val ;
VARIANCEVENTES FROM VENTES;
Varchar2() := ‘ ’ ;
LES JOINTURES Date;
JOINTURE INTERNE Dec%type ;
Dec%rowtype ; */
 SELECT TAB1.A, TAB1.B, TAB2.A,TAB2.B FROM
TAB1 INNER JOIN TAB2 ON TAB1.A=TAB2.A AND Begin
TAB1.B=TAB2.B; /*traitements*/
Exception – optionnelle
JOINTURE EXTERNE
End ;
 SELECT TAB1.A, TAB1.B, TAB2.A,TAB2.B FROM /
TAB1 LEFT OUTER JOIN TAB2 ON TAB1.A=TAB2.A
Déclaration et initialisation des variables :
AND TAB1.B=TAB2.B;
 SELECT TAB1.A, TAB1.B, TAB2.A,TAB2.B FROM  v_date date default ’01-01-2009’ ;
TAB1 RIGHT OUTER JOIN TAB2 ON TAB1.A=TAB2.A  v_cte constant := 7 ;
AND TAB1.B=TAB2.B;  v_char char(5) notnull := ‘SGBD’ ;
 SELECT TAB1.A, TAB1.B, TAB2.A,TAB2.B FROM  dbms_output.put_line(‘ ‘ || val);
TAB1 FULL OUTER JOIN TAB2 ON TAB1.A=TAB2.A
AND TAB1.B=TAB2.B; Structures de contrôle :

EQUIJOINTURE If condition then Case v1 while condition loop


When cond then End loop;
 SELECT TAB1.A, TAB1.B, TAB2.A,TAB2.B Elsif condition then
FROM TAB1 LEFT OUTER JOIN TAB2 ON When cond then
TAB1.A=TAB2.A; Else When cond then Loop

End if ; End case; Exit when condition


NON-EQUIJOINTURE
End loop;
 SELECT TAB1.A, TAB2.A, TAB2.C FROM TAB1 INNER
JOIN TAB2 ON TAB1.A>=TAB2.A AND
For I in inf..sup Loop Select * intro v_sgbd from SGBD where
TAB1.A<=TAB2.C;
condition;
End loop;
AUTO-JOINTURE

 SELECT T1.A, T2.B, T2.C FROM TAB1 T1 INNER JOIN LES CURSEURS
TAB1 T2 ON T2.C=T1.A
 Variable qui pointe vers le résultat d’une requête
JOINTURE NATURELLE
Manipulation des curseurs :
 SELECT DEPARTMENT ID, DEPARTMENT NAME,
DÉCLARATION
LOCATION ID, CITY FROM DEPARTMENTS
NATURAL JOIN LOCATIONS WHERE LOCATION ID  CURSOR CUR_SGBD IS SELECT * FROM SGBD
<>1700; WHERE CONDITION ORDER BY COL;

OUVERTURE

 OPEN CUR_SGBD :

EXÉCUTION

PLSQL  FETCH CUR_SGBD INTO VARS;


WHILE/EXIT WHEN CUR_SGBD%ATTS;
FERMETURE return type IS
declaration;
 CLOSE CUR_SGBD ; begin
return ;
Attributs des curseurs :
end;
- %ISOPEN : curseur ouvert
NON STOCKÉES
- %FOUND : fetch réussi
- %NOTFOUND : fetch échoué Procédures :
- %ROWCOUNT : renvoie nbr de lignes
contenues  DECLARE …
PROCEDURE myproc(a in type, b in type, prod out
Utilisation des curseurs : type) IS BEGIN prod:=a*b;
END myproc;
 BEGIN myproc(a,b,p);
Declare dbms [Link] line(Le produit: ’||s); END;
Cursor cur_sgbd is select … ;
Fonctions :
Rec_sgbd cur_sgbd%rowtype;
Begin  DECLARE
Open cur_sgbd; a type := val;
b type := val;
Loop
c type;
Fetch cur_sgbd into rec_sgbd; FUNCTION myfunc(a type, b type) RETURN type IS
… prod type;
End; BEGIN
prod:=a*b;
 return prod;
Declare END;
Cursor cur_sgbd is select … ; BEGIN c:=myfunc(a,b);
Begin dbms [Link] line(’Le produit: ’||c); END;

For rec_sgbd in cur_sgbd


LES TRIGGERS
Loop
 Se déclenche automatiquement lorsqu’un

événement se produit (insert,update,delete)
End;
DÉCLENCHEUR DE TABLE
Curseurs paramétrés :

Declare Create trigger trig_sgbd


After / before insert or update or delete on table
Cursor cur_sgbd(param type,param1 type) is select …; Begin
If inserting then

Elsif updating then
PROCÉDURES ET FONCTIONS …
Else

STOCKÉES End if;
Procédures : End;

 create or replace procedure nom (arg1 IN type,


arg2 OUT type) IS
begin … end;

Fonctions :

 create or replace function fn_nom(arg1 type,arg2 Create or replace trigger trig_sgbd


type) After / before insert or update of att1,att2
or delete on table
Begin
Case
 ZERO_DIVIDE
 DUP_VAL_ON_INDEX
 INVALID_CURSOR
 CURSOR_ALREADY_OPEN
 INVALID_NUMBER
 ROWTYPE_MISMATCH

Redéclaration des exceptions prédéfinies :

 DECLARE a type;
b type;
DÉCLENCHEUR DE LIGNE nom EXCEPTION;
PRAGMA EXCEPTION_INIT(nom,code); BEGIN
CREATE OR REPLACE TRIGGER trig dep …
BEFORE INSERT OR UPDATE OR DELETE ON table
EXCEPTION WHEN nom THEN
FOR EACH ROW
BEGIN …
IF INSERTING THEN END;
dbms [Link] line(’Insertion’);
END IF; LES EXCEPTIONS DÉFINIES
IF UPDATING THEN
dbms [Link] line(’Modification’); Avec le mot clé RAISE :
END IF;
IF DELETING THEN
dbms [Link] line(’Suppression’);
END IF;
END;

CREATE OR REPLACE TRIGGER trig_insert


BEFORE INSERT ON table
FOR EACH ROW
WHEN ([Link] < val)
BEGIN
:[Link] := :[Link]+10;
END;

LES EXCEPTIONS Avec la procédure RAISE_APPLICATION_ERROR :

LES EXCEPTIONS PREDEFINIES

 CREATE OR REPLACE PROCEDURE nom (arg type) I


S
var type ;
BEGIN
SELECT arg INTO var FROM table
WHERE condition;

EXCEPTION WHEN TOO MANY ROWS –THEN
DBMS [Link] LINE (’La requˆete revoie plusi
eurs lignes, utilisez un curseur’);
WHEN OTHERS THEN
ROLLBACK;
DBMS [Link] LINE(’code de l”erreur : ’||SQ
LCODE);
DBMS [Link] LINE(’message de l”erreur : ’|
|SQLERRM); END;
 NO_DATA_FOUND

Vous aimerez peut-être aussi