Tutorial PostgreSQL 1. Instalacja na własnym komputerze: a. Zainstaluj program ze strony: https://www.postgresql.org/download/ Wersja odpowiednia dla systemu operacyjnego Linux, Mac, Windows Przy pierwszym uruchomieniu zostaniemy poproszeni o ustawienie hasła dla użytkownika postgres. Hasło należy zapamiętać, będzie później potrzebne. b. Uruchom SQL shell (psql) Server [localhost]: Database [postgres]: Port [5432]: Username [postgres]: Hasło użytkownika postgres: Będą się pojawiać po 1 linii komunikaty (jeśli instalacja była domyślna i chcemy pracować na lokalnej bazie danych- klikamy ENTER, w Hasło użytkownika postgres wpisujemy wybrane hasło podczas instalacji programu Jeśli hasło zostanie poprawnie wpisane, pojawi się komunikat: psql (9.6.2) OSTRZEŻENIE: strona kodowa konsoli (852) jest różna od kodowania Windows (1250) 8-bitowe znaki mogą nie wyglądać poprawnie. Przejrzyj odnośną stronę "Notes for Windows users" by poznać szczegóły. Wpisz "help" by uzyskać pomoc. 2. Tworzenie baz danych, tabel c. Utwórz nową bazę danych o nazwie firma i połącz się z tą bazą danych: CREATE DATABASE firma; \l wyświetlisz listę baz danych, nowo utworzona baza powinna być na tej liście \c firma; - połączy się z bazą danych firma d. Usuń utworzoną wcześniej bazę danych: DROP DATABASE firma; Sprawdź listę baz danych, jak jest wynik? e. Aby utworzyć tabelę należy użyć polecenia CREATE TABLE CREATE TABLE table_name( column1 datatype,
column2 datatype, column3 datatype,... columnn datatype, PRIMARY KEY( one or more columns ) ); Przykładowe typy danych: Nazwa Oznaczenie Opis bigint int8 ośmiobitowa liczba całkowita ze boolean bool typ logiczny (prawda/fałsz) varying [ (n) ] varchar[(n)] ciąg znaków o zmiennej długości character [ (n) ] char[(n)] ciąg znaków o ustalonej długości date - data (rok, miesiąc, dzień) double precision float8 liczba rzeczywista o podwójnej precyzji integer int int4 czterobajtowa liczba całkowita ze money - aktualna waluta numeric [ (p, s) ] decimal[(p,s)] liczba o podanej precyzji real float4 liczba rzeczywista - pojedyncza precyzja smallint int2 dwubajtowa liczba całkowita ze text - tekst o zmiennej długości time [ (p) ] [ without time zone ] - czas Zadanie 1. Utwórz bazę danych o nazwie MojaFirma z następującymi tabelami: pracownicy (id_pracownika, imie, nazwisko, adres, telefon) placa(id_pracownika, wyplata, czy_premia, wysokość_premii) godziny(id_pracownika, ilość_godzin, nadgodziny) CREATE TABLE tabela3 (id_tabeli int PRIMARY KEY NOT NULL, kolumna2 char(20)); Pamiętaj o wskazaniu odpowiedniego typu danych przy każdym z atrybutów! Następnie użyj komend: \d \d placa Co jest jej rezultatem?
3. Wprowadzanie danych do zdefiniowanych tabel Do uzupełniania tabel służy polecenie INSERT INTO INSERT INTO tabela3 (id_tabeli, kolumna2) VALUES (1, 'a'); W 2 wersjach a) Podajemy kolejność, w jakiej będziemy wprowadzać dane do bazy danych: INSERT INTO TABLE_NAME (column1, column2, column3,...columnn) VALUES (value1, value2, value3,...valuen); b) Dane dla poszczególnych atrybutów, wprowadzone będą w kolejności podanej w bazie danych INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valuen); Zadanie 2. Wypełnij utworzone tabele treścią wg poniższego wzoru (każda tabela ma zawierać min. 10 rekordów). Podczas tworzenia danych personalnych zerknij na polecenia w zadaniu 3, aby je dopasować. Przykłady: pracownicy(1, Jan, Kowalski, Miodowa 3, 31-213 Kraków, 555444333) placa(1, 1500, NIE, 0) godziny(1, 160, 0) 4. Wyświetlanie zapytań (SELECT) Zadanie 3. Wykonaj następujące zapytania: a) Wyświetl tylko id pracownika oraz jego nazwisko b) Wyświetl id pracowników, których płaca jest większa niż 1000 c) Wyświetl id pracowników nie posiadających premii, których płaca jest większa niż 2000 d) Wyświetl imię i nazwisko pracowników oraz liczbę ich nadgodzin e) Wyświetl imię i nazwisko pracowników mających płacę wyższą niż 1500 lub z liczbą nadgodzin > 40 Podpowiedzi do zadań: SELECT * FROM Pracownik WHERE Nazwisko='Kowalski' OR Nazwisko='Nowak';
SELECT * from Produkt WHERE cena BETWEEN 20 AND 30; SELECT * from Pracownik WHERE Nazwisko LIKE 'K%'; SELECT * from Pracownik WHERE Nazwisko LIKE 'Kowalsk_'; SELECT Imie,Nazwisko,Stanowisko FROM Pracownik AS P,Stanowiska AS S WHERE P.id_stanowiska=S.id; SELECT Imie,Nazwisko,Stanowisko FROM Pracownik,Stanowiska WHERE Pracownik.id_stanowiska=Stanowisko.id; 5. Modyfikacja tabel, usuwanie danych Aby zmodyfikować tabelę: dodać kolumnę, usunąć kolumnę lub zmodyfikować jej nazwę należy użyć polecenia ALTER TABLE ADD [COLUMN] nazwa_pola typ_pola; ALTER TABLE Pracownik DROP [COLUMN] PESEL; RENAME stara_nazwa TO nowa_nazwa; RENAME TO nowa_nazwa_tabeli; Usuwanie rekordów: DELETE DELETE FROM nazwa_tabeli WHERE warunek; Usuwanie tabeli lub bazy danych: DROP DROP typ_obiektu nazwa_obiektu; DROP TABLE Pracownik; 6. Wczytanie istniejącej bazy danych do PostgreSQL Plik SQL z bazą (cukiernia.sql) zapisz w dowolnym miejscu na dysku (w przykładzie poniżej Pulpit), W PostgresSQL utwórz bazę Cukiernia Otwórz Wiersz Polecenia (Aplikacja) W Wierszu Polecenia przejdź na Pulpit lub w miejsce w którym znajduje się plik z bazą danych: C:\Users\NazwaUzytkownika >cd Desktop
Lub C:\Users\NazwaUzytkownika >cd DowolnaLokalizacja Wpisz: C:\Users\NazwaUzytkownika\Desktop>"C:\Program Files\PostgreSQL\9.5\bin\psql.exe" -Upostgres Cukiernia < cukiernia.sql Wskazana została lokalizacja miejsca w którym znajduje się plik z bazą danych > lokalizacja pliku wykonywalnego PostgreSQL.exe Upostgres NazwaBazyModyfikowanej < nazwabazyktórąmodyfikujemy (importujemy do PostgreSQL) Zadanie 4. Otwórz bazę danych Cukiernia w PostgreSQL i wykonaj wybrane kwerendy z zajęć. Cukiernia=# \d Lista relacji Schemat Nazwa Typ W aťciciel ---------+------------+--------+------------ public artykuly tabela postgres public czekoladki tabela postgres public klienci tabela postgres public pudelka tabela postgres public zamowienia tabela postgres public zawartosc tabela postgres (6 wierszy) Cukiernia=# SELECT * FROM Pudelka;