Úvod do klauzulí Oracle
Klauzule v Oracle jsou jako klíčová slova, která používají pro konkrétní účel nebo která specifikují zvláštní význam. Některá ustanovení ve vězení jsou povinná a některá ustanovení jsou volitelná.
Seznam klauzule, která je přítomna v Oracle, je uveden níže -
- Klauzule FROM: Jedná se o povinnou součást v klauzuli SelectThe FROM určuje název tabulky, ze které mají být data přístupná.
- Klauzula CONSTRAINT: Jedná se o volitelnou klauzuli příkazu CREATE TABLE. Klauzule CONSTRAINT definuje pravidlo, které musí být při vkládání dat splněno.
- Klauzule WHERE: Jedná se o volitelnou klauzuli příkazu Select nebo update, nebo DELETE. Klauzule WHERE určuje, které řádky mají být vybrány na základě podmínky.
- Klauzula OBJEDNÁVKA: Jedná se o volitelnou klauzuli příkazu select nebo příkazu CREATE VIEW nebo INSERT. Klauzule ORDER BY určuje, v jakém pořadí se zobrazí řádky sady výsledků.
- Doložka FOR UPDATE: Jedná se o volitelnou klauzuli příkazu SELECT. Kurzory jsou ve výchozím nastavení pouze pro čtení. Kurzor by měl být aktualizovatelný, určuje se v klauzuli FOR UPDATE, klauzule FOR UPDATE vynucuje během kompilace příkaz SELECT check, aby splňoval podmínku, že má být aktualizovatelný.
- Klauzule GROUP BY: Jedná se o volitelnou klauzuli příkazu Select, klauzule GROUP BY zapíše výsledek do skupin.
- HAVING Klauzule: Jedná se o volitelnou klauzuli příkazu select. Klauzule HAVING omezuje výběr skupiny, který je výsledkem klauzule GROUP BY.
- Posunutí výsledku a načtení prvních klauzulí: Klauzule Posunutí výsledku slouží k přeskočení prvních N řádků a výběru zbývajících řádků jako sady výsledků. První klauzule načtení společně s klauzulí offsetu výsledku omezuje počet řádků vybraných v sadě výsledků.
- USING Klauzule: Jedná se o povinnou klauzuli v operaci spojení . Klauzule USING ukazuje, které sloupce mají být zkontrolovány, aby se spojily dvě tabulky.
- KDE KURZ PODLE: Jedná se o volitelnou klauzuli v příkazu delete nebo UPDATE. Klauzule WHERE CURRENT OF určuje umístění, které odstraní aktualizovatelné kurzory nebo aktualizace.
Seznam klauzule Oracle
Dále si podrobně vysvětlíme každou doložku -
1. Z doložky
Klauzula FROM je povinnou součástí příkazu Select. Klauzule FROM určuje název tabulek, ze kterých mají být data nebo sloupce přístupná pro použití ve vybraných výrazech.
Syntaxe klauzule FROM
FROM Table1 (, Table2 ) *
Příklady dotazů
Select * from employee ;
Příklad dotazu s podmínkou klauzule
select d.dep_id
from department as d
where dep_id< 10
Příklad dotazu s objednávkou podle klauzule
select st .tablename, sc .isindex
from sys.systables st, sys.sysconglomerates sc
where st.tableid = sc.tableid
order by tablename, isindex
Příklad dotazu s podmínkou spojení
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. Doložka o omezení
Klauzule CONSTRAINT je volitelná klauzule příkazu CREATE TABLE. Klauzule CONSTRAINT definuje pravidlo, které musí být při vkládání dat splněno.
KONTRAINTY se liší na jiné úrovni, jak je uvedeno níže -
1. Omezení úrovně sloupce
Omezení na úrovni sloupců vynucuje pravidlo do jednoho sloupce v tabulce. Omezení úrovně sloupců jsou uvedena níže -
- NOT NULL: Určuje, že ve sloupci nelze uložit hodnoty NULL.
- PRIMÁRNÍ KLÁVES: Určuje, že hodnoty sloupců by měly být jedinečné, které lze dále použít k identifikaci řádku v tabulce. PRIMÁRNÍ KLÁVES implicitně určuje NE NULL.
- UNIQUE: Určuje, že hodnoty sloupců musí být jedinečné.
- FOREIGN KEY: Určuje, že hodnoty sloupců musí být odkazovány jako primární klíč.
- KONTROLA: Určuje pravidla pro hodnoty sloupců.
2. Omezení na úrovni tabulky
Omezení na úrovni tabulky vynucují pravidlo na jeden nebo více sloupců v tabulce. Omezení na úrovni tabulky jsou stejné jako omezení na úrovni sloupce, ale rozdíl je tam, kde je omezení specifikováno.
Příklady dotazů
Příklad omezení primárního klíče na úrovni sloupce s názvem did_pk -
create table department
(
Deptid number constraint did_pk primary key,
Dname char(10),
Location char(80) not null,
) ;
Příklad omezení primárního klíče na úrovni tabulky s názvem did_pk
create table department
(
Deptid number constraint did_pk primary key,
Dname char(10),
Location char(80) not null,
primary key (Deptid)
);
3. KDE Doložka
Toto je volitelná klauzule příkazu Select nebo update, nebo DELETE. Klauzule WHERE určuje, které řádky mají být vybrány na základě podmínky. Pouze ty řádky se vracejí, mazají nebo aktualizují, pokud se podmínka nebo výraz vyhodnotí na PRAVDA.
Syntaxe klauzule Where
WHERE Booleanexpression
Příklad
Příklad klauzule
select *
from flight
where business_taken_seats is null
or business_taken_seats = 0
Příklad klauzule pro spojení více tabulek
select a.*, last name
from emp_act as a, employee as e
where a.empno = e.empno ;
4. OBJEDNÁVKA PODLE klauzule
Klauzule ORDER BY je volitelná klauzule příkazu SELECT nebo příkazu CREATE VIEW nebo INSERT nebo Scalar Subquery nebo Table Subquery. Klauzule určuje pořadí, ve kterém se zobrazí řádky sady výsledků.
Syntaxe klauzule ORDER BY
ORDER BY ( columnName | Expression | ColumnPosition )
( ASC (default) | DESC ) ;
Název sloupce Odkazuje na názvy sloupců, podle kterých se výsledek nastaví na objednávku. ColumnPosition je celé číslo, které určuje pozici sloupce v položkách Select v dotazu příkazu SELECT. Výraz je číselný, datetime a řetězcové výrazy. ASC Určuje vzestupné pořadí. DES určuje sestupné pořadí.
Seřadit podle příkladu s názvem korelace
Ve výpisu níže vyberte sloupec umístění s názvem země korelace, která se používá v klauzuli pořadí podle -
Select name, location as country
From employee
Order by country
Seřadit podle příkladu s číselným výrazem
V níže uvedeném výpisu použijte řádek podle klauzule výraz plat + výlet -
Select name, salary, hike from emp
Order by salary + hike
Pořadí podle příkladu s funkcí
V níže uvedeném příkazu pro výběr použijte funkci Order by Klaus k určení pozice -
Select a, len from calculation
Order by sin(a)
Řazení podle příkladu s nulovým uspořádáním
Polohu hodnot null můžete zadat pomocí specifikace null ordering:
Select * from table1 order by column1 asc nulls last
5. Doložka o aktualizaci
Klauzule FOR UPDATE vynucuje příkaz check SELECT během kompilace, aby splňoval podmínku, že má být aktualizovatelný kurzor.
Syntaxe klauzule FOR UPDATE
FOR
(
FETCH ONLY | READ ONLY | UPDATE ( OF columnName (, columnName)* ) )
Název sloupce určuje v klauzuli FROM dotazu.
Příklad klauzule UPDATE
select eid, name, salary, deptid from emphist for update
6. GROUP GROUP Klauzule
Tato klauze vrátí výsledek podmnožiny skupin.
Syntaxe klauzule GROUP BY
GROUP BY
(
columnName (, columnName )*
|ROLLUP ( column-Name (, column-Name )* )
)
Příklady
Najděte průměrný plat zaměstnance seskupený podle deptid
select avg (salary), deptid
from employee
group by deptid ;
select max (salary), deptid
from employee
group by deptid ;
7. Mají klauzuli
Klauzule HAVING omezuje výběr skupiny definovaný klauzulí GROUP BY.
Syntaxe klauzule HAVING
HAVING Condition
Příklad klauzule HAVING omezuje výběr skupiny pro průměr (plat) -
select avg (salary), deptid
from employee
group by deptid having avg(salary) > 50000;
Níže uvedený dotaz je nezákonný, protože sloupec deptid není sloupec seskupení -
select avg (salary), deptid
from employee
group by deptid having deptid > 5;
Výsledek offset a načíst první klauzule
Prvky s odsazením a načtením první klauzule slouží k přeskočení prvních N řádků a načtení první klauzule k omezení počtu řádků vybraných v sadě výsledků.
Syntaxe offsetu výsledku a načtení prvních vět -
OFFSET ( integer ) (ROW | ROWS)
FETCH ( FIRST | NEXT ) ( integer ) (ROW | ROWS) ONLY
Příklady
Načíst první řádek T
Select * from employee fetch the first row only
8. Použití klauzule
Klauzule using se používá ke spojení dvou tabulek na základě podmínky.
Syntaxe použití klauzule
Using ( columnname (, columnname )* )
Příklady
V tomto příkladu se tabulka zemí a tabulka měst spojí za podmínky, že jsou města. země -
Select * from employee join department
using (eid)
9. KDYŽ JE AKTUÁLNÍ Doložka
Klauzule WHERE CURRENT OF určuje umístění, které se vymaže na aktualizovatelných kurzorech nebo aktualizacích.
Syntaxe klauzule WHERE CURRENT OF
WHERE CURRENT OF cursorName
Příklad
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");
Doporučené články
Toto je průvodce klauzuly Oracle. Zde diskutujeme příklad klauzule Oracles s příklady a syntaxí s příslušnými výsledky (efektivní výsledky. Klauzy v Oracle) jsou klíčová slova, která se používají ke konkrétnímu účelu nebo která specifikují zvláštní význam. Další informace naleznete v našich dalších doporučených článcích. -
- Oracle Warehouse Builder
- Co je to databáze Oracle
- Kariéra v Oracle
- Kariéra ve správci databáze Oracle