Upravljanje tabel

Ustvarjanje pogledov

V učni enoti o podatkovnih bazah smo že spoznali poglede. Oglejmo si, kako ustvarimo pogled.

Ustvarjanje novega pogleda
CREATE VIEW IF NOT EXISTS pogled (stolpec1, stolpec2, stolpec3, ...)
AS poizvedba_select;

Kot primer si oglejmo, kako bi ustvarili pogled, ki bi uporabniku omogočal pregled, kako dobičkonosni so bili posamezni filmi. Polged bomo poimenovali film_dobicek, da ne bo prišlo do zmede s poimenovanjem.

Ustvarjanje pogleda »film_dobicek«
CREATE VIEW IF NOT EXISTS film_dobicek
AS
SELECT
  naslov,
  (prihodek_zda + prihodek_svet) - proracun AS dobicek
FROM film
JOIN blagajna ON film.id = blagajna.film_id;

Sedaj lahko pogled uporabimo in prikažemo vse tiste filme, katerih dobiček je presegel milijardo dolarjev. To naredimo preprosto takole:

Filmi, katerih dobiček je presegel milijardo dolarjev
SELECT * FROM film_dobicek WHERE dobicek >= 1000000000;

Urejanje tabel

Dodajanje novega stolpca je podobno, kot pri ustvarjanju tabele s stavkom CREATE TABLE. Določiti moramo vrsto podatkov stolpca skupaj z morebitnimi omejitvami in privzetimi vrednostmi, ki bodo uporabljene tako za obstoječe kot za nove vrstice.

Dodajanje novega stolpca
ALTER TABLE tabela
ADD stolpec vrsta_podatkov omejitev DEFAULT privzeta_vrednost;

Brisanje stolpcev je preprosto, vendar nekatere podatkovne baze (tudi SQLite) ne podpirajo te funkcije. Namesto tega moramo ustvariti novo tabelo in preseliti podatke.

Brisanje obstoječega stolpca
ALTER TABLE tabela
DROP COLUMN stolpec_za_brisanje;

Tabelo pa lahko seveda tudi preimenujemo.

Preimenovanje obstoječe tabele
ALTER TABLE tabela
RENAME TO novo_ime_tabele;

Brisanje tabel

V redkih primerih bomo morda želeli odstraniti celotno tabelo, vključno z vsemi njenimi podatki in metapodatki. Za to uporabimo stavek DROP TABLE, ki se od stavka DELETE razlikuje po tem, da poleg podatkov iz podatkovne baze popolnoma odstrani tudi tabelo.

Brisanje obstoječe tabele
DROP TABLE IF EXISTS tabela_za_brisanje;

Podobno kot pri ustvarjanju tabele lahko tudi pri brisanju tabele podatkovna baza vrne napako, če tabela ne obstaja. Tej napaki se lahko izognemo tako, da v stavku DROP TABLE uporabimo pogoj IF EXISTS.

Če imamo poleg tega še drugo tabelo, ki je odvisna od vrednosti stolpcev v tabeli, ki jo želimo izbrisati (na primer preko tujega ključa), potem bomo morali ali najprej posodobiti vse vrednosti v odvisni tabeli, ali pa odvisno tabelo v celoti odstraniti.