Połączenie z bazą: psql
\? - pomoc
\h - składnia SQL, np. \h create table
\d - wyświetlenie zawartości bazy
\d tabela - definicja tabeli
\u - wyświetlenie użytkowników
\l - wyświetlenie baz
\c baza - połączenie z inną bazą
\i – wykonanie skryptu
Tworzenie tabel
CREATE TABLE mojaTabela{
imie VARCHAR(20),
nazwisko VARCHAR(20),
wiek INT
}
Wkładanie krotek
INSERT INTO mojaTabela(nazwisko,imie,wiek)
VALUES ('Kowalski','Jan',22)
Usuwanie krotek
DELETE FROM mojaTabela
WHERE wiek>30
Modyfikacja krotek
UPDATE mojaTabela
SET imie='Jan'
WHERE imie='Jasiu'
POLECENIA
Utwórz tabelę pracownicy:
CREATE TABLE
pracownicy( lp_pracownika int2, data_urodzenia date, imie varchar(15), nazwisko varchar(30),
data_zatrudnienia date, lp_oddzialu int2, miasto varchar(20));
2. Utwórz tabelę oddzialy:
CREATE TABLE
oddzialy( lp_oddzialu int2, nazwa_oddzialu varchar(30), miasto varchar(20));
3. Sprawdzić format przechowywania daty
SHOW DATESTYLE;
4. Zmienić na format 'Postgres, European': 01-12-1998
SET DATESTYLE TO 'Postgres, European';
5. Dopisać
INSERT INTO oddzialy( lp_oddzialu, nazwa_oddzialu, miasto)
VALUES (1, 'I Oddzial w Elblagu', 'Elblag');
INSERT INTO oddzialy( lp_oddzialu, nazwa_oddzialu, miasto)
VALUES (2, 'II Oddzial w Gdyni', 'Gdynia');
6. Dopisać dane używając przetwarzania wsadowego z pliku nowe_oddzialy.sql o zawartości :
INSERT INTO oddzialy( lp_oddzialu, nazwa_oddzialu, miasto)
VALUES (3, 'III Oddzial w Gdyni', 'Gdynia');
INSERT INTO oddzialy( lp_oddzialu, nazwa_oddzialu, miasto)
VALUES (4, 'IV Oddzial w Warszawie', 'Warszawa');
INSERT INTO oddzialy( lp_oddzialu, nazwa_oddzialu, miasto)
VALUES (5, 'V Oddzial w Lublinie', 'Lublin');
używając komendy \i
" baza=# \i nowe_oddzialy.sql "
7. Dopisać rekordy do tabeli pracownicy w sposób j.w. z pliku pracownicy.sql:
8. Dodać do tabeli pracownicy kolumnę 'zarobki'
ALTER TABLE pracownicy ADD COLUMN zarobki int2;
9. Zmienić nazwę zarobki w tabeli pracownicy na 'pensja'
ALTER TABLE pracownicy RENAME COLUMN zarobki TO pensja;
10. Wykonać zapytanie wybierające z tabeli 'pracownicy' imiona i nazwiska osób, które zostały zatrudnione pomiędzy 01-01- 01-01-2002
11. Wykonać zapytanie wybierające tych pracowników, których pierwsza litera nazwiska to 'K' i mają więcej niż 30 lat
12. Wykonać zapytania aktualizujące ustalające pensje dla pracowników, którzy pracują więcej niż 10 lat na 2000 oraz 1000 dla pracujących krócej
13. Używając funkcji agregujących obliczyć w kolejnych zapytaniach
ilość pracowników
średni wiek pracowników
średni wiek pracowników pogrupowany względem zarobków
średnie zarobki w oddziale
sumę wydatków na pensje dla poszczególnych oddziałów
14. Utworzyć zapytanie wyświetlające dane o pracownikach wraz z nazwą miasta, w którym pracują i nazwą oddziału , użyć połączenia między tabelami
15. Napisać zapytanie przedstawiające wydatki na pensje w poszczególnych miastach, wykorzystać połączenia między tabelami
16. Napisać zapytanie znajdujące pracowników, którzy mieszkają i pracują w tym samym mieście
17. Wyliczyć średnie, minimalne i maksymalne wynagrodzenie, w jednym zapytaniu dla każdego oddziału
18. Utworzyć zapytanie podające liczbę pracowników (count) i średni (avg) staż pracy dla każdego z oddziałów