Professional Documents
Culture Documents
View
View
-reduce complexitatea executarii cererilor bazate pe SELECT –ului complexe (cu multe tabele )
-se pot vedea aceleasi date in diverse moduri
=>
CREATE [OR REPLACE] [FORCE/ NOFORCE]
VIEW nume [aliasuri_coloane]
AS subquery
[WITH CHECK OPTION [CONSTRAINT constr.]]
[WITH READ ONLY [CONSTRAINT constr.]]
OR REPLACE –modificare
FORCE- emite view chiar daca tabela de baza nu exista
WITH CHECK OPTION –update/ insert se pot face doar pe randurile din view [verif constrangerile
din tabela de baza]
WITH READ ONLY- nu se pot face op DML pe VIEW
OBS:
1. SELECT – NU POATE CONTINE ORDER BY LA CREARE
2. LA MODIFICARE (OR REPLACE)- SE PASTREAZA PRIVILEGIILE
3. ALIASURILE COL POT APAREA DUPA: NUME_VIEW SAU IN SELECT (SUBQUERY)
VIEW :
a) SIMPLE
-o singura tabela
- nu contine functii de grup
- nu pot contine grupuri
- operatii DML permite
b) COMPLEX
-una sau mai multe tabele
-contine functii de grupuri
-contine grupuri
-DML –nu intotdeauna
OBS:
-SE FOLOSESTE CA O TABELA OBISNUITA ( SELECT, INSERT INTO, UPDATE, DELETE)
PRIN VIEW – SE FAC MOIFICARI ASUPRA TABELEI DE BAZA (IMPLICIT)
INLINE VIEW
- SIMPLIFICA QUERIES COMPLEXE (IN LOC DE JOIN)
- In FROM se utilizeaza cu subqueries ca si cum ar fi nume de tabela;
- Inline view are ALIAS;
TOP-N-ANALYSIS
- SE FOLOSESTE CU INLINE SUBQUERY (VIEW)
- ROWNUM- assign a row number to the result set; is used to order the data and retun top n;
Ex:
SELECT ROWNUM as RANK year, title
FROM (SELECT year, title
FROM d_cds
ORDER BY year)
//inline view
WHERE ROWNUM <=4
-PRIMI 4 ORDONATI DUPA AN- TREBUIE INTAI ORDONATI => INLINE VIEW
WHERE must use < si <=
SEQUENCE
- IS DATABASE OBJECT
- Un obiect util pt generarea numerelor pt PK/UK (UNIQUE KEY)
USER_SEQUENCES
-Pseudocolumns
NEXTVAL
-EXTRAGE VAL URM DIN SECVENTA (E GENERAT UN NOU NR)
CURRVAL
-ULT NR GENERAT DE NEXTVAL
EX:
INSERT INTO departments
VALUES (dep_deptid_seq.NEXTVAL, ‘suport’, 100) //dep –id
Sintaxa:
Nume_secventa.NEXTVAL
Nume_secventa.CURRVAL
- SE POT FOLOSI:
1. Lista SELECT care nu e parte a unui subquery
2. Intr-un subquery de la INSERT (in SELECT)
3. VALUE –de la INSERT
4. SET- de la UPDATE
- NU SE POT FOLOSI:
1. VIEW (SELECT) /DEFAULT value la CREATE/ ALTER TABLE
2. SELECT cu Distinct
3. SELECT CU GROUP BY, HAVING sau ORDER BY
4. Subquery in SELECT, DELETE, UPDATE
USER_SEQUENCE
ALTER SEQUENCE nume
INCREMENT BY
MAX VALUE n …
-START WITH – NU!
-NUMAI VAL URM SUNT AFECTATE
-MAXVALUE >P CEA DE LA CREATE
-OWNER SAU USER CU PRIVILEGII
DROP SEQUENCE nume