Oracle-Klauseln - Leitfaden zu den 9 wichtigsten Oracle-Klauseln (Beispiel)

Inhaltsverzeichnis:

Anonim

Einführung in Oracle-Klauseln

Klauseln in oracle ähneln Schlüsselwörtern, die für den jeweiligen Zweck verwendet werden oder die besondere Bedeutung angeben. Einige der Klauseln in oracle sind obligatorisch und einige der Klauseln sind optional.

Die Liste der Klausel, die in Orakel vorhanden ist, ist unten angegeben -

  • FROM-Klausel: Dies ist ein obligatorischer Bestandteil einer SelectThe FROM-Klausel, die den Namen einer Tabelle angibt, von der aus auf die Daten zugegriffen werden soll.
  • CONSTRAINT-Klausel: Dies ist eine optionale Klausel einer CREATE TABLE-Anweisung. Eine CONSTRAINT-Klausel definiert eine Regel, die beim Einfügen der Daten zu erfüllen ist.
  • WHERE-Klausel: Dies ist eine optionale Klausel einer Select-Anweisung, einer Update-Anweisung oder einer DELETE-Anweisung. Die WHERE-Klausel gibt an, welche Zeilen basierend auf einer Bedingung ausgewählt werden sollen.
  • ORDER BY-Klausel: Dies ist eine optionale Klausel der select-Anweisung oder einer CREATE VIEW-Anweisung oder einer INSERT-Anweisung. Eine ORDER BY-Klausel gibt an, in welcher Reihenfolge die Ergebnismengenzeilen angezeigt werden sollen.
  • FOR UPDATE-Klausel: Dies ist eine optionale Klausel einer SELECT-Anweisung. Die Cursor sind standardmäßig schreibgeschützt. Der Cursor sollte aktualisierbar sein. Dies ist in der FOR UPDATE-Klausel angegeben. Die FOR UPDATE-Klausel erzwingt eine check SELECT-Anweisung während der Kompilierung, um die Bedingung für die Aktualisierbarkeit eines Cursors zu erfüllen.
  • GROUP BY-Klausel: Dies ist eine optionale Klausel einer Select-Anweisung. Die GROUP BY-Klausel fasst ein Ergebnis in Gruppen zusammen.
  • HAVING-Klausel: Dies ist eine optionale Klausel einer select-Anweisung. Die HAVING-Klausel schränkt die Gruppenauswahl ein, die das Ergebnis einer GROUP BY-Klausel ist.
  • Die Klauseln result offset und fetch first: Mit der Klausel result offset werden die N ersten Zeilen übersprungen und die verbleibenden Zeilen als Ergebnismenge ausgewählt. Die fetch first-Klausel begrenzt zusammen mit der result offset-Klausel die Anzahl der Zeilen, die in der Ergebnismenge ausgewählt wurden.
  • USING-Klausel: Dies ist eine obligatorische Klausel in der Join-Operation . Die USING-Klausel zeigt, welche Spaltengleichheit geprüft werden soll, um die beiden Tabellen zu verbinden.
  • WHERE CURRENT OF-Klausel: Dies ist eine optionale Klausel in einer delete- oder UPDATE-Anweisung. Die WHERE CURRENT OF-Klausel gibt den Speicherort an, der bei aktualisierbaren Cursorn oder Aktualisierungen gelöscht wird.

Liste der Oracle-Klausel

Als nächstes wollen wir jede Klausel im Detail verstehen -

1. FROM-Klausel

Die FROM-Klausel ist ein obligatorischer Bestandteil einer Select-Anweisung. Die FROM-Klausel gibt den Namen der Tabellen an, von denen aus auf die Daten oder Spalten zur Verwendung in ausgewählten Ausdrücken zugegriffen werden soll.

Syntax der FROM-Klausel

FROM Table1 (, Table2 ) *

Abfragebeispiele

Select * from employee ;

Abfragebeispiel mit where-Klauselbedingung

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

Abfragebeispiel mit einer order by-Klausel

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

Abfragebeispiel mit einer Join-Bedingung

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. CONSTRAINT-Klausel

Die CONSTRAINT-Klausel ist eine optionale Klausel einer CREATE TABLE-Anweisung. Eine CONSTRAINT-Klausel definiert eine Regel, die beim Einfügen der Daten zu erfüllen ist.

Die EINSCHRÄNKUNGEN unterscheiden sich auf einer anderen Ebene, wie unten angegeben -

1. Einschränkung auf Spaltenebene

Einschränkungen auf Spaltenebene erzwingen die Regel für eine einzelne Spalte in der Tabelle. Die Einschränkungen auf Spaltenebene sind unten angegeben.

  • NOT NULL: Gibt an, dass die Spalte keine NULL-Werte speichern kann.
  • PRIMARY KEY: Gibt an, dass die Spaltenwerte eindeutig sein sollen. Weiter können sie zum Identifizieren einer Zeile in der Tabelle verwendet werden. Der PRIMARY KEY gibt implizit NOT NULL an.
  • EINZIGARTIG: Gibt an, dass die Spaltenwerte eindeutig sein müssen.
  • FOREIGN KEY: Gibt an, dass auf die Spaltenwerte als Primärschlüssel verwiesen werden muss.
  • CHECK: Gibt Regeln für die Spaltenwerte an.
2. Einschränkung auf Tabellenebene

Einschränkungen auf Tabellenebene erzwingen die Regel für eine oder mehrere Spalten in der Tabelle. Die Einschränkungen auf Tabellenebene stimmen mit denen auf Spaltenebene überein, der Unterschied besteht jedoch darin, wo die Einschränkung angegeben wird.

Abfragebeispiele

Beispiel für eine Primärschlüsseleinschränkung auf Spaltenebene namens did_pk -

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

Beispiel für eine Primärschlüsseleinschränkung auf Tabellenebene namens did_pk

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

3. WHERE-Klausel

Dies ist eine optionale Klausel einer Select-Anweisung, einer Update-Anweisung oder einer DELETE-Anweisung. Die WHERE-Klausel gibt an, welche Zeilen basierend auf einer Bedingung ausgewählt werden sollen. Es werden nur die Zeilen zurückgegeben oder gelöscht oder aktualisiert, bei denen die Bedingung oder der Ausdruck als WAHR ausgewertet werden.

Syntax der Where-Klausel

WHERE Booleanexpression

Beispiel

Where-Klausel Beispiel

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

Beispiel für eine WHERE-Klausel zum Verknüpfen mehrerer Tabellen

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

4. ORDER BY-Klausel

Eine ORDER BY-Klausel ist eine optionale Klausel der SELECT-Anweisung oder einer CREATE VIEW-Anweisung oder INSERT-Anweisung oder einer skalaren Unterabfrage oder einer Tabellenunterabfrage. Die Klausel gibt die Reihenfolge an, in der die Zeilen der Ergebnismenge angezeigt werden sollen.

Syntax der ORDER BY-Klausel

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

Der Spaltenname Verweist auf die Spaltennamen, nach denen die Ergebnismenge sortiert werden soll. Die ColumnPosition ist eine Ganzzahl, die die Spaltenposition in Select Items in der Abfrage der SELECT-Anweisung angibt. Der Ausdruck besteht aus Zahlen-, Datums- und Zeichenfolgenausdrücken. Der ASC gibt die aufsteigende Reihenfolge an. Das DES gibt die absteigende Reihenfolge an.

Ordnen Sie anhand eines Beispiels mit einem Korrelationsnamen

In der folgenden select-Anweisung enthält die location-Spalte den Korrelationsnamen country, der in der order by-Klausel verwendet wird.

Select name, location as country
From employee
Order by country

Ordnen Sie nach Beispiel mit einem numerischen Ausdruck

In der unten stehenden Select-Anweisung wird in der Order by-Klausel der Ausdruck Salary + Hike - verwendet.

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

Bestellen Sie nach Vorbild mit einer Funktion

In der folgenden select-Anweisung wird die Funktion order by clause verwendet, um die Position anzugeben.

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

Bestellen Sie anhand eines Beispiels und geben Sie dabei null an

Sie können die Position von Nullwerten mithilfe der Nullordnungsspezifikation angeben:

Select * from table1 order by column1 asc nulls last

5. FOR UPDATE-Klausel

Die FOR UPDATE-Klausel erzwingt eine SELECT-Prüfanweisung während der Kompilierung, um die Bedingung für die Aktualisierbarkeit eines Cursors zu erfüllen.

Syntax der FOR UPDATE-Klausel

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

Der Spaltenname wird in der FROM-Klausel der Abfrage angegeben.

FOR UPDATE-Klauselbeispiel

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

6. GROUP BY-Klausel

Diese Klausel gibt eine Teilmenge des Gruppenergebnisses zurück.

Syntax der GROUP BY-Klausel

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

Beispiele

Finden Sie das Durchschnittsgehalt eines Mitarbeiters, gruppiert nach Mitarbeitern

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

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

7. HAVING-Klausel

Die HAVING-Klausel schränkt die durch die GROUP BY-Klausel definierte Gruppenauswahl ein.

Syntax der HAVING-Klausel

HAVING Condition

Beispiel der HAVING-Klausel schränkt die Gruppenauswahl für avg (Gehalt) ein -

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

Die unten angegebene Abfrage ist ungültig, da die Spalte "deptid" keine Gruppierungsspalte ist.

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

Das Ergebnis wird versetzt und die ersten Klauseln werden abgerufen

Die Klauseln result offset und fetch first dienen zum Überspringen der N ersten Zeilen und fetch first, um die Anzahl der in der Ergebnismenge ausgewählten Zeilen zu begrenzen.

Syntax von The result offset und fetch first clauses -

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

Beispiele

Holen Sie sich die erste Reihe von T

Select * from employee fetch the first row only

8. Using-Klausel

Die using-Klausel wird verwendet, um die beiden Tabellen basierend auf der Bedingung zu verknüpfen.

Syntax der using-Klausel

Using ( columnname (, columnname )* )

Beispiele

In diesem Beispiel werden die Ländertabelle und die Städtetabelle unter der Bedingung "cities.country ist gleich Ländern" verknüpft. Land -

Select * from employee join department
using (eid)

9. WHERE CURRENT OF-Klausel

Die WHERE CURRENT OF-Klausel gibt den Speicherort an, der bei aktualisierbaren Cursorn oder Aktualisierungen gelöscht wird.

Die Syntax der WHERE CURRENT OF-Klausel

WHERE CURRENT OF cursorName

Beispiel

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");

Empfohlene Artikel

Dies ist eine Anleitung zu Oracle-Klauseln. Hier besprechen wir die List of Oracles-Klausel mit den Beispielen und die Syntax mit den jeweiligen Ergebnissen. Klauseln in Oracle sind Schlüsselwörter, die für den bestimmten Zweck verwendet werden oder die spezielle Bedeutung angeben. Sie können auch unsere anderen vorgeschlagenen Artikel durchgehen, um mehr zu erfahren -

  1. Oracle Warehouse Builder
  2. Was ist eine Oracle-Datenbank?
  3. Karriere bei Oracle
  4. Karriere in Oracle Database Administrator