oracle

Klucz obcy (Foreign key)

W celu utworzenia tabeli z kluczem obcym nazwanej np. TABELA_FK odnoszącej się w kolumnie KURS_ID do kolumny ID z tabeli TABELA musimy odpowiednio skonstruować CONSTRAINT z kluczem obcym FK_P1:

CREATE TABLE TABELA_FK
(
ID INTEGER NOT NULL,
NAME VARCHAR2(20) NOT NULL,
KURS_ID INTEGER NOT NULL,
CONSTRAINT FK_P1 FOREIGN KEY (KURS_ID) REFERENCES TABELA(ID),
CONSTRAINT TABELA_FK2 PRIMARY KEY (ID)
);

Tags: 

Rankingi RANK, DENSE_RANK, PARTITION

RANK() - Tworzy ranking niegęsty

select
kolumna1,
kolumna2,
kolumna3,
RANK() OVER (order by kolumna3 desc) ranking
from tabela1

DENSE_RANK() - Tworzy ranking gęsty

select
kolumna1,
kolumna2,
kolumna3,
DENSE_RANK() OVER (order by kolumna3 desc) ranking_gesty
from tabela1

Tags: 

Podsumowania GROUPING, GROUPING_ID, GROUPING SETS, GROUP_ID

GROUPING - Funkcja jednoargumentowa., dla kolumny użytej w grupowaniu pokazuje 1, jeśli wiersz jest podsumowaniem. Tam gdzie są same 0 nie mamy podsumowań.

select
kolumna1,
kolumna2,
GROUPING(kolumna1) kolumna_grupujaca,
sum(kolumna3) suma
from tabela1
where
kolumna1 in (10,20,30) or kolumna1 is null
group by cube (kolumna1, kolumna2)

Tags: 

Podsumowania ROLLUP

ROLLUP - suma wszystkich sum, zawiera w sobie sortowanie, jest wolne, wyrzuca podsumowanie na końcu.

select
kolumna1,
sum(kolumna2)
from tabela1
group by ROLLUP(kolumna1)

CUBE - suma wszystkich sum, działa jeszcze wolniej niż ROLLUP, wyrzuca podsumowanie na początku

Tags: 

Tabela - tworzenie i usuwanie

Tworzenie prostej tabeli

create table tab (
a int,
b int,
c int,
d int
);

Tags: 

Podzapytanie CTE

CTE - Common Table Expression

WITH
kwerenda
as
(select
kolumna1,
kolumna2
from tabela1)
select * from kwerenda

Tags: 

GROUP BY i HAVING BY - Przykłady

select
kolumna1,
count(*)
from tabela1
group by
kolumna1

select
kolumna1,
kolumna2,
count(*)
from tabela1
group by
kolumna1,
kolumna2
order by kolumna1

Tags: 

Funkcje grupujące COUNT(*), SUM, AVG, MAX, MIN

COUNT(*) - Ilość wierszy
Przykład:

select
kolumna1,
kolumna2,
count(*)
from tabela1
group by kolumna1, kolumna2
order by kolumna1

SUM - Suma
Przykład:

select
count(*)
sum(kolumna1)
from tabela1

Inne funkcje grupujące:

Tags: 

Podzapytania skorelowane - Przykłady

select * from tabela1 e
where
kolumna1 > (select avg(kolumna1) from tabela1
where kolumna1 = e.kolumna1)

select
kolumna1,
(select kolumna2 from tabela1 where kolumna3 = e.kolumna3) e
from tabela2 e

Tags: 

Podzapytania jedno i wielokolumnowe - Przykłady

Podzapytanie jednokolumnowe

select * from tabela1
where
kolumna1 = (select kolumna1 from tabela2
where kolumna2 = 'Wartosc')

select * from tabela1
where
kolumna1 IN (select kolumna1 from tabela2
where kolumna2 IN ('Wartosc1', Wartosc2'))

Tags: 

Strony

Subskrybuj RSS - oracle