Użycie SQL Oracle opiera się na skonfigurowaniu serwera bazodanowego1 to zostało już za nas zrobione przez służby techniczne UŚ. Utworzenia połączenia pomiędzy serwerem, a naszą aplikacją narzędziową 2zagadnienie omówione w temacie: sql-wedlug-oracle. Wysłaniu do serwera sekwencji rozkazów charakteryzujących nasze potrzeby i otrzymaniu odpowiedzi serwera 3zagadnienie omówione w temacie: sql-wedlug-oracle.
Jest rzeczą logiczną, że aby pracować na bazie danych… musimy wpierw ją stworzyć. Ta czynność opiera się na poleceniu należącym do kategorii DDL4Data Definition language czyli CREATE.
Ćwiczenie 1: Utwórz tabelę o nazwie FIRMA zawierającą kolumny: ID_PRACOWNIKA klucz główny typ numeric, IMIE char(30), NAZWISKO char(60), STANOWISKO char(60), ZAROBEK numeric, DZIAL char(30)
hasło dostępowe to: exp1
Mając już stworzoną tabelę w naszej bazie danych dodajmy pierwsze wpisy używając polecenia kategorii DML5Data Modification Language
Ćwiczenie 2: Wypełnij pierwszy wiersz tabeli korzystając z danych: id:7369 prezes Stanisław Kowalski 10800 nie wstawiając żadnej wartości w pole DZIAL.
Zdając sobie sprawę z faktu, że nie umieściliśmy wszystkich koniecznych kolumn w naszej tabeli wróćmy do jej definicji i ją zmodyfikujmy dodając kolumnę za pomocą polecenia z kategorii DDL.
Ćwiczenie 3: Dodaj do tabeli FIRMA kolumnę MIASTO char(30)
ALTER TABLE "FIRMA" ADD MIASTO char(30);
ALTER TABLE "FIRMA" ADD MIASTO char(30) CONSTRAINT ID_PRACOWNIKA UNIQUE;
Qracle SQL nie posiada mechanizmu znanego np. z MySQL umożliwiającego wstawienie kolumny na wskazanej pozycji. Dodawana kolumna umieszczana jest na końcu. Drugi zapis ustawia powiązanie (przypisanie) z polem będącym zdefiniowanym identyfikatorem (tu użyto przykładowo: ID_PRACOWNIKA).
Wiedząc, że wpisaliśmy już nasze pierwsze dane do tablicy wyświetlmy je korzystając z polecenia kategorii DQL6Data Query Language.
Ćwiczenie 4: Wyświetl zawartość tabeli FIRMA.
SELECT * FROM "FIRMA";
Ćwiczenie 5: Wypełnij wartość w kolumnie DZIAL wstawiając KADRY dla wiersza w którym ID_PRACOWNIKA=7369
UPDATE "FIRMA" SET DZIAŁ='KADRY' WHERE ID_PRACOWNIKA=7369;
Ćwiczenie 6. Zmień nazwę kolumny MIASTO na LOKALIZACJA
ALTER TABLE "FIRMA" RENAME COLUMN MIASTO TO LOKALIZACJA;
Ćwiczenie 7. Zmień typ danych w kolumnie ZAROBEK z integer na float
ALTER TABLE "FIRMA" MODIFY ZAROBEK float;
lub w zapisie blokowym:
ALTER TABLE "FIRMA" MODIFY ( ZAROBEK float );
Próba zmiany typu nie dającego się konwertować bezpośrednio np. Varchar2 na Number lub z typu liczbowego na typ liczbowy o mniejszej precyzji nie powiedzie się generując błąd jeśli w tabeli na pozycji tej kolumny znajdują się już dane. Konwersji podlegają jedynie zgodne typy danych lub kolumna musi być pusta.
Ćwiczenie 8. Usuń kolumny LOKALIZACJA i DZIAL
ALTER TABLE "FIRMA" DROP COLUMN LOKALIZACJA;
ALTER TABLE "FIRMA" DROP COLUMN DZIAL;
lub jednocześnie:
ALTER TABLE "FIRMA" DROP ( LOKALIZACJA, DZIAL );
Zapis blokowy powyżej umożliwia modyfikację wielu elementów w jednym poleceniu SQL. Należy jednak zwrócić uwagę na delikatną różnicę w składni.
Ćwiczenie 9. Do tabeli FIRMA wstaw kolumnę NR_DZIALU integer
ALTER TABLE "FIRMA" ADD NR_DZIALU integer;
Ćwiczenie 10. Wstaw wartość 20 w kolumnie NR_DZIALU, dla wiersza w którym ID_PRACOWNIKA=7369
UPDATE "FIRMA" SET NR_DZIALU=20 where id_pracownika=7369;
Ćwiczenie 11. Utwórz tabelę DZIAL zawierającą kolumny: NR_DZIALU – klucz główny integer, oraz NAZWA_DZIALU char(50), LOKALIZACJA char(50)
INSERT INTO "DZIAL" VALUES(10,'KSIEGOWOŚĆ','KATOWICE');
INSERT INTO "DZIAL" VALUES(20,'BADANIA','WARSZAWA');
INSERT INTO "DZIAL" VALUES(30,'SPRZEDAŻ','POZNAŃ');
INSERT INTO "DZIAL" VALUES(40,'OPERACJE','GDAŃSK');
Ćwiczenie 16. Wyświetl zawartość tabeli DZIAL
SELECT * FROM "DZIAL";
Ćwiczenie 17. Wypełnij tabele PRACOWNICY
Z uwagi, gdy nie wypełniamy wartościami wszystkich kolumn tabeli “PRACOWNICY” łatwiej nam będzie skorzystać z poniższej formy polecenia INSERT. Pozwala nam to też zachować własną kolejność wymienianych atrybutów.
INSERT INTO "PRACOWNICY" (ID_PRACOWNIKA,IMIE,NAZWISKO,STANOWISKO,ZAROBEK,NR_DZIALU) VALUES (7369,'MARCIN','SMITKO','URZĘDNIK',800,20);
INSERT INTO "PRACOWNICY" (ID_PRACOWNIKA,IMIE,NAZWISKO,STANOWISKO,ZAROBEK,NR_DZIALU) VALUES (7499,'WOJTEK','ALLEN','SPRZEDAWCA',1600,30);
INSERT INTO "PRACOWNICY" (ID_PRACOWNIKA,IMIE,NAZWISKO,STANOWISKO,ZAROBEK,NR_DZIALU) VALUES (7521,'ŁUKASZ','WARD','SPRZEDAWCA',1250,30);
INSERT INTO "PRACOWNICY" (ID_PRACOWNIKA,IMIE,NAZWISKO,STANOWISKO,ZAROBEK,NR_DZIALU) VALUES (7566,'DAMIAN','JONAS','KIEROWNIK',2975,20);
...
W przeciwnym wypadku musimy użyć listy wartości atrybutów zgodnej z kolejnością kolumn w tabeli. Kolejność tę można zawsze sobie przypomnieć za pomocą poniższego polecenia.
Uzupełnienie danych: Po przeprowadzeniu wyżej wymienionych ćwiczeń utrwalmy je realizując zadanie utworzenia struktur analogicznych do przedstawionych poniżej danych.
Domyślnie pliki otwierane są w trybie tekstowym, co pozwala zapisać i odczytać dane w określonym kodowaniu jako stringi. Współcześnie, najczęściej używanym kodowaniem dla tekstu jest standard UTF-8. Trzeba jednak pamiętać, że w trybie tekstowym znaki końca linii dla systemów Unix (\n) i Windows Dowiedz się więcej…
Często nasze programy potrafi przerwać nieoczekiwany błąd… spowodowany albo zewnętrzną przyczyną, albo naszym niedopatrzeniem. Jednym ze sposobów eleganckiego “załatwienia” problemu jest przejęcie wywołania wyjątku i obsłużenie go w wybrany przez nas sposób. Jednym z takich błędów może być np. brak pliku, z którego chcemy odczytać dane. Dowiedz się więcej…
Obsługa plików jest ważną częścią programowania, umożliwiając zapis naszych danych do pliku, bądź wczytywanie do programu danych z zewnątrz. Aby rozważyć temat plików musimy zdawać sobie sprawę w jaki sposób są one skonstruowane. W najprostszym podejściu możemy wyróżnić dwa rodzaje plików: Dowiedz się więcej…