Warszawa 28-02-2010 r.
Bazy Danych Laborki 1
∇ - symbol spacji
Aby wejść bezpośrednio do bazy:
psql –dbname renta car
/dt wyświetlenie tabeli renatcar
/? help dla poleceń SQL
/h help – wszystkie dostępne polecenia
/q wyjście z postgresa
/i∇nazwa pliku wgrywanie pliku
/o przekserowanie wszystkich rezultatów do pliku
/d struktury, schematy (lista tabel)
/d∇klienci struktura relacji konkretnej bazy o nazwie klienci
Komendy:
Wyświetlenie zawartości całej tabeli
SELECT * FROM klienci;
Wyświetlenie imion z bazy klienci
SELECT imie FROM klienci;
Wyświetlenie marki i koloru z tabeli samochody
SELECT marka,kolor FROM samochody;
Wyświetlenie koloru auta z tabeli samochody
SELECT kolor FROM samochody;
Wyświetlenie koloru auta z tabeli samochody, ale bez powtórzeń
SELECT DISTINCT kolor FROM samochody;
Wyświetlenie stanowiska z tabeli pracownicy bez powtórzeń
SELECT DISTINCT stanowisko FROM pracownicy;
Wyświetlenie imienia i nazwiska klientów z tabeli klienci
SELECT imie,nazwisko FROM klienci;
Wyświetlenie imienia i nazwiska z tabeli klienci posortowane po nazwisku (domyślnie od A do Z)
SELECT imie,nazwisko FROM klienci ORDER BY nazwisko;
Wyświetlenie imienia i nazwiska z tabeli klienci posortowane po nazwisku (od Z do A)
SELECT imie,nazwisko FROM klienci ORDER BY nazwisko DESC;
Wyświetlenie marki i koloru z tabeli samochody posortowane po marce i kolorze
SELECT marka,kolor FROM samochody ORDER BY marka,kolor;
Wyświetlenie marki i koloru z tabeli samochody posortowane po marce (od Z do A) i kolorze
SELECT marka,kolor FROM samochody ORDER BY marka DESC,kolor;
Wyświetlenie nazwiska i pensji z tabeli pracownicy
SELECT nazwisko,pensja FROM pracownicy;
Wyświetlenie nazwiska i pensji z tabeli pracownicy posortowane po pensji
SELECT nazwisko,pensja FROM pracownicy ORDER BY pensja;
Wyświetlenie nazwiska, pensji i dodatku z tabeli pracownicy
SELECT nazwisko,pensja,dodatek FROM pracownicy;
Wyświetlenie nazwiska, pensji, dodatku jak również pensji z dodatkiem z tabeli pracownicy (brak nazwy nagłówka kolumny)
SELECT nazwisko,pensja,dodatek,pensja+dodatek FROM pracownicy;
Wyświetlenie nazwiska, pensji, dodatku jak również pensji z dodatkiem z tabeli pracownicy (z nadaniem nazwy nagłówkowi kolumny)
SELECT nazwisko,pensja,dodatek,pensja+dodatek AS razem FROM pracownicy;
Wyświetlenie nazwiska, pensji, dodatku jak również pensji z dodatkiem z tabeli pracownicy (z nadaniem nazwy nagłówkowi kolumny) – inny sposób
SELECT nazwisko,pensja,dodatek,pensja+coalesce (dodatek, 0) AS razem FROM pracownicy;
Wyświetlenie nazwiska i dochodu rocznego z tabeli pracownicy
SELECT nazwisko,(pensja+coalesce (dodatek,0))*12 AS rocznie FROM pracownicy;
Wyświetlenie marki i koloru z tabeli samochody ale tylko Fiaty
SELECT marka,kolor FROM samochody WHERE marka=’Fiat’;
Wyświetlenie marki i koloru z tabeli samochody ale tylko Fiaty lub Fordy
SELECT marka,kolor FROM samochody WHERE marka=’Fiat’ OR marka=’Ford”;
Wyświetlenie marki i koloru z tabeli samochody ale tylko Fiaty lub Fordy – inny zapis..
SELECT marka,kolor FROM samochody WHERE marka in (‘Fiat’, ‘Ford’);
Wyświetlenie nazwiska i pensji z tabeli pracownicy z zakresu pomiedzy 1500 a 2000 zł
SELECT nazwisko,pensja FROM pracownicy WHERE pensja>1500 AND pensja<2000;
Wyświetlenie nazwiska i pensji z tabeli pracownicy z zakresu pomiedzy 1500 a 2000 zł – inny sposób
SELECT nazwisko,pensja FROM pracownicy WHERE pensja BETWEEN 1500 AND 2000;
Wyświetlenie nazwiska i pensji z tabeli pracowników osób których dodatek był pusty
SELECT nazwisko,pensja FROM pracownicy WHERE dodatek isNULL;
Wyświetlenie nazwiska i pensji z tabeli pracowników osób których dodatek nie był pusty
SELECT nazwisko,pensja FROM pracownicy WHERE dodatek is NOT NULL;
Dodatkowe informacje:
LIKE można zastąpić ~~
ILIKE można zastąpić ~~* (bez znaczenia jest wielkość znaków)
% znak globalny zastępuje wszystko
_ znak globalny zastępuje jeden znak
Wyświetlenie nazwisk z tabeli klienci gdzie nazwisko zaczyna się na literkę „d”
SELECT nazwisko FROM klienci WHERE nazwisko ILIKE ‘d%’;
Wyświetlenie nazwisk z tabeli klienci gdzie nazwisko kończy się na literkę „i”
SELECT nazwisko FROM klienci WHERE nazwisko ILIKE ‘%i’;
Wyświetlenie nazwisk z tabeli klienci gdzie drugą literką w nazwisku jest „o”
SELECT nazwisko FROM klienci WHERE nazwisko ILIKE ‘_o%’;
Wyświetlenie nazwisk z tabeli klienci gdzie trzecią literką w nazwisku jest „w”
SELECT nazwisko FROM klienci WHERE nazwisko ILIKE ‘__w%’;
Wyświetlenie nazwisk z tabeli klienci gdzie nazwisko zaczyna się na literkę „d” – inny sposób
SELECT nazwisko FROM klienci WHERE nazwisko ~* ‘^d’;
Wyświetlenie nazwisk z tabeli klienci gdzie nazwisko zaczyna się na literkę „d” i na „r”
SELECT nazwisko FROM klienci WHERE nazwisko ~* ‘^d|^r’;
Wyświetlenie nazwisk z tabeli pracownicy ale tylko trzech (uwaga nie wiadomo które 3 zostaną wyświetlone)
SELECT nazwisko FROM pracownicy LIMIT 3;
Wyświetlenie nazwisk z tabeli pracownicy ale tylko 3 zaczynając od 2 rekordu
SELECT nazwisko FROM pracownicy OFFSET 2 LIMIT 3;
Brakuje tylko dwóch ostatnich komend związanych z powiązaniami tabel za pomocą kluczy
darkstone