Introduzione alle clausole Oracle

Le clausole in Oracle sono come parole chiave che utilizzano per lo scopo specifico o che specificano il significato speciale. Alcune delle clausole in Oracle sono obbligatorie e alcune delle clausole sono facoltative.

L'elenco della clausola presente in Oracle è riportato di seguito -

  • Clausola FROM: è una parte obbligatoria in una clausola SelectThe FROM specifica il nome di una tabella da cui i dati devono essere accessibili.
  • Clausola CONSTRAINT: è una clausola facoltativa di un'istruzione CREATE TABLE. Una clausola CONSTRAINT definisce una regola che deve essere soddisfatta durante l'inserimento dei dati.
  • Clausola WHERE: è una clausola facoltativa di un'istruzione Select o di un aggiornamento o di un'istruzione DELETE. La clausola WHERE specifica quali righe devono essere selezionate in base a una condizione.
  • Clausola ORDER BY: è una clausola facoltativa dell'istruzione select o un'istruzione CREATE VIEW o un'istruzione INSERT. Una clausola ORDER BY specifica in quale ordine devono apparire le righe del set di risultati.
  • Clausola FOR UPDATE: è una clausola facoltativa di un'istruzione SELECT. I cursori sono di default di sola lettura. Il cursore deve essere aggiornabile specifica nella clausola FOR UPDATE, la clausola FOR UPDATE impone un'istruzione SELECT di controllo durante la compilazione per soddisfare la condizione affinché un cursore sia aggiornabile.
  • Clausola GROUP BY: è una clausola facoltativa di un'istruzione Select, la clausola GROUP BY suddivide un risultato in gruppi.
  • HAVING Clause: è una clausola facoltativa di un'istruzione select. La clausola HAVING limita la selezione del gruppo che sono i risultati di una clausola GROUP BY.
  • L'offset del risultato e il recupero delle prime clausole: la clausola dell'offset del risultato consente di saltare le prime N righe e selezionare le righe rimanenti come set di risultati. La prima clausola di recupero utilizza insieme alla clausola di offset del risultato per limitare il numero di righe selezionate nel set di risultati.
  • Clausola USING: è una clausola obbligatoria nell'operazione di join . La clausola USING mostra quali colonne deve essere verificata l'uguaglianza per unire le due tabelle.
  • WHERE CURRENT OF Clausola: è una clausola facoltativa in un'istruzione delete o UPDATE. La clausola WHERE CURRENT OF specifica la posizione che viene eliminata dai cursori aggiornabili o dagli aggiornamenti.

Elenco delle clausole Oracle

Quindi, capiamo ogni clausola in dettaglio -

1. DA clausola

La clausola FROM è una parte obbligatoria in un'istruzione Select. La clausola FROM specifica il nome delle tabelle da cui i dati o le colonne devono essere accessibili per l'uso in espressioni selezionate.

Sintassi della clausola FROM

FROM Table1 (, Table2 ) *

Esempi di query

Select * from employee ;

Esempio di query con la condizione della clausola where

select d.dep_id
from department as d
where dep_id< 10

Esempio di query con una clausola order by

select st .tablename, sc .isindex
from sys.systables st, sys.sysconglomerates sc
where st.tableid = sc.tableid
order by tablename, isindex

Esempio di query con una condizione di join

select *
from flights f, flightavailability fa
where fa.flight_id = f.flight_id
and fa.segment_number = f.segment_number
and f.flight_id < 115

2. Clausola di vincolo

La clausola CONSTRAINT è una clausola facoltativa di un'istruzione CREATE TABLE. Una clausola CONSTRAINT definisce una regola che deve essere soddisfatta durante l'inserimento dei dati.

I VINCOLI sono diversi a un livello diverso, come indicato di seguito -

1. Vincolo a livello di colonna

I vincoli a livello di colonna applicano la regola a una singola colonna nella tabella. Di seguito sono riportati i vincoli a livello di colonna:

  • NOT NULL: specifica che la colonna non può memorizzare valori NULL.
  • TASTO PRIMARIO: specifica che i valori della colonna devono essere univoci, quale ulteriore può essere utilizzato per identificare una riga nella tabella. Il PRIMARY KEY specifica implicitamente NOT NULL.
  • UNICO: specifica che i valori della colonna devono essere univoci.
  • CHIAVE ESTERA: specifica che i valori della colonna devono essere indicati come chiave primaria.
  • CHECK: specifica le regole per i valori della colonna.
2. Vincolo a livello di tabella

I vincoli a livello di tabella impongono la regola a una o più colonne nella tabella. I vincoli a livello di tabella sono gli stessi del vincolo a livello di colonna ma la differenza è dove viene specificato il vincolo.

Esempi di query

Esempio di vincolo di chiave primaria a livello di colonna denominato did_pk -

create table department
(
Deptid number constraint did_pk primary key,
Dname char(10),
Location char(80) not null,
) ;

Esempio di vincolo di chiave primaria a livello di tabella denominato did_pk

create table department
(
Deptid number constraint did_pk primary key,
Dname char(10),
Location char(80) not null,
primary key (Deptid)
);

3. DOVE Clausola

Questa è una clausola opzionale di un'istruzione Select o di un aggiornamento o di un'istruzione DELETE. La clausola WHERE specifica quali righe devono essere selezionate in base a una condizione. Solo quelle righe restituiscono, eliminano o aggiornano dove la condizione o l'espressione restituisce VERO.

Sintassi della clausola Where

WHERE Booleanexpression

Esempio

Esempio di clausola Where

select *
from flight
where business_taken_seats is null
or business_taken_seats = 0

Esempio di clausola Where per unire più tabelle

select a.*, last name
from emp_act as a, employee as e
where a.empno = e.empno ;

4. ORDINA PER Clausola

Una clausola ORDER BY è una clausola facoltativa dell'istruzione SELECT o un'istruzione CREATE VIEW o un'istruzione INSERT o una sottoquery scalare o una sottoquery tabella. La clausola specifica l'ordine in cui compaiono le righe del set di risultati.

Sintassi della clausola ORDER BY

ORDER BY ( columnName | Expression | ColumnPosition )
( ASC (default) | DESC ) ;

Nome colonna Si riferisce ai nomi delle colonne in base ai quali il risultato è impostato su ordine. ColumnPosition è un numero intero che specifica la posizione della colonna in Seleziona elementi nella query dell'istruzione SELECT. L'espressione è numerica, datetime ed espressioni di stringa. ASC Specifica l'ordine crescente. Il DES specifica l'ordine decrescente.

Ordina per esempio con un nome di correlazione

Nella seguente istruzione select, la colonna della posizione ha il nome della correlazione paese che viene utilizzato nella clausola order by -

Select name, location as country
From employee
Order by country

Ordina per esempio con un'espressione numerica

Nella seguente dichiarazione selezionare l'ordine per clausola usa espressione stipendio + escursione -

Select name, salary, hike from emp
Order by salary + hike

Ordina per esempio con una funzione

Nella seguente istruzione select la clausola order by usa la funzione per specificare la posizione -

Select a, len from calculation
Order by sin(a)

Ordina per esempio specificando con ordinamento nullo

È possibile specificare la posizione di valori null utilizzando la specifica di ordinamento null:

Select * from table1 order by column1 asc nulls last

5. FOR UPDATE Clausola

La clausola FOR UPDATE applica un'istruzione SELECT di controllo durante la compilazione per soddisfare la condizione per l'aggiornamento di un cursore.

Sintassi della clausola FOR UPDATE

FOR
(
FETCH ONLY | READ ONLY | UPDATE ( OF columnName (, columnName)* ) )

ColumnName specifica nella clausola FROM della query.

Esempio di clausola FOR UPDATE

select eid, name, salary, deptid from emphist for update

6. Clausola GROUP BY

Questa clausola restituisce un sottoinsieme di risultati di gruppi.

Sintassi della clausola GROUP BY

GROUP BY
(
columnName (, columnName )*
|ROLLUP ( column-Name (, column-Name )* )
)

Esempi

Trova lo stipendio medio di un dipendente raggruppato per reparto

select avg (salary), deptid
from employee
group by deptid ;

select max (salary), deptid
from employee
group by deptid ;

7. HAVING Clause

La clausola HAVING limita la selezione del gruppo definita dalla clausola GROUP BY.

Sintassi della clausola HAVING

HAVING Condition

L'esempio della clausola HAVING limita la selezione del gruppo per avg (stipendio) -

select avg (salary), deptid
from employee
group by deptid having avg(salary) > 50000;

La query fornita di seguito è illegale perché la colonna deptid non è una colonna di raggruppamento -

select avg (salary), deptid
from employee
group by deptid having deptid > 5;

Il risultato compensa e recupera le prime clausole

Le clausole offset offset e fetch first vengono utilizzate per saltare le prime N righe e recuperare la clausola first use per limitare il numero di righe selezionate nel set di risultati.

Sintassi di Offset del risultato e recupero delle prime clausole -

OFFSET ( integer ) (ROW | ROWS)
FETCH ( FIRST | NEXT ) ( integer ) (ROW | ROWS) ONLY

Esempi

Prendi la prima riga di T

Select * from employee fetch the first row only

8. Utilizzo della clausola

La clausola using utilizza per unire le due tabelle in base alla condizione.

Sintassi dell'uso della clausola

Using ( columnname (, columnname )* )

Esempi

Nell'esempio, la tabella dei paesi e la tabella delle città si uniscono a condizione che cities.country sia uguale a country. nazione -

Select * from employee join department
using (eid)

9. DOVE CORRENTE DELLA Clausola

La clausola WHERE CURRENT OF specifica la posizione che viene eliminata dai cursori aggiornabili o dagli aggiornamenti.

La sintassi della clausola WHERE CURRENT OF

WHERE CURRENT OF cursorName

Esempio

Statement stmt = conn.createStatement();
stmt.setCursorName("employeeres");
ResultSet res = conn.executeQuery(
"SELECT ename, salary FROM employee FOR UPDATE OF salary");
Statement stmt1 = conn.createStatement();
stmt1.executeUpdate("UPDATE employee SET salary = salary +10000 WHERE CURRENT
OF employeeres");

Articoli consigliati

Questa è una guida alle clausole Oracle. Qui discutiamo la clausola Elenco di oracoli con gli esempi e la sintassi con i relativi (risultati effettivi. Le clausole in oracolo sono parole chiave che usano per lo scopo specifico o che specificano il significato speciale. Puoi anche consultare i nostri altri articoli suggeriti per saperne di più -

  1. Oracle Warehouse Builder
  2. Cos'è Oracle Database
  3. Carriera in Oracle
  4. Carriera in Oracle Database Administrator

Categoria: