Module N3
Dalibo SCOP
24.09
29 août 2024
Cette formation est sous licence CC-BY-NC-SA. Vous êtes libre de la redistribuer et/ou modifier aux conditions suivantes :
PostgreSQL® Postgres® et le logo Slonik sont des marques déposées par PostgreSQL Community Association of Canada.
Ce document ne couvre que les versions supportées de PostgreSQL au moment de sa rédaction, soit les versions 12 à 16.
Ce module est organisé en quatre parties :
Oracle et PostgreSQL sont assez proches :
PostgreSQL et Oracle :
USER.OBJECT
fillfactor
" "
CREATE TYPE
DBLINK
dblink
fdw
HAVING
GROUP BY
DUAL
text
SELECT 1 = 'a'::text;
smallint
integer
bigint
numeric
number
varchar2
varchar
varchar (n)
''
NULL
boolean
int
large objects
lo_*
bytea
date
time
timestamp
timestamptz
YYYY-MM-DD HH24:MI:SS.mmmmmmm+TZ
interval
SYSDATE
localtimestamp
add_months
NLS_DATE_FORMAT
TO_CHAR
TO_DATE
DateStyle
PostgreSQL fournit de nombreux types de données spécialisés :
PERIOD
ip4r
DECODE
NVL
ROWNUM
Équivalent de la clause CASE du standard
CASE
CASE expr WHEN valeur1 THEN valeur_retour1 WHEN valeur2 THEN valeur_retour2 ELSE valeur_retour3 END
CASE WHEN expr1 THEN valeur_retour1 WHEN expr2 THEN valeur_retour2 ELSE valeur_retour3 END
SELECT NVL(description, description_courte, '(aucune)') FROM articles;
COALESCE
SELECT COALESCE(description, description_courte, '(aucune)') FROM articles;
Changement de comportement de l’opérateur ||
||
SELECT 'chaîne' || NULL
SELECT 'chaîne' || COALESCE(null, '');
SELECT CONCAT('chaîne', null);
row_number() OVER ()
ORDER BY
WHERE ROWNUM < 11
LIMIT xx
SELECT * FROM employees LIMIT 10;
FROM tab1, tab2 WHERE tab1.col = tab2.col
FROM tab1 JOIN tab2 ON (tab1.col = tab2.col)
(+)
LEFT JOIN
RIGHT JOIN
FULL OUTER JOIN
FROM t1, t2;
FROM t1 CROSS JOIN t2
UNION
UNION ALL
INTERSECT
EXCEPT
MINUS
CONNECT BY
WITH RECURSIVE
START WITH
CONNECT BY PRIOR
SELECT empno, ename, job, mgr FROM emp START WITH mgr IS NULL CONNECT BY PRIOR empno = mgr
WITH RECURSIVE hierarchie AS ( condition de départ UNION ALL clause de récursion ) SELECT * FROM hierarchie
LEVEL
1 AS level
prior.level + 1
niveau 1/niveau 2/niveau 3
niveau initial AS path
prior.path || niveau courant
NOCYCLE
cycle
element = ANY (tableau) AS cycle
WHERE cycle = false
BEGIN
BEGIN TRANSACTION ISOLATION LEVEL xxxx
READ COMMITTED
REPEATABLE READ
SERIALIZABLE
SAVEPOINT
RELEASE SAVEPOINT
ROLLBACK TO SAVEPOINT
SELECT FOR SHARE/UPDATE
LOCK TABLE
N’hésitez pas, c’est le moment !
https://dali.bo/n3_quiz