SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Downloaden Sie, um offline zu lesen
PostgreSQL.
                           Leksykon kieszonkowy
                           Autor: Marcin Lis
                           ISBN: 83-246-0869-9
                           Format: B6, stron: 160




                                                     Rozpocznij pracê z bazami danych
                           PostgreSQL to jeden z najpopularniejszych systemów zarz¹dzania relacyjnymi bazami
                           danych (RDBMS) rozwijany na zasadzie wolnego oprogramowania. Zdaniem twórców
                           jest to równie¿ najbardziej zaawansowany tego typu produkt na œwiecie. PostgreSQL
                           umo¿liwia efektywne zarz¹dzanie bazami danych w ró¿nych systemach operacyjnych,
                           w tym w licznych dystrybucjach Linuksa, systemach z rodziny Unix, Mac OS czy
                           Windows. Jeœli chodzi o mo¿liwoœci, wydajnoœæ i stabilnoœæ, PostgreSQL nie ustêpuje
                           komercyjnemu oprogramowaniu, a pod niektórymi wzglêdami nawet je przewy¿sza.
                           „PostgreSQL. Leksykon kieszonkowy” to zwiêz³y zbiór praktycznych informacji
                           o jednym z najlepszych systemów RDBMS. Dziêki tej ksi¹¿ce szybko zainstalujesz
                           PostgreSQL oraz rozpoczniesz administrowanie tym systemem. Poznasz u¿ywane
                           w nim typy danych, popularne instrukcje, funkcje i operatory. Nauczysz siê obs³ugiwaæ
                           tabele i tworzyæ indeksy. Dowiesz siê, jak stosowaæ agregacje, z³¹czenia i unie.
                           Przeczytasz o technikach tworzenia widoków oraz u¿ywania transakcji, a tak¿e
                           o z³o¿onych instrukcjach PostgreSQL. Poznasz te¿ metody obs³ugi znaków narodowych.
                               • Instalowanie PostgreSQL
                               • Administrowanie PostgreSQL
                               • Typy danych
                               • Instrukcje, funkcje i operatory
                               • Tworzenie i u¿ywanie indeksów
                               • Stosowanie z³¹czeñ, unii i widoków
                               • Agregowanie i grupowanie danych
                               • Stosowanie transakcji
                               • Korzystanie ze znaków narodowych
                                         Jeœli szukasz nowoczesnego i darmowego systemu RDBMS,
Wydawnictwo Helion                                     PostgreSQL to doskona³y wybór
ul. Koœciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Spis treści



      Wstęp .............................................................................................7

1. Instalacja ....................................................................................... 8
      W systemie Linux                                                                                  8
      W systemie Windows                                                                                9

2. Administracja.................................................................................11
      Uruchamianie i zatrzymywanie serwera                                                            11
      Obsługa kont użytkowników                                                                       12
      Zakładanie i usuwanie baz danych                                                                19
      Uruchamianie klienta PostgreSQL                                                                 20

3. Typy danych .................................................................................22
      Typy znakowe                                                                                    22
      Typy numeryczne                                                                                 23
      Typy monetarne                                                                                  26
      Typy binarne                                                                                    26
      Typy daty i czasu                                                                               26
      Typy logiczne                                                                                   28
      Typy bitowe                                                                                     28
      Typy specjalne                                                                                  29




                                                                                                        3
4. Obsługa tabel .............................................................................. 32
          Tworzenie tabel                                                                             32
          Modyfikacja tabel                                                                           41
          Usuwanie tabel                                                                              46

    5. Podstawowe instrukcje SQL ........................................................47
          Wstawianie danych                                                                           47
          Pobieranie danych                                                                           49
          Modyfikacja danych                                                                          54
          Usuwanie danych                                                                             55

    6. Indeksy .........................................................................................57
          Typy indeksów                                                                               57
          Tworzenie indeksów                                                                          58
          Indeksy częściowe                                                                           59
          Usuwanie indeksów                                                                           59

    7. Funkcje i operatory ..................................................................... 60
          Funkcje                                                                                     60
          Operatory                                                                                   85

    8. Agregacja i grupowanie danych ................................................ 98
          Przykłady użycia funkcji agregujących                                                      98
          Grupowanie danych                                                                         100
          Klauzula HAVING                                                                           102

    9. Złączenia, unie, widoki .............................................................103
          Łączenie wyników zapytań                                                                  103
          Złączenia tabel                                                                           105
          Widoki                                                                                    111




4    |    Spis treści
10. Złożone instrukcje SQL .............................................................. 114
       Podzapytania                                                                               114
       Podzapytania w klauzuli FROM                                                               115
       Podzapytania w klauzuli WHERE                                                              116
       Podzapytania skorelowane                                                                   117
       Złożona instrukcja INSERT                                                                  119
       Złożona instrukcja DELETE                                                                  120

11. Transakcje .................................................................................. 121
       Ogólnie o transakcjach                                                                     121
       Rozpoczynanie transakcji                                                                   122
       Zatwierdzanie transakcji                                                                   122
       Wycofywanie transakcji                                                                     123
       Transakcje domyślne                                                                        123
       Poziomy izolacji                                                                           123

12. Obsługa znaków narodowych ..................................................126
       Standardy kodowania                                                                        126
       Konwersje automatyczne                                                                     129

13. Kody błędów .............................................................................. 132

14. Słowa kluczowe .........................................................................140

       Skorowidz ..................................................................................153




                                                                             Spis treści      |     5
Rozdział 5. Podstawowe instrukcje SQL

Wstawianie danych

Instrukcja INSERT
Do umieszczania danych w tabelach służy instrukcja INSERT INTO.
Jej podstawowa forma ma ogólną postać:
 INSERT [INTO] nazwa_tabeli [(kolumna1, kolumna2, ...,
 kolumnaN)]
 VALUES (wartość1, wartość2, ..., wartośćN)

Powoduje ona wprowadzenie do tabeli nowego wiersza, w którym
w polu kolumna1 została zapisana wartość wartość1, w polu
kolumna2 — wartość wartość2 itd. Elementy instrukcji ujęte
w nawias klamrowy są opcjonalne.
Przy założeniu, że w bazie została umieszczona tabela osoby
o kolumnach:
  · id — przechowuje identyfikator,
  · imie — przechowuje imię,
  · nazwisko — przechowuje nazwisko,
utworzona za pomocą instrukcji:
 CREATE TABLE osoby
 (
   id INTEGER PRIMARY KEY NOT NULL,
   imie VARCHAR(20),
   nazwisko VARCHAR(30),
 )

wstawienie wiersza przechowującego dane Jana Kowalskiego,
któremu został nadany identyfikator 1, zostanie wykonane przez
instrukcję:


                         Rozdział 5. Podstawowe instrukcje SQL   |   47
INSERT INTO osoby (id, imie, nazwisko) VALUES (1, 'Jan',
 'Kowalski');

Taka instrukcja może być również rozbita na kilka wierszy, co
w przypadku dużej ilości danych może zwiększyć jej czytel-
ność, np.:
 INSERT INTO
   osoby (id, imie, nazwisko)
 VALUES
   (1, 'Jan', 'Kowalski');

W sytuacji gdy wstawiane są dane do wszystkich kolumn, a ich
kolejność jest zgodna z kolejnością kolumn, nazwy kolumn można
pominąć, np.:
 INSERT INTO osoby VALUES (1, 'Jan', 'Kowalski');

Nie ma również konieczności wprowadzania danych zgodnie
z kolejnością kolumn, kolejność ta może być dowolna, np.:
 INSERT INTO osoby (nazwisko, id, imie) VALUES ('Kowalski', 1,
 'Jan');

Możliwe jest także pominięcie niektórych kolumn, pod warun-
kiem że nie mają atrybutu NOT NULL, np.:
 INSERT INTO osoby (id, nazwisko) VALUES (1, 'Kowalski');

Wartości kolumn o typie danych SERIAL mogą być generowane
automatycznie. Zakładając, że pole id tabeli osoby jest tego typu,
to aby wprowadzony wiersz miał automatycznie wygenerowaną
wartość dla tego pola, w instrukcji wprowadzającej wiersz trzeba
pominąć kolumnę id, np.:
 INSERT INTO osoby (imie, nazwisko) VALUES ('Marceli',
 'Przybysz');

lub też zastosować w niej wartość DEFAULT:
 INSERT INTO osoby (id, imie, nazwisko) VALUES (DEFAULT,
 'Marceli', 'Przybysz');




48   |   PostgreSQL. Leksykon kieszonkowy
Pobieranie danych

Instrukcja SELECT
Dane zapisane w tabelach bazy danych można pobierać za po-
mocą instrukcji SELECT. Schemat jej podstawowej postaci wy-
gląda następująco:
 SELECT kolumna1, kolumna2, ..., kolumnaN
 FROM tabela
 [WHERE warunek]
 [ORDER BY kolumna1, kolumna2, ..., kolumnaN [ASC | DEC]]

Taka konstrukcja oznacza: pobierz wartości wymienionych kolumn
z tabeli tabela, spełniających warunek warunek, a wyniki posor-
tuj względem kolumn wymienionych w klauzuli ORDER BY, rosnąco
(ASC) lub malejąco (DESC). Elementy ujęte w nawiasach kwadrato-
wych są opcjonalne.
Przy założeniu, że w bazie istnieje tabela o nazwie pracownicy,
o następujących kolumnach:
  · id — typu INTEGER, będąca kluczem głównym i zawierająca
    identyfikator każdego wiersza,
  · imie — typu VARCHAR(20), z atrybutem NOT NULL, zawiera-
    jąca imię pracownika,
  · nazwisko — typu VARCHAR(30), z atrybutem NOT NULL, zawie-
    rająca nazwisko pracownika,
  · placa — typu DECIMAL(7, 2), z atrybutem NOT NULL, zawie-
    rająca miesięczne wynagrodzenie pracownika,
  · stanowisko — typu VARCHAR(20), z atrybutem NOT NULL,
    zawierająca stanowisko pracownika,
  · pesel — typu CHAR(11), zawierająca PESEL pracownika,



                         Rozdział 5. Podstawowe instrukcje SQL   |   49
do pobrania całej jej zawartości posłuży instrukcja:
 SELECT * FROM pracownicy;

Symbol * oznacza tu, że w wyniku zapytania mają być uwzględ-
nione wszystkie kolumny.
Jeżeli mają zostać wyświetlone tylko niektóry kolumny, nazwy
tych kolumn należy umieścić za słowem SELECT, oddzielając
poszczególne nazwy znakami przecinka, np.:
 SELECT imie, nazwisko, stanowisko FROM pracownicy;

Istnieje również możliwość zmiany nazw kolumn w wynikach
zapytania. Wystarczy, jeśli występujące w zapytaniu SELECT na-
zwy zostaną zastąpione sekwencjami o schematycznej postaci:
 nazwa_kolumny AS alias

gdzie nazwa_kolumny to nazwa oryginalnej kolumny, a alias to
nazwa, jaka ma się pojawić w wynikach zapytania, np.:
 SELECT imie, nazwisko, placa AS wynagrodzenie FROM
 pracownicy;


Sortowanie danych
Wyniki zapytania typu SELECT mogą być sortowane. Umożliwia
to klauzula ORDER BY. Sortowanie może odbywać się w porząd-
ku rosnącym bądź malejącym, względem jednej bądź kilku ko-
lumn. Porządkiem domyślnym jest porządek rosnący. Gdyby
zatem istniała potrzeba wyświetlenia wszystkich wierszy tabeli
pracownicy posortowanych względem nazwiska w porządku al-
fabetycznym rosnącym, należy zastosować konstrukcję:
 SELECT * FROM pracownicy ORDER BY nazwisko ASC;

lub prościej:
 SELECT * FROM pracownicy ORDER BY nazwisko;




50   |   PostgreSQL. Leksykon kieszonkowy
Gdyby zaś sortowanie miało się odbywać w porządku malejącym
— instrukcję:
 SELECT * FROM pracownicy ORDER BY nazwisko DESC;

Sortowanie może się odbywać względem większej liczby kolumn.
Przykładowo, tabela pracownicy może zostać posortowana najpierw
względem nazwiska, a następnie względem płacy. Przy czym
kierunek sortowania jest niezależny dla każdej kolumny, czyli
można jednocześnie sortować względem nazwiska w porządku
rosnącym i płacy w porządku malejącym, np.:
 SELECT * FROM pracownicy ORDER BY nazwisko ASC, placa DESC;


Kryteria pobierania danych
Otrzymanie określonego zestawu wierszy zapewnia klauzula
WHERE instrukcji SELECT. Za klauzulą WHERE należy umieścić wa-
runek, jaki muszą spełniać wiersze, aby znalazły się w wynikach
zapytania. Warunek w klauzuli WHERE może zawierać różnego
rodzaju operatory, które są przedstawione w rozdziale 7., „Funkcje
i operatory”. Najczęściej stosuje się wszelkiego rodzaju operatory
porównywania i logiczne. Poniżej zaprezentowanych zostało
kilka przykładów zastosowania klauzuli WHERE, pobierających
różne dane z tabeli pracownicy o strukturze takiej, jak przedsta-
wiona w punkcie „Instrukcja SELECT”.
Jeśli pobrane mają zostać wiersze tabeli, które w kolumnie nazwi-
sko zawierają wartość Kowalski, należy zastosować warunek na-
zwisko='Kowalski', więc pełne zapytanie przyjmie postać:
 SELECT * FROM pracownicy WHERE Nazwisko='Kowalski';

Jeśli pobrane mają zostać dane pracowników o płacy niższej niż
1600 zł, zapytanie będzie miało postać:
 SELECT * FROM pracownicy WHERE placa < 1600;




                          Rozdział 5. Podstawowe instrukcje SQL   |   51
Aby uzyskać w wyniku zapytania wiersze o identyfikatorach
z przedziału 3 – 6, trzeba użyć dwóch warunków: id >= 3 i id
<= 6 połączonych operatorem AND:
 SELECT * FROM pracownicy WHERE id >= 3 AND id <= 6;

lub operatora BETWEEN:
 SELECT * FROM pracownicy WHERE id BETWEEN 3 AND 6;

Jeśli konieczne jest uzyskanie wierszy o identyfikatorach ze
zbioru 3, 5 i 7, można zastosować trzy instrukcje warunkowe:
id = 3, id = 5 i id = 7 połączone za pomocą operatora OR (czyli
sumy logicznej):
 SELECT * FROM pracownicy WHERE id=3 OR id=5 OR id=7;

lub operator IN:
 SELECT * FROM pracownicy WHERE id IN(3, 5, 7);


Usuwanie powtórzonych wierszy
Instrukcja SELECT może być również uzupełniona klauzulą DI-
STINCT, która gwarantuje niepowtarzalność wierszy wynikowych,
innymi słowy, eliminuje duplikaty z wyników zapytania. Klau-
zulę DISTINCT należy umieścić za słowem SELECT, ogólnie:
 SELECT DISTINCT kolumna1, kolumna2, ..., kolumnaN
 FROM tabela
 [WHERE warunek]
 [ORDER BY kolumna1, kolumna2, ..., kolumnaN [ASC | DEC]]

np.:
 SELECT DISTINCT nazwisko FROM pracownicy ORDER BY nazwisko;


Etykiety kolumn
W wynikach zapytania można zmieniać nazwy kolumn przez na-
danie im etykiet. Odbywa się to za pomocą słowa kluczowego AS.
Ogólnie nazwę takiej kolumny należy zastąpić sekwencją:



52     |   PostgreSQL. Leksykon kieszonkowy
nazwa_kolumny AS etykieta

np.:
 SELECT id AS identyfikator, imie, nazwisko FROM pracownicy;


Ograniczanie wyników zapytań
Do uzyskiwania ograniczonego podzbioru wierszy wynikowych
zapytania służą klauzule LIMIT i OFFSET. Zapytanie je zawiera-
jące ma ogólną postać:
 SELECT kolumna1, kolumna2, ..., kolumnaN
 FROM tabela
 [WHERE warunek]
 [ORDER BY kolumna1, kolumna2, ..., kolumnaN [ASC | DEC]]
 LIMIT [ile1 | ALL][OFFSET ile2]

gdzie ile1 oznacza liczbę wierszy, które mają zostać uwzględ-
nione w wynikach, natomiast ile2 — liczbę wierszy, które mają
być pominięte, zanim zaczną być prezentowane wyniki zapytania.
Wystąpienie zamiast ile1 słowa ALL będzie oznaczało, że mają
być uwzględniane wszystkie wiersze (zatem zapytanie zachowa
się tak, jakby klauzula LIMIT została pominięta), jeśli natomiast
ile2 będzie miało wartość 0, będzie to oznaczało, że żadne
wiersze nie mają być pomijane (więc zapytanie zachowa się tak,
jakby klauzula OFFSET została pominięta). Podczas stosowania
klauzul LIMIT i OFFSET zwykle powinno się również stosować
klauzulę sortującą ORDER BY.
Przykładowo, aby uzyskać 5 pierwszych wierszy z tabeli pra-
cownicy sortowanej względem kolumny id, należy zastosować
zapytanie:
 SELECT * FROM pracownicy
 ORDER BY id
 LIMIT 5;

Natomiast w celu uzyskania 3 wierszy począwszy od 8. (czyli
pomijając pierwsze 7) — instrukcję:


                          Rozdział 5. Podstawowe instrukcje SQL   |   53
SELECT * FROM pracownicy
 ORDER BY id
 LIMIT 3 OFFSET 7;



Modyfikacja danych

Instrukcja UPDATE
Do modyfikacji danych zawartych w tabelach służy instrukcja
UPDATE. Ma ona ogólną postać:
 UPDATE nazwa_tabeli
 SET kolumna1=wartość1, kolumna2=wartość2, ...,
 kolumnaN=wartośćN
 [WHERE warunek]

Oznacza ona: zmień w tabeli nazwa_tabeli, w kolumnach speł-
niających warunek warunek, wartość kolumny kolumna1 na war-
tość1, kolumny kolumna2 na wartość2 itd. Warunek występujący
po klauzuli WHERE jest tutaj opcjonalny, a jego pominięcie oznacza,
że zmiany będą dokonane we wszystkich wierszach.
Jeśli zatem w bazie istnieje tabela osoby zawierająca następujące
kolumny:
     · id,
     · imie,
     · nazwisko,
     · rok_urodzenia,
to zamianę wszystkich wartości w kolumnie rok_urodzenia na
wartość 1982 umożliwi instrukcja:
 UPDATE osoby SET rok_urodzenia=1982;




54    |   PostgreSQL. Leksykon kieszonkowy
Aby zmiana dotyczyła konkretnych wierszy, stosuje się warunek
sekcji WHERE, np. zmianę roku urodzenia dla pracownika o identy-
fikatorze 8 można uzyskać za pomocą polecenia:
 UPDATE osoby SET rok_urodzenia=1982 WHERE id=8;

Można oczywiście jednocześnie zmodyfikować kilka pól w danym
wierszu, np.:
 UPDATE osob1y SET rok_urodzenia=1982, imie='Jan',
 nazwisko='Kowalski' WHERE id=1;



Usuwanie danych

Instrukcja DELETE
Do usuwania danych służy instrukcja DELETE o schematycznej
postaci:
 DELETE FROM tabela
 [WHERE warunek]

Oznacza ona: usuń z tabeli tabela wszystkie wiersze spełniają-
ce warunek warunek. Jeśli pominie się warunek, zostaną usunięte
wszystkie dane (podobnie jak w przypadku instrukcji UPDATE,
gdzie pominięcie warunku powodowało modyfikację wszystkich
wierszy tabeli).
Aby usunąć wszystkie dane z tabeli pracownicy, należy wykonać
instrukcję:
 DELETE FROM pracownicy;

Po jej wykonaniu tabela pracownicy nie będzie zawierała żad-
nych danych. Taką konstrukcję trzeba zatem stosować z rozwagą,
ponieważ serwer nie wygeneruje żadnego ostrzeżenia ani dodat-
kowego pytania.




                           Rozdział 5. Podstawowe instrukcje SQL   |   55
Selektywne usuwanie danych jest możliwe dzięki użyciu klauzuli
WHERE z odpowiednim wyrażeniem warunkowym, które kon-
struuje się na takich samych zasadach, jak w przypadku instrukcji
SELECT czy UPDATE. Przykładowo, usunięcie z tabeli pracownicy
wiersza, który w kolumnie id ma wartość 5, nastąpi po wykona-
niu instrukcji:
 DELETE FROM pracownicy WHERE id=5;




56   |   PostgreSQL. Leksykon kieszonkowy

Weitere ähnliche Inhalte

Was ist angesagt?

mod_rewrite. Podręcznik administratora
mod_rewrite. Podręcznik administratoramod_rewrite. Podręcznik administratora
mod_rewrite. Podręcznik administratoraWydawnictwo Helion
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsWydawnictwo Helion
 
Excel 2003 PL. Ilustrowany przewodnik
Excel 2003 PL. Ilustrowany przewodnikExcel 2003 PL. Ilustrowany przewodnik
Excel 2003 PL. Ilustrowany przewodnikWydawnictwo Helion
 
Windows XP PL. Ilustrowany przewodnik
Windows XP PL. Ilustrowany przewodnikWindows XP PL. Ilustrowany przewodnik
Windows XP PL. Ilustrowany przewodnikWydawnictwo Helion
 
PHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie II
PHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie IIPHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie II
PHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie IIWydawnictwo Helion
 
3ds max 6. Skuteczne rozwiązania
3ds max 6. Skuteczne rozwiązania3ds max 6. Skuteczne rozwiązania
3ds max 6. Skuteczne rozwiązaniaWydawnictwo Helion
 
PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych
PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danychPHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych
PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danychWydawnictwo Helion
 

Was ist angesagt? (20)

mod_rewrite. Podręcznik administratora
mod_rewrite. Podręcznik administratoramod_rewrite. Podręcznik administratora
mod_rewrite. Podręcznik administratora
 
Po prostu Access 2002/XP PL
Po prostu Access 2002/XP PLPo prostu Access 2002/XP PL
Po prostu Access 2002/XP PL
 
Po prostu Excel 2007 PL
Po prostu Excel 2007 PLPo prostu Excel 2007 PL
Po prostu Excel 2007 PL
 
Po prostu Word 2003 PL
Po prostu Word 2003 PLPo prostu Word 2003 PL
Po prostu Word 2003 PL
 
Po prostu Excel 2003 PL
Po prostu Excel 2003 PLPo prostu Excel 2003 PL
Po prostu Excel 2003 PL
 
Po prostu InDesign 2 CE
Po prostu InDesign 2 CEPo prostu InDesign 2 CE
Po prostu InDesign 2 CE
 
Po prostu Pajączek 5 NxG
Po prostu Pajączek 5 NxGPo prostu Pajączek 5 NxG
Po prostu Pajączek 5 NxG
 
ABC Access 2007 PL
ABC Access 2007 PLABC Access 2007 PL
ABC Access 2007 PL
 
MySQL. Szybki start
MySQL. Szybki startMySQL. Szybki start
MySQL. Szybki start
 
100 sposobów na Access
100 sposobów na Access100 sposobów na Access
100 sposobów na Access
 
ACDSee. Ćwiczenia
ACDSee. ĆwiczeniaACDSee. Ćwiczenia
ACDSee. Ćwiczenia
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
 
SQL. Leksykon kieszonkowy
SQL. Leksykon kieszonkowySQL. Leksykon kieszonkowy
SQL. Leksykon kieszonkowy
 
Excel 2003 PL. Ilustrowany przewodnik
Excel 2003 PL. Ilustrowany przewodnikExcel 2003 PL. Ilustrowany przewodnik
Excel 2003 PL. Ilustrowany przewodnik
 
Windows XP PL. Ilustrowany przewodnik
Windows XP PL. Ilustrowany przewodnikWindows XP PL. Ilustrowany przewodnik
Windows XP PL. Ilustrowany przewodnik
 
Access 2003 PL. Kurs
Access 2003 PL. KursAccess 2003 PL. Kurs
Access 2003 PL. Kurs
 
PHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie II
PHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie IIPHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie II
PHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie II
 
3ds max 6. Skuteczne rozwiązania
3ds max 6. Skuteczne rozwiązania3ds max 6. Skuteczne rozwiązania
3ds max 6. Skuteczne rozwiązania
 
PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych
PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danychPHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych
PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych
 
Rozbudowa i naprawa serwerów
Rozbudowa i naprawa serwerówRozbudowa i naprawa serwerów
Rozbudowa i naprawa serwerów
 

Andere mochten auch

Sekrety skutecznych prezentacji multimedialnych
Sekrety skutecznych prezentacji multimedialnychSekrety skutecznych prezentacji multimedialnych
Sekrety skutecznych prezentacji multimedialnychWydawnictwo Helion
 
Sekrety cyfrowej ciemni Scotta Kelbyego. Edycja i obróbka zdjęć w programie A...
Sekrety cyfrowej ciemni Scotta Kelbyego. Edycja i obróbka zdjęć w programie A...Sekrety cyfrowej ciemni Scotta Kelbyego. Edycja i obróbka zdjęć w programie A...
Sekrety cyfrowej ciemni Scotta Kelbyego. Edycja i obróbka zdjęć w programie A...Wydawnictwo Helion
 
Anatomia PC. Kompendium. Wydanie IV
Anatomia PC. Kompendium. Wydanie IVAnatomia PC. Kompendium. Wydanie IV
Anatomia PC. Kompendium. Wydanie IVWydawnictwo Helion
 
Adobe Photoshop CS3/CS3 PL. Oficjalny podręcznik
Adobe Photoshop CS3/CS3 PL. Oficjalny podręcznikAdobe Photoshop CS3/CS3 PL. Oficjalny podręcznik
Adobe Photoshop CS3/CS3 PL. Oficjalny podręcznikWydawnictwo Helion
 
Zarządzanie projektem szkoleniowym
Zarządzanie projektem szkoleniowymZarządzanie projektem szkoleniowym
Zarządzanie projektem szkoleniowymWydawnictwo Helion
 
Aplikacje w Visual C++ 2005. Przykłady
Aplikacje w Visual C++ 2005. PrzykładyAplikacje w Visual C++ 2005. Przykłady
Aplikacje w Visual C++ 2005. PrzykładyWydawnictwo Helion
 
Excel 2007 PL. Ilustrowany przewodnik
Excel 2007 PL. Ilustrowany przewodnikExcel 2007 PL. Ilustrowany przewodnik
Excel 2007 PL. Ilustrowany przewodnikWydawnictwo Helion
 
Windows Vista PL. Ilustrowany przewodnik
Windows Vista PL. Ilustrowany przewodnikWindows Vista PL. Ilustrowany przewodnik
Windows Vista PL. Ilustrowany przewodnikWydawnictwo Helion
 
BIOS. Leksykon kieszonkowy. Wydanie III
BIOS. Leksykon kieszonkowy. Wydanie IIIBIOS. Leksykon kieszonkowy. Wydanie III
BIOS. Leksykon kieszonkowy. Wydanie IIIWydawnictwo Helion
 

Andere mochten auch (14)

Sekrety skutecznych prezentacji multimedialnych
Sekrety skutecznych prezentacji multimedialnychSekrety skutecznych prezentacji multimedialnych
Sekrety skutecznych prezentacji multimedialnych
 
Sekrety cyfrowej ciemni Scotta Kelbyego. Edycja i obróbka zdjęć w programie A...
Sekrety cyfrowej ciemni Scotta Kelbyego. Edycja i obróbka zdjęć w programie A...Sekrety cyfrowej ciemni Scotta Kelbyego. Edycja i obróbka zdjęć w programie A...
Sekrety cyfrowej ciemni Scotta Kelbyego. Edycja i obróbka zdjęć w programie A...
 
Linux. Biblia. Edycja 2007
Linux. Biblia. Edycja 2007Linux. Biblia. Edycja 2007
Linux. Biblia. Edycja 2007
 
Anatomia PC. Kompendium. Wydanie IV
Anatomia PC. Kompendium. Wydanie IVAnatomia PC. Kompendium. Wydanie IV
Anatomia PC. Kompendium. Wydanie IV
 
Adobe Photoshop CS3/CS3 PL. Oficjalny podręcznik
Adobe Photoshop CS3/CS3 PL. Oficjalny podręcznikAdobe Photoshop CS3/CS3 PL. Oficjalny podręcznik
Adobe Photoshop CS3/CS3 PL. Oficjalny podręcznik
 
Zarządzanie projektem szkoleniowym
Zarządzanie projektem szkoleniowymZarządzanie projektem szkoleniowym
Zarządzanie projektem szkoleniowym
 
Aplikacje w Visual C++ 2005. Przykłady
Aplikacje w Visual C++ 2005. PrzykładyAplikacje w Visual C++ 2005. Przykłady
Aplikacje w Visual C++ 2005. Przykłady
 
Linux. Kurs. Wydanie II
Linux. Kurs. Wydanie IILinux. Kurs. Wydanie II
Linux. Kurs. Wydanie II
 
Excel 2007 PL. Ilustrowany przewodnik
Excel 2007 PL. Ilustrowany przewodnikExcel 2007 PL. Ilustrowany przewodnik
Excel 2007 PL. Ilustrowany przewodnik
 
Windows Vista PL. Ilustrowany przewodnik
Windows Vista PL. Ilustrowany przewodnikWindows Vista PL. Ilustrowany przewodnik
Windows Vista PL. Ilustrowany przewodnik
 
Slackware Linux. Ćwiczenia
Slackware Linux. ĆwiczeniaSlackware Linux. Ćwiczenia
Slackware Linux. Ćwiczenia
 
BIOS. Leksykon kieszonkowy. Wydanie III
BIOS. Leksykon kieszonkowy. Wydanie IIIBIOS. Leksykon kieszonkowy. Wydanie III
BIOS. Leksykon kieszonkowy. Wydanie III
 
Ubuntu. Oficjalny podręcznik
Ubuntu. Oficjalny podręcznikUbuntu. Oficjalny podręcznik
Ubuntu. Oficjalny podręcznik
 
ABC Word 2007 PL
ABC Word 2007 PLABC Word 2007 PL
ABC Word 2007 PL
 

Ähnlich wie PostgreSQL. Leksykon kieszonkowy

Serwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanieSerwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanieWydawnictwo Helion
 
Master Thesis - Comparative analysis of programming Environments based on Rub...
Master Thesis - Comparative analysis of programming Environments based on Rub...Master Thesis - Comparative analysis of programming Environments based on Rub...
Master Thesis - Comparative analysis of programming Environments based on Rub...Adam Skołuda
 
Visual Basic 2008. Warsztat programisty
Visual Basic 2008. Warsztat programistyVisual Basic 2008. Warsztat programisty
Visual Basic 2008. Warsztat programistyWydawnictwo Helion
 
Microsoft Visual Studio 2008. Księga eksperta
Microsoft Visual Studio 2008. Księga ekspertaMicrosoft Visual Studio 2008. Księga eksperta
Microsoft Visual Studio 2008. Księga ekspertaWydawnictwo Helion
 
PHP6 i MySQL 5. Dynamiczne strony WWW. Szybki start
PHP6 i MySQL 5. Dynamiczne strony WWW. Szybki startPHP6 i MySQL 5. Dynamiczne strony WWW. Szybki start
PHP6 i MySQL 5. Dynamiczne strony WWW. Szybki startWydawnictwo Helion
 
Czytanie kodu. Punkt widzenia twórców oprogramowania open source
Czytanie kodu. Punkt widzenia twórców oprogramowania open sourceCzytanie kodu. Punkt widzenia twórców oprogramowania open source
Czytanie kodu. Punkt widzenia twórców oprogramowania open sourceWydawnictwo Helion
 
Projektowanie i analiza algorytmów
Projektowanie i analiza algorytmówProjektowanie i analiza algorytmów
Projektowanie i analiza algorytmówWydawnictwo Helion
 
Linux. Najlepsze przepisy. Wydanie II
Linux. Najlepsze przepisy. Wydanie IILinux. Najlepsze przepisy. Wydanie II
Linux. Najlepsze przepisy. Wydanie IIWydawnictwo Helion
 
Excel. Analiza danych biznesowych
Excel. Analiza danych biznesowychExcel. Analiza danych biznesowych
Excel. Analiza danych biznesowychWydawnictwo Helion
 
Profesjonalne programowanie. Część 1. Zrozumieć komputer
Profesjonalne programowanie. Część 1. Zrozumieć komputerProfesjonalne programowanie. Część 1. Zrozumieć komputer
Profesjonalne programowanie. Część 1. Zrozumieć komputerWydawnictwo Helion
 
Mandrake Linux. Ćwiczenia zaawansowane
Mandrake Linux. Ćwiczenia zaawansowaneMandrake Linux. Ćwiczenia zaawansowane
Mandrake Linux. Ćwiczenia zaawansowaneWydawnictwo Helion
 
Windows Server 2003. Podręcznik administratora
Windows Server 2003. Podręcznik administratoraWindows Server 2003. Podręcznik administratora
Windows Server 2003. Podręcznik administratoraWydawnictwo Helion
 
ASP.NET 2.0 i Ajax. Wprowadzenie
ASP.NET 2.0 i Ajax. WprowadzenieASP.NET 2.0 i Ajax. Wprowadzenie
ASP.NET 2.0 i Ajax. WprowadzenieWydawnictwo Helion
 

Ähnlich wie PostgreSQL. Leksykon kieszonkowy (20)

Serwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanieSerwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanie
 
Master Thesis - Comparative analysis of programming Environments based on Rub...
Master Thesis - Comparative analysis of programming Environments based on Rub...Master Thesis - Comparative analysis of programming Environments based on Rub...
Master Thesis - Comparative analysis of programming Environments based on Rub...
 
Inventor. Pierwsze kroki
Inventor. Pierwsze krokiInventor. Pierwsze kroki
Inventor. Pierwsze kroki
 
Visual Basic 2008. Warsztat programisty
Visual Basic 2008. Warsztat programistyVisual Basic 2008. Warsztat programisty
Visual Basic 2008. Warsztat programisty
 
Modelowanie danych
Modelowanie danychModelowanie danych
Modelowanie danych
 
MySQL. Almanach
MySQL. AlmanachMySQL. Almanach
MySQL. Almanach
 
Microsoft Visual Studio 2008. Księga eksperta
Microsoft Visual Studio 2008. Księga ekspertaMicrosoft Visual Studio 2008. Księga eksperta
Microsoft Visual Studio 2008. Księga eksperta
 
PHP6 i MySQL 5. Dynamiczne strony WWW. Szybki start
PHP6 i MySQL 5. Dynamiczne strony WWW. Szybki startPHP6 i MySQL 5. Dynamiczne strony WWW. Szybki start
PHP6 i MySQL 5. Dynamiczne strony WWW. Szybki start
 
Czytanie kodu. Punkt widzenia twórców oprogramowania open source
Czytanie kodu. Punkt widzenia twórców oprogramowania open sourceCzytanie kodu. Punkt widzenia twórców oprogramowania open source
Czytanie kodu. Punkt widzenia twórców oprogramowania open source
 
Projektowanie i analiza algorytmów
Projektowanie i analiza algorytmówProjektowanie i analiza algorytmów
Projektowanie i analiza algorytmów
 
Linux. Najlepsze przepisy. Wydanie II
Linux. Najlepsze przepisy. Wydanie IILinux. Najlepsze przepisy. Wydanie II
Linux. Najlepsze przepisy. Wydanie II
 
Excel. Analiza danych biznesowych
Excel. Analiza danych biznesowychExcel. Analiza danych biznesowych
Excel. Analiza danych biznesowych
 
Profesjonalne programowanie. Część 1. Zrozumieć komputer
Profesjonalne programowanie. Część 1. Zrozumieć komputerProfesjonalne programowanie. Część 1. Zrozumieć komputer
Profesjonalne programowanie. Część 1. Zrozumieć komputer
 
Mandrake Linux. Ćwiczenia
Mandrake Linux. ĆwiczeniaMandrake Linux. Ćwiczenia
Mandrake Linux. Ćwiczenia
 
Mandrake Linux. Ćwiczenia zaawansowane
Mandrake Linux. Ćwiczenia zaawansowaneMandrake Linux. Ćwiczenia zaawansowane
Mandrake Linux. Ćwiczenia zaawansowane
 
MATLAB. Ćwiczenia
MATLAB. ĆwiczeniaMATLAB. Ćwiczenia
MATLAB. Ćwiczenia
 
CorelDraw X3 PL. Kurs
CorelDraw X3 PL. KursCorelDraw X3 PL. Kurs
CorelDraw X3 PL. Kurs
 
Windows Server 2003. Podręcznik administratora
Windows Server 2003. Podręcznik administratoraWindows Server 2003. Podręcznik administratora
Windows Server 2003. Podręcznik administratora
 
Tcl-Tk. Programowanie
Tcl-Tk. ProgramowanieTcl-Tk. Programowanie
Tcl-Tk. Programowanie
 
ASP.NET 2.0 i Ajax. Wprowadzenie
ASP.NET 2.0 i Ajax. WprowadzenieASP.NET 2.0 i Ajax. Wprowadzenie
ASP.NET 2.0 i Ajax. Wprowadzenie
 

Mehr von Wydawnictwo Helion

Tworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyTworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyWydawnictwo Helion
 
Blog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikBlog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikWydawnictwo Helion
 
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczneWydawnictwo Helion
 
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesieE-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesieWydawnictwo Helion
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IIWydawnictwo Helion
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuWydawnictwo Helion
 
Java. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIJava. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIWydawnictwo Helion
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningWydawnictwo Helion
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykWydawnictwo Helion
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaWydawnictwo Helion
 
USB. Praktyczne programowanie z Windows API w C++
USB. Praktyczne programowanie z Windows API w C++USB. Praktyczne programowanie z Windows API w C++
USB. Praktyczne programowanie z Windows API w C++Wydawnictwo Helion
 
Rewizor GT. Prowadzenie ewidencji księgowej
Rewizor GT. Prowadzenie ewidencji księgowejRewizor GT. Prowadzenie ewidencji księgowej
Rewizor GT. Prowadzenie ewidencji księgowejWydawnictwo Helion
 

Mehr von Wydawnictwo Helion (20)

Tworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyTworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. Projekty
 
Blog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikBlog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnik
 
Access w biurze i nie tylko
Access w biurze i nie tylkoAccess w biurze i nie tylko
Access w biurze i nie tylko
 
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
 
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesieE-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółu
 
Windows PowerShell. Podstawy
Windows PowerShell. PodstawyWindows PowerShell. Podstawy
Windows PowerShell. Podstawy
 
Java. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIJava. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie II
 
JavaScript. Pierwsze starcie
JavaScript. Pierwsze starcieJavaScript. Pierwsze starcie
JavaScript. Pierwsze starcie
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny trening
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktyk
 
Excel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktykExcel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktyk
 
Access 2007 PL. Seria praktyk
Access 2007 PL. Seria praktykAccess 2007 PL. Seria praktyk
Access 2007 PL. Seria praktyk
 
Word 2007 PL. Seria praktyk
Word 2007 PL. Seria praktykWord 2007 PL. Seria praktyk
Word 2007 PL. Seria praktyk
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacja
 
AutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PLAutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PL
 
Bazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcieBazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcie
 
USB. Praktyczne programowanie z Windows API w C++
USB. Praktyczne programowanie z Windows API w C++USB. Praktyczne programowanie z Windows API w C++
USB. Praktyczne programowanie z Windows API w C++
 
Rewizor GT. Prowadzenie ewidencji księgowej
Rewizor GT. Prowadzenie ewidencji księgowejRewizor GT. Prowadzenie ewidencji księgowej
Rewizor GT. Prowadzenie ewidencji księgowej
 

PostgreSQL. Leksykon kieszonkowy

  • 1. PostgreSQL. Leksykon kieszonkowy Autor: Marcin Lis ISBN: 83-246-0869-9 Format: B6, stron: 160 Rozpocznij pracê z bazami danych PostgreSQL to jeden z najpopularniejszych systemów zarz¹dzania relacyjnymi bazami danych (RDBMS) rozwijany na zasadzie wolnego oprogramowania. Zdaniem twórców jest to równie¿ najbardziej zaawansowany tego typu produkt na œwiecie. PostgreSQL umo¿liwia efektywne zarz¹dzanie bazami danych w ró¿nych systemach operacyjnych, w tym w licznych dystrybucjach Linuksa, systemach z rodziny Unix, Mac OS czy Windows. Jeœli chodzi o mo¿liwoœci, wydajnoœæ i stabilnoœæ, PostgreSQL nie ustêpuje komercyjnemu oprogramowaniu, a pod niektórymi wzglêdami nawet je przewy¿sza. „PostgreSQL. Leksykon kieszonkowy” to zwiêz³y zbiór praktycznych informacji o jednym z najlepszych systemów RDBMS. Dziêki tej ksi¹¿ce szybko zainstalujesz PostgreSQL oraz rozpoczniesz administrowanie tym systemem. Poznasz u¿ywane w nim typy danych, popularne instrukcje, funkcje i operatory. Nauczysz siê obs³ugiwaæ tabele i tworzyæ indeksy. Dowiesz siê, jak stosowaæ agregacje, z³¹czenia i unie. Przeczytasz o technikach tworzenia widoków oraz u¿ywania transakcji, a tak¿e o z³o¿onych instrukcjach PostgreSQL. Poznasz te¿ metody obs³ugi znaków narodowych. • Instalowanie PostgreSQL • Administrowanie PostgreSQL • Typy danych • Instrukcje, funkcje i operatory • Tworzenie i u¿ywanie indeksów • Stosowanie z³¹czeñ, unii i widoków • Agregowanie i grupowanie danych • Stosowanie transakcji • Korzystanie ze znaków narodowych Jeœli szukasz nowoczesnego i darmowego systemu RDBMS, Wydawnictwo Helion PostgreSQL to doskona³y wybór ul. Koœciuszki 1c 44-100 Gliwice tel. 032 230 98 63 e-mail: helion@helion.pl
  • 2. Spis treści Wstęp .............................................................................................7 1. Instalacja ....................................................................................... 8 W systemie Linux 8 W systemie Windows 9 2. Administracja.................................................................................11 Uruchamianie i zatrzymywanie serwera 11 Obsługa kont użytkowników 12 Zakładanie i usuwanie baz danych 19 Uruchamianie klienta PostgreSQL 20 3. Typy danych .................................................................................22 Typy znakowe 22 Typy numeryczne 23 Typy monetarne 26 Typy binarne 26 Typy daty i czasu 26 Typy logiczne 28 Typy bitowe 28 Typy specjalne 29 3
  • 3. 4. Obsługa tabel .............................................................................. 32 Tworzenie tabel 32 Modyfikacja tabel 41 Usuwanie tabel 46 5. Podstawowe instrukcje SQL ........................................................47 Wstawianie danych 47 Pobieranie danych 49 Modyfikacja danych 54 Usuwanie danych 55 6. Indeksy .........................................................................................57 Typy indeksów 57 Tworzenie indeksów 58 Indeksy częściowe 59 Usuwanie indeksów 59 7. Funkcje i operatory ..................................................................... 60 Funkcje 60 Operatory 85 8. Agregacja i grupowanie danych ................................................ 98 Przykłady użycia funkcji agregujących 98 Grupowanie danych 100 Klauzula HAVING 102 9. Złączenia, unie, widoki .............................................................103 Łączenie wyników zapytań 103 Złączenia tabel 105 Widoki 111 4 | Spis treści
  • 4. 10. Złożone instrukcje SQL .............................................................. 114 Podzapytania 114 Podzapytania w klauzuli FROM 115 Podzapytania w klauzuli WHERE 116 Podzapytania skorelowane 117 Złożona instrukcja INSERT 119 Złożona instrukcja DELETE 120 11. Transakcje .................................................................................. 121 Ogólnie o transakcjach 121 Rozpoczynanie transakcji 122 Zatwierdzanie transakcji 122 Wycofywanie transakcji 123 Transakcje domyślne 123 Poziomy izolacji 123 12. Obsługa znaków narodowych ..................................................126 Standardy kodowania 126 Konwersje automatyczne 129 13. Kody błędów .............................................................................. 132 14. Słowa kluczowe .........................................................................140 Skorowidz ..................................................................................153 Spis treści | 5
  • 5. Rozdział 5. Podstawowe instrukcje SQL Wstawianie danych Instrukcja INSERT Do umieszczania danych w tabelach służy instrukcja INSERT INTO. Jej podstawowa forma ma ogólną postać: INSERT [INTO] nazwa_tabeli [(kolumna1, kolumna2, ..., kolumnaN)] VALUES (wartość1, wartość2, ..., wartośćN) Powoduje ona wprowadzenie do tabeli nowego wiersza, w którym w polu kolumna1 została zapisana wartość wartość1, w polu kolumna2 — wartość wartość2 itd. Elementy instrukcji ujęte w nawias klamrowy są opcjonalne. Przy założeniu, że w bazie została umieszczona tabela osoby o kolumnach: · id — przechowuje identyfikator, · imie — przechowuje imię, · nazwisko — przechowuje nazwisko, utworzona za pomocą instrukcji: CREATE TABLE osoby ( id INTEGER PRIMARY KEY NOT NULL, imie VARCHAR(20), nazwisko VARCHAR(30), ) wstawienie wiersza przechowującego dane Jana Kowalskiego, któremu został nadany identyfikator 1, zostanie wykonane przez instrukcję: Rozdział 5. Podstawowe instrukcje SQL | 47
  • 6. INSERT INTO osoby (id, imie, nazwisko) VALUES (1, 'Jan', 'Kowalski'); Taka instrukcja może być również rozbita na kilka wierszy, co w przypadku dużej ilości danych może zwiększyć jej czytel- ność, np.: INSERT INTO osoby (id, imie, nazwisko) VALUES (1, 'Jan', 'Kowalski'); W sytuacji gdy wstawiane są dane do wszystkich kolumn, a ich kolejność jest zgodna z kolejnością kolumn, nazwy kolumn można pominąć, np.: INSERT INTO osoby VALUES (1, 'Jan', 'Kowalski'); Nie ma również konieczności wprowadzania danych zgodnie z kolejnością kolumn, kolejność ta może być dowolna, np.: INSERT INTO osoby (nazwisko, id, imie) VALUES ('Kowalski', 1, 'Jan'); Możliwe jest także pominięcie niektórych kolumn, pod warun- kiem że nie mają atrybutu NOT NULL, np.: INSERT INTO osoby (id, nazwisko) VALUES (1, 'Kowalski'); Wartości kolumn o typie danych SERIAL mogą być generowane automatycznie. Zakładając, że pole id tabeli osoby jest tego typu, to aby wprowadzony wiersz miał automatycznie wygenerowaną wartość dla tego pola, w instrukcji wprowadzającej wiersz trzeba pominąć kolumnę id, np.: INSERT INTO osoby (imie, nazwisko) VALUES ('Marceli', 'Przybysz'); lub też zastosować w niej wartość DEFAULT: INSERT INTO osoby (id, imie, nazwisko) VALUES (DEFAULT, 'Marceli', 'Przybysz'); 48 | PostgreSQL. Leksykon kieszonkowy
  • 7. Pobieranie danych Instrukcja SELECT Dane zapisane w tabelach bazy danych można pobierać za po- mocą instrukcji SELECT. Schemat jej podstawowej postaci wy- gląda następująco: SELECT kolumna1, kolumna2, ..., kolumnaN FROM tabela [WHERE warunek] [ORDER BY kolumna1, kolumna2, ..., kolumnaN [ASC | DEC]] Taka konstrukcja oznacza: pobierz wartości wymienionych kolumn z tabeli tabela, spełniających warunek warunek, a wyniki posor- tuj względem kolumn wymienionych w klauzuli ORDER BY, rosnąco (ASC) lub malejąco (DESC). Elementy ujęte w nawiasach kwadrato- wych są opcjonalne. Przy założeniu, że w bazie istnieje tabela o nazwie pracownicy, o następujących kolumnach: · id — typu INTEGER, będąca kluczem głównym i zawierająca identyfikator każdego wiersza, · imie — typu VARCHAR(20), z atrybutem NOT NULL, zawiera- jąca imię pracownika, · nazwisko — typu VARCHAR(30), z atrybutem NOT NULL, zawie- rająca nazwisko pracownika, · placa — typu DECIMAL(7, 2), z atrybutem NOT NULL, zawie- rająca miesięczne wynagrodzenie pracownika, · stanowisko — typu VARCHAR(20), z atrybutem NOT NULL, zawierająca stanowisko pracownika, · pesel — typu CHAR(11), zawierająca PESEL pracownika, Rozdział 5. Podstawowe instrukcje SQL | 49
  • 8. do pobrania całej jej zawartości posłuży instrukcja: SELECT * FROM pracownicy; Symbol * oznacza tu, że w wyniku zapytania mają być uwzględ- nione wszystkie kolumny. Jeżeli mają zostać wyświetlone tylko niektóry kolumny, nazwy tych kolumn należy umieścić za słowem SELECT, oddzielając poszczególne nazwy znakami przecinka, np.: SELECT imie, nazwisko, stanowisko FROM pracownicy; Istnieje również możliwość zmiany nazw kolumn w wynikach zapytania. Wystarczy, jeśli występujące w zapytaniu SELECT na- zwy zostaną zastąpione sekwencjami o schematycznej postaci: nazwa_kolumny AS alias gdzie nazwa_kolumny to nazwa oryginalnej kolumny, a alias to nazwa, jaka ma się pojawić w wynikach zapytania, np.: SELECT imie, nazwisko, placa AS wynagrodzenie FROM pracownicy; Sortowanie danych Wyniki zapytania typu SELECT mogą być sortowane. Umożliwia to klauzula ORDER BY. Sortowanie może odbywać się w porząd- ku rosnącym bądź malejącym, względem jednej bądź kilku ko- lumn. Porządkiem domyślnym jest porządek rosnący. Gdyby zatem istniała potrzeba wyświetlenia wszystkich wierszy tabeli pracownicy posortowanych względem nazwiska w porządku al- fabetycznym rosnącym, należy zastosować konstrukcję: SELECT * FROM pracownicy ORDER BY nazwisko ASC; lub prościej: SELECT * FROM pracownicy ORDER BY nazwisko; 50 | PostgreSQL. Leksykon kieszonkowy
  • 9. Gdyby zaś sortowanie miało się odbywać w porządku malejącym — instrukcję: SELECT * FROM pracownicy ORDER BY nazwisko DESC; Sortowanie może się odbywać względem większej liczby kolumn. Przykładowo, tabela pracownicy może zostać posortowana najpierw względem nazwiska, a następnie względem płacy. Przy czym kierunek sortowania jest niezależny dla każdej kolumny, czyli można jednocześnie sortować względem nazwiska w porządku rosnącym i płacy w porządku malejącym, np.: SELECT * FROM pracownicy ORDER BY nazwisko ASC, placa DESC; Kryteria pobierania danych Otrzymanie określonego zestawu wierszy zapewnia klauzula WHERE instrukcji SELECT. Za klauzulą WHERE należy umieścić wa- runek, jaki muszą spełniać wiersze, aby znalazły się w wynikach zapytania. Warunek w klauzuli WHERE może zawierać różnego rodzaju operatory, które są przedstawione w rozdziale 7., „Funkcje i operatory”. Najczęściej stosuje się wszelkiego rodzaju operatory porównywania i logiczne. Poniżej zaprezentowanych zostało kilka przykładów zastosowania klauzuli WHERE, pobierających różne dane z tabeli pracownicy o strukturze takiej, jak przedsta- wiona w punkcie „Instrukcja SELECT”. Jeśli pobrane mają zostać wiersze tabeli, które w kolumnie nazwi- sko zawierają wartość Kowalski, należy zastosować warunek na- zwisko='Kowalski', więc pełne zapytanie przyjmie postać: SELECT * FROM pracownicy WHERE Nazwisko='Kowalski'; Jeśli pobrane mają zostać dane pracowników o płacy niższej niż 1600 zł, zapytanie będzie miało postać: SELECT * FROM pracownicy WHERE placa < 1600; Rozdział 5. Podstawowe instrukcje SQL | 51
  • 10. Aby uzyskać w wyniku zapytania wiersze o identyfikatorach z przedziału 3 – 6, trzeba użyć dwóch warunków: id >= 3 i id <= 6 połączonych operatorem AND: SELECT * FROM pracownicy WHERE id >= 3 AND id <= 6; lub operatora BETWEEN: SELECT * FROM pracownicy WHERE id BETWEEN 3 AND 6; Jeśli konieczne jest uzyskanie wierszy o identyfikatorach ze zbioru 3, 5 i 7, można zastosować trzy instrukcje warunkowe: id = 3, id = 5 i id = 7 połączone za pomocą operatora OR (czyli sumy logicznej): SELECT * FROM pracownicy WHERE id=3 OR id=5 OR id=7; lub operator IN: SELECT * FROM pracownicy WHERE id IN(3, 5, 7); Usuwanie powtórzonych wierszy Instrukcja SELECT może być również uzupełniona klauzulą DI- STINCT, która gwarantuje niepowtarzalność wierszy wynikowych, innymi słowy, eliminuje duplikaty z wyników zapytania. Klau- zulę DISTINCT należy umieścić za słowem SELECT, ogólnie: SELECT DISTINCT kolumna1, kolumna2, ..., kolumnaN FROM tabela [WHERE warunek] [ORDER BY kolumna1, kolumna2, ..., kolumnaN [ASC | DEC]] np.: SELECT DISTINCT nazwisko FROM pracownicy ORDER BY nazwisko; Etykiety kolumn W wynikach zapytania można zmieniać nazwy kolumn przez na- danie im etykiet. Odbywa się to za pomocą słowa kluczowego AS. Ogólnie nazwę takiej kolumny należy zastąpić sekwencją: 52 | PostgreSQL. Leksykon kieszonkowy
  • 11. nazwa_kolumny AS etykieta np.: SELECT id AS identyfikator, imie, nazwisko FROM pracownicy; Ograniczanie wyników zapytań Do uzyskiwania ograniczonego podzbioru wierszy wynikowych zapytania służą klauzule LIMIT i OFFSET. Zapytanie je zawiera- jące ma ogólną postać: SELECT kolumna1, kolumna2, ..., kolumnaN FROM tabela [WHERE warunek] [ORDER BY kolumna1, kolumna2, ..., kolumnaN [ASC | DEC]] LIMIT [ile1 | ALL][OFFSET ile2] gdzie ile1 oznacza liczbę wierszy, które mają zostać uwzględ- nione w wynikach, natomiast ile2 — liczbę wierszy, które mają być pominięte, zanim zaczną być prezentowane wyniki zapytania. Wystąpienie zamiast ile1 słowa ALL będzie oznaczało, że mają być uwzględniane wszystkie wiersze (zatem zapytanie zachowa się tak, jakby klauzula LIMIT została pominięta), jeśli natomiast ile2 będzie miało wartość 0, będzie to oznaczało, że żadne wiersze nie mają być pomijane (więc zapytanie zachowa się tak, jakby klauzula OFFSET została pominięta). Podczas stosowania klauzul LIMIT i OFFSET zwykle powinno się również stosować klauzulę sortującą ORDER BY. Przykładowo, aby uzyskać 5 pierwszych wierszy z tabeli pra- cownicy sortowanej względem kolumny id, należy zastosować zapytanie: SELECT * FROM pracownicy ORDER BY id LIMIT 5; Natomiast w celu uzyskania 3 wierszy począwszy od 8. (czyli pomijając pierwsze 7) — instrukcję: Rozdział 5. Podstawowe instrukcje SQL | 53
  • 12. SELECT * FROM pracownicy ORDER BY id LIMIT 3 OFFSET 7; Modyfikacja danych Instrukcja UPDATE Do modyfikacji danych zawartych w tabelach służy instrukcja UPDATE. Ma ona ogólną postać: UPDATE nazwa_tabeli SET kolumna1=wartość1, kolumna2=wartość2, ..., kolumnaN=wartośćN [WHERE warunek] Oznacza ona: zmień w tabeli nazwa_tabeli, w kolumnach speł- niających warunek warunek, wartość kolumny kolumna1 na war- tość1, kolumny kolumna2 na wartość2 itd. Warunek występujący po klauzuli WHERE jest tutaj opcjonalny, a jego pominięcie oznacza, że zmiany będą dokonane we wszystkich wierszach. Jeśli zatem w bazie istnieje tabela osoby zawierająca następujące kolumny: · id, · imie, · nazwisko, · rok_urodzenia, to zamianę wszystkich wartości w kolumnie rok_urodzenia na wartość 1982 umożliwi instrukcja: UPDATE osoby SET rok_urodzenia=1982; 54 | PostgreSQL. Leksykon kieszonkowy
  • 13. Aby zmiana dotyczyła konkretnych wierszy, stosuje się warunek sekcji WHERE, np. zmianę roku urodzenia dla pracownika o identy- fikatorze 8 można uzyskać za pomocą polecenia: UPDATE osoby SET rok_urodzenia=1982 WHERE id=8; Można oczywiście jednocześnie zmodyfikować kilka pól w danym wierszu, np.: UPDATE osob1y SET rok_urodzenia=1982, imie='Jan', nazwisko='Kowalski' WHERE id=1; Usuwanie danych Instrukcja DELETE Do usuwania danych służy instrukcja DELETE o schematycznej postaci: DELETE FROM tabela [WHERE warunek] Oznacza ona: usuń z tabeli tabela wszystkie wiersze spełniają- ce warunek warunek. Jeśli pominie się warunek, zostaną usunięte wszystkie dane (podobnie jak w przypadku instrukcji UPDATE, gdzie pominięcie warunku powodowało modyfikację wszystkich wierszy tabeli). Aby usunąć wszystkie dane z tabeli pracownicy, należy wykonać instrukcję: DELETE FROM pracownicy; Po jej wykonaniu tabela pracownicy nie będzie zawierała żad- nych danych. Taką konstrukcję trzeba zatem stosować z rozwagą, ponieważ serwer nie wygeneruje żadnego ostrzeżenia ani dodat- kowego pytania. Rozdział 5. Podstawowe instrukcje SQL | 55
  • 14. Selektywne usuwanie danych jest możliwe dzięki użyciu klauzuli WHERE z odpowiednim wyrażeniem warunkowym, które kon- struuje się na takich samych zasadach, jak w przypadku instrukcji SELECT czy UPDATE. Przykładowo, usunięcie z tabeli pracownicy wiersza, który w kolumnie id ma wartość 5, nastąpi po wykona- niu instrukcji: DELETE FROM pracownicy WHERE id=5; 56 | PostgreSQL. Leksykon kieszonkowy