Baza
DVD Rental Service
source
restore
UNION
SELECT film_id, title
FROM film
WHERE title ILIKE 'Ac%'
UNION --ALL
SELECT film_id, title
FROM film
WHERE title ILIKE 'A%'
ORDER BY title;
EXCEPT
SELECT film_id, title
FROM film
WHERE title ILIKE 'A%'
EXCEPT
SELECT film_id, title
FROM film
WHERE title ILIKE 'Ac%'
ORDER BY title;
INTERSECT
SELECT film_id, title
FROM film
WHERE title ILIKE 'A%'
INTERSECT
SELECT film_id, title
FROM film
WHERE title ILIKE 'Ac%'
ORDER BY title;
Index
CREATE INDEX index_name ON table_name (field_name);
DROP INDEX index_name;
- B-tree (default)
- Hash (uuid)
- GiST (2d geometric data)
- SP-GiST (space partitioning)
- GIN (arrays)
CREATE INDEX index_name_2 ON table_name (field_name_a, field_name_b);
index (a, b, c)
WHERE a = 5 AND b >= 42 AND c < 77
a = 5
b = 42 with a = 5
entries c >= 77 would be skipped
CREATE INDEX test2_info_nulls_low ON test2 (info NULLS FIRST);
CREATE INDEX test3_desc_index ON test3 (id DESC NULLS LAST);
CREATE UNIQUE INDEX name ON table (column [, ...]);
CREATE UNIQUE INDEX test1_uniq_int ON tests ((floor(double_col)));
CREATE INDEX orders_unbilled_index ON orders (order_nr) WHERE billed is not true;
Ćwiczenia
- sprawdzić i przenalizować indeksy istniejące w bazie
- napisać zapytania:
- na tabeli
logs dodac indexy:
- pole string, jaki typ indeksu?
- pole timestamp, jaki typ indeksu?
- pole uuid (jako PK), jaki typ indeksu?