Plan zajęć
- Program psql
- Tworzenie struktur w bazie - polecenia SQL DDL
- Wstawianie, modyfikowanie i usuwanie danych z bazy - polececia SQL DML
- Wyszukiwanie danych w bazie - polecenie SELECT
CREATE TABLE nazwa_tabeli ( nazwa_atr1 typ_danych, nazwa_atr2 typ_danych, nazwa_atr3 typ_danych, ... ) ;
ALTER TABLE nazwa_tabeli ... ;
DROP TABLE nazwa_tabeli ;
--========================================================================= -- Cwiczenie 01 Postgresql - język DDL - tworzenie struktur w bazie danych --========================================================================= -- ***************************************** -- Utworzenie schematu CREATE SCHEMA -- ***************************************** CREATE SCHEMA kurs; -- Ustawienie dostepu do schematu domyslnego SET SEARCH_PATH TO kurs; -- ****************************************** -- Utworzenie tabeli CREATE TABLE -- ****************************************** -- Utworzenie tabeli "uczestnik" w schemacie "kurs" -- Atrybuty tabeli: -- id int - identyfikator uczestnika -- imie varchar(30) - imie uczestnika -- nzawisko varchar(30) - nazwisko uczestnika CREATE TABLE kurs.uczestnik ( id int, imie varchar(30), nazwisko varchar(30) ) ; -- Modyfikacja tabeli uczestnik - ustawienie klucza glownego na atrybucie id ALTER TABLE kurs.uczestnik ADD primary key (id); -- Modyfikacja tabeli uczestnik - dodanie atrybutu rok ALTER TABLE kurs.uczestnik ADD rok char(4); -- Usuniecie tabeli "uczestnik" DROP TABLE kurs.uczestnik;
INSERT INTO nazwa_tabeli ( atr1, atr2, atr3, ... ) VALUES ( val1, val2, val3, ... ) ; INSERT INTO nazwa_tabeli VALUES ( val1, val2, val3, ... );
UPDATE nazwa_tabeli SET atr1 = val1, atr2 = val2, ... WHERE atr = val ;
DELETE FROM nazwa_tabeli WHERE atr = val ;
SELECT * FROM nazwa_tabeli ; SELECT atr1, atr2, ... FROM nazwa_tabeli WHERE warunek_wyboru ;
--========================================================================================== -- Cwiczenie 02 Postgresql - jezyk DML - wprowadzanie, poprawianie, usuwanie i przegladanie -- danych w tabeli "uczestnik" --========================================================================================== -- ************************************************************* -- Tworzymy tabelę kurs.uczestnik -- ************************************************************* CREATE TABLE kurs.uczestnik ( id int, imie varchar(30), nazwisko varchar(30) ) ; ALTER TABLE kurs.uczestnik ADD primary key (id); -- ************************************************************* -- Wprowadzanie danych do tabeli "uczestnik" -- Polecenie INSERT INTO table ( atrybuty ) VALUES ( wartosci ) -- ************************************************************* INSERT INTO kurs.uczestnik ( id, imie, nazwisko ) VALUES ( 1, 'Adam', 'Abacki' ); -- Wprowadamy dane zgodnie z kolejnoscia atrybutow w poleceniu CREATE -- (wprowadzamy wszystkie atrybuty ) INSERT INTO kurs.uczestnik VALUES ( 2, 'Bogdan', 'Babacki' ); -- Wprowadzamy jenym poleceniem INSERT kilka rekordow do tabeli INSERT INTO kurs.uczestnik values ( 3, 'Marek', 'Cabacki' ), ( 4, 'Edward', 'Dadacki' ), ( 5, 'Zygmunt', 'Ebacki' ); -- Wprowadzamy dane niekompletne ( brak wszystkich atrybutow ) INSERT INTO kurs.uczestnik ( id, nazwisko ) VALUES ( 6, 'Sosnowski') ; -- Wprowadzamy atrybuty w innej kolejnosci niz w poleceniu CREATE TABLE INSERT INTO kurs.uczestnik ( imie, nazwisko, id ) VALUES ( 'Anna', 'Mamacka', 7); -- *************************************************************** -- Wyswietlenie zawartosci tabeli -- Polecenie SELECT [atrybuty] FROM tabela [ WHERE warunek ] -- *************************************************************** -- Wyswietlenie zawartosci tabeli -- SELECT * FROM tabela -- Wybor atrybutow do wyswietlnenia (projekcja) -- SELECT atrybuty FROM tabela -- Wybor okreslonych rekordow (selekcja) -- SELECT atrybuty FROM tabela WHERE warunek wyboru -- *************************************************************** -- Wyswietlenie wszystkich atrybutow i wszystkich rekordow w tabeli SELECT * FROM kurs.uczestnik; -- Wyswietlenie wybranych atrybutow z tabeli SELECT imie, nazwisko FROM kurs.uczestnik; -- Wysietlenie wybranych rekordow SELECT imie, nazwisko FROM kurs.uczestnik WHERE id=5; -- *************************************************************** -- Modyfikacja zawartosci tabeli -- UPDATE tabela SET atrybut=nowa wartosc [ WHERE warunek ] -- **************************************************************** -- Dodajemy do tabeli dodatkowy atrybut rok ALTER TABLE kurs.uczestnik ADD rok char(4); SELECT * FROM kurs.uczestnik; -- Poprawa atrybutu we wszystkich rekordach UPDATE kurs.uczestnik SET rok='2001'; SELECT * FROM kurs.uczestnik; -- Poprawa atrybutu w wybranym wierszu UPDATE kurs.uczestnik SET rok='2003' WHERE id=4; SELECT * FROM kurs.uczestnik; -- **************************************************************** -- Usuniecie rekordow z tabeli -- DELETE FROM tabela [ WHERE warunek ] -- **************************************************************** -- Usuniecie wybranego rekordu DELETE FROM kurs.uczestnik WHERE id=3; SELECT * FROM kurs.uczestnik; -- Usuniecie wszystkich rekordow z tabeli DELETE FROM kurs.uczestnik; SELECT * FROM kurs.uczestnik; DROP TABLE kurs.uczestnik;
SELECT atr1, atr2, atr3, ... FROM nazwa_tabeli1, nazwa_tabeli2, ... WHERE warunki_wyboru ORDER BY atrybuty_sortujace ;
--==============================================================================
-- Cwiczenie 03 Postgresql - jezyk DQL - wyszukiwanie danych w tabeli
--==============================================================================
-- *****************************************************************************
-- Przygotowanie danych do cwiczenia 3
CREATE TABLE kurs.uczestnik
( id int, imie varchar(30), nazwisko varchar(30), rok char(4) ) ;
ALTER TABLE kurs.uczestnik ADD primary key (id);
INSERT INTO kurs.uczestnik ( id, imie, nazwisko, rok ) VALUES
( 1, 'Adam', 'Abacki', '2001' ),
( 2, 'Bogdan', 'Babacki', '2001' ),
( 3, 'Marek', 'Cabacki', '2002' ),
( 4, 'Edward', 'Dadacki', '2002' ),
( 5, 'Zygmunt', 'Ebacki', '2002' ),
( 6, 'Anna', 'Mamacka', '2001' );
INSERT INTO kurs.uczestnik ( id, nazwisko, rok ) VALUES ( 7, 'Sosnowski', '2001') ;
SELECT * FROM kurs.uczestnik;
-- **********************************************************************************
-- Aliasy atrybutow
SELECT id AS numer, imie AS im, nazwisko AS na FROM kurs.uczestnik;
-- Sortowanie rekordow po nazwisku
SELECT id, nazwisko, imie FROM kurs.uczestnik ORDER BY nazwisko;
-- Wybor rekordow, predykat IN
SELECT id, nazwisko, imie FROM kurs.uczestnik WHERE id IN ( 2,3,4,5);
-- Wybor rekordow, predykat BETWEEN
SELECT id, nazwisko, imie FROM kurs.uczestnik WHERE id BETWEEN 2 AND 4;
-- Wybor rekordow wyszukujac fraze w tekscie wedlug wzorca
SELECT id, nazwisko, imie FROM kurs.uczestnik WHERE nazwisko LIKE 'A%' ;
-- Wyszukiwanie rekordow z wartoscia pusta - NULL
SELECT id, nazwisko, imie FROM kurs.uczestnik WHERE imie IS NULL;
-- Wyszukiwanie rekordow nie posiadajach watosci pustej NOT NULL
SELECT id, nazwisko, imie FROM kurs.uczestnik WHERE imie IS NOT NULL;
-- Wyszukiwanie wartosci unikalnych DISTINCT
SELECT DISTINCT(rok) FROM kurs.uczestnik;