Narzędzia użytkownika

Narzędzia witryny


fedora:aplikacje:libreoffice:base_pgsql

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Poprzednia rewizja po obu stronachPoprzednia wersja
Nowa wersja
Poprzednia wersja
fedora:aplikacje:libreoffice:base_pgsql [2025/11/02 09:39] – [Struktura bazy] sindapfedora:aplikacje:libreoffice:base_pgsql [2025/11/04 19:35] (aktualna) – [Tworzenie tabeli 'test_table'] sindap
Linia 134: Linia 134:
 ==== Dlaczego \c mojabaza? ==== ==== Dlaczego \c mojabaza? ====
 Będą połączonym do serwera postgresql z poziomu użytkownika postgres i użycia ''\c mojabaza'' możemy się rozłączyć i połączyć bezpośrednio do ''mojabaza'' użytkownikiem z uprawnieniami i dokończyć nadawanie uprawnień nowemu użytkownikowi. Będą połączonym do serwera postgresql z poziomu użytkownika postgres i użycia ''\c mojabaza'' możemy się rozłączyć i połączyć bezpośrednio do ''mojabaza'' użytkownikiem z uprawnieniami i dokończyć nadawanie uprawnień nowemu użytkownikowi.
 +===== Tabele =====
 +==== Tworzenie tabeli 'test_table' ====
 +Tworzona tabela musi zawierać minimum jedną kolumnę. Wprowadzenie polecenia ''CREATE TABLE test_table ();'' zakończy się błędem ''ERROR:  cannot create a table without columns''.
 +<code sql>
 +CREATE TABLE test_table (
 +    id SERIAL PRIMARY KEY,
 +    nazwa TEXT NOT NULL,
 +    opis TEXT,
 +    data_utworzenia TIMESTAMP DEFAULT CURRENT_TIMESTAMP
 +);
 +</code>
 +<WRAP center round important 80%>
 +Uwaga. Dodana kolumna o typie TEXT skutkuje tym, że po odświeżeniu tabel i wprowadzaniu danych tekstowych czasem w polach mogą pojawić się zera. Jeżeli tak się stanie odświeżenie tabel nie wystarcza. Trzeba wyłączyć i włączyć LO Base.
 +</WRAP>
 +
 +==== Dodanie kolumny 'lokalizacja' do tabeli 'test_table' ====
 +<code sql>
 +ALTER TABLE test_table
 +ADD COLUMN lokalizacja TEXT;
 +</code>
 +
 +==== Dodanie kolumny 'rok' z wartością domyślną '2025' do tabeli 'test_table' ====
 +<code sql>
 +ALTER TABLE test_table
 +ADD COLUMN rok INTEGER DEFAULT 2025;
 +</code>
 +
 +==== Dodanie kolumny 'kraj' z wartością domyślną 'Polska' obowiązkiem wpisu do tabeli 'test_table' ====
 +<code sql>
 +ALTER TABLE test_table
 +ADD COLUMN kraj TEXT NOT NULL DEFAULT 'Polska';
 +</code>
 +
 +==== Dodanie kolumny 'artysta_id' z kluczem obcym 'artysci(id)' ====
 +Dzięki temu ''test_table.artysta_id'' będzie wskazywać na ''artysci.id''.
 +<code sql>
 +ALTER TABLE test_table
 +ADD COLUMN artysta_id INTEGER REFERENCES artysci(id);
 +</code>
 +
 +
 ===== Struktura bazy ===== ===== Struktura bazy =====
  
-Tworzenie przykładowej tabeli artyści+==== Tworzenie przykładowej tabeli artyści ====
  
 <code sql> <code sql>
Linia 145: Linia 186:
 </code> </code>
  
-Tworzenie przykładowej tabeli utwory+==== Tworzenie przykładowej tabeli utwory ====
  
 <code sql> <code sql>
Linia 155: Linia 196:
     opis TEXT     opis TEXT
 ); );
 +</code>
 +
 +==== Tworzenie tabeli łącznikowej ====
 +
 +Ponieważ jeden utwór może mieć wielu artystów, a jeden artysta wiele utworów → relacja **wiele-do-wielu (many-to-many)**.
 +
 +<code sql>
 +CREATE TABLE utwor_artysta (
 +    utwor_id INTEGER REFERENCES utwory(id) ON DELETE CASCADE,
 +    artysta_id INTEGER REFERENCES artysci(id) ON DELETE CASCADE,
 +    PRIMARY KEY (utwor_id, artysta_id)
 +);
 +</code>
 +
 +==== Unikanie duplikatów ====
 +
 +Jeśli chcesz uniknąć duplikatów (np. dwa razy ten sam utwór-artysta), możesz wstawić unikatowe ograniczenie:
 +
 +<code sql>
 +ALTER TABLE utwor_artysta ADD CONSTRAINT unikalny_utwor_artysta UNIQUE (utwor_id, artysta_id)
 </code> </code>
 ===== Połączenie LibreOffice Base ===== ===== Połączenie LibreOffice Base =====
fedora/aplikacje/libreoffice/base_pgsql.1762072767.txt.gz · ostatnio zmienione: przez sindap

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki