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:17] – [Minimalny ciąg dla nowego użytkownika pracującego z LO Base] sindapfedora:aplikacje:libreoffice:base_pgsql [2025/11/04 19:35] (aktualna) – [Tworzenie tabeli 'test_table'] sindap
Linia 68: Linia 68:
  
 ===== Połączenie DBeaver ===== ===== Połączenie DBeaver =====
-Za pierwszym razem łączymy się do bazy postgres z zaznaczeniem opcji ''Show all databases''. Bez tego nie utworzymy nowej bazy danych. Oczywiście utworzenie nowego użytkownika, bazy i jej stryktury można zrobić "z palca" z poziomu ''cmd'' czy ''Admin4'', ale lepiej od początku przywyknąć do użytkowania DBeaver.+Za pierwszym razem łączymy się do bazy postgres z zaznaczeniem opcji ''Show all databases''. Bez tego nie utworzymy nowej bazy danych. Oczywiście utworzenie nowego użytkownika, bazy i jej stryktury można zrobić "z palca" z poziomu ''cmd'' czy ''Admin4'', ale lepiej od początku przywyknąć do użytkowania DBeaver. W DBeaver otrzymujemy kolorowanie składni, gdzie w ''cmd'' tego nie mamy.
  
 ==== Tworzenie użytkownika dla przyszłej bazy ==== ==== Tworzenie użytkownika dla przyszłej bazy ====
Linia 133: Linia 133:
 </code> </code>
 ==== 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.
 +===== 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 =====
 +
 +==== Tworzenie przykładowej tabeli artyści ====
 +
 +<code sql>
 +CREATE TABLE artysci (
 +    id SERIAL PRIMARY KEY,
 +    nazwa TEXT NOT NULL UNIQUE
 +);
 +</code>
 +
 +==== Tworzenie przykładowej tabeli utwory ====
 +
 +<code sql>
 +CREATE TABLE utwory (
 +    id SERIAL PRIMARY KEY,
 +    tytul TEXT NOT NULL,
 +    rok INTEGER,
 +    czas INTERVAL,
 +    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>
 ===== Połączenie LibreOffice Base ===== ===== Połączenie LibreOffice Base =====
   * Połącz z istniejąca bazą danych   * Połącz z istniejąca bazą danych
fedora/aplikacje/libreoffice/base_pgsql.1762071425.txt.gz · ostatnio zmienione: przez sindap

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki