Podstawy języka SQL
Podstawy języka SQL
1. Cele lekcji
a) Wiadomości
Uczeń:
zna podstawowe komendy języka SQL,
wie jak utworzyć prostą bazę danych korzystając z darmowego serwera baz danych MySQL,
wie, w jaki sposób utworzyć bazę danych w języku SQL korzystając z Microsoft Access.
b) Umiejętności
Uczeń:
potrafi wymienić podstawowe komendy języka SQL,
umie utworzyć prostą bazę danych korzystając z darmowego serwera baz danych MySQL,
umie utworzyć bazę danych w Microsoft Access używając języka SQL.
2. Metoda i forma pracy
Dyskusja, ćwiczenie, praca indywidualna.
3. Środki dydaktyczne
Komputer
Internet
Baza danych Microsoft Access
Darmowy serwer baz danych MySQL
Karta pracy
4. Przebieg lekcji
a) Faza przygotowawcza
Nauczyciel zapoznaje uczniów z tematem lekcji i uświadamia im cele zajęć. Prosi o włącznie komputerów. Przed zajęciami nauczyciel przygotowuje kartki z opisem podstawowych komend SQL (załącznik 1) oraz wycina kartki z zadaniami zawartymi w karcie pracy (załącznik 2). Ważne jest również wcześniejsze zainstalowanie na komputerach darmowego serwera baz danych MySQL. Nauczyciel powinien również wcześniej przygotować lub ściągnąć z Internetu przykładową bazę danych i udostępnić ją w zasobach sieciowych pracowni lub umieszczoną w folderze na dysku twardym każdego komputera znajdującego się w pracowni.
b) Faza realizacyjna
Nauczyciel prosi uczniów o włączenie komputerów, rozdaje kartki z opisem podstawowych komend SQL (załącznik 1).
Następnie omawia zasadę tworzenia prostej bazy danych wspomagając się kartkami z opisem tworzenia bazy danych w języku SQL (załącznik 1). Jednocześnie uczniowie, korzystając z udostępnionych im materiałów i słuchając opisów podawanych przez nauczyciela wykonują krok po kroku przykładową bazę danych.
Następnym krokiem jest rozdanie uczniom Kart Pracy (załącznik 2) zawierających określone zadania do wykonania.
Po wytłumaczeniu zawartych w Karcie Pracy zadań nauczyciel prosi uczniów o realizację zadania nr 1.
Po wykonaniu zadania nr 1 uczniowie przedstawiają nauczycielowi efekty swojej pracy.
Następnie nauczyciel objaśnia zastosowanie języka SQL w Microsoft Access.
Po omówieniu zastosowania SQL w MS Access uczniowie przystępują do realizacji zadania nr 2 zawartego w Karcie Pracy (załącznik 2).
Po wykonaniu zadania nr 2 uczniowie przedstawiają nauczycielowi efekty swojej pracy.
Na zakończenie zajęć nauczyciel wraz z uczniami omawia zasadność tworzenia baz danych w języku SQL.
c) Faza podsumowująca
Uczniowie nabierają wiedzy o budowie bazy danych opartej na języku SQL.
Potrafią utworzyć prostą bazę danych korzystając z poleceń języka SQL.
Utrwalają umiejętności logicznego myślenia pozwalającego na poprawne utworzenie bazy danych.
Uwagi dla nauczyciela:
Ważne jest aby uświadomić uczniom, że bazę danych, tworzoną w języku SQL, można napisać nie tylko korzystając z komercyjnego oprogramowania jakim jest Microsoft Access. Dlatego ważnym aspektem jest nauka tworzenia prostej bazy danych korzystając z darmowego serwera baz danych MySQL.
5. Bibliografia
Koba G., Informatyka dla liceum ogólnokształcącego, Migra, Wrocław 2003.
Broda P., Smołucha D., Informatyka, Operon, Gdynia 2006.
Wilton P., Colby J., SQL. Od podstaw, Helion, Gliwice 2005.
6. Załączniki
a) Karta pracy ucznia
załącznik 1.
SQL, Structured Query Language, standardowy język zapytań do obsługi relacyjnej bazy danych. Język programowania baz danych i ich sieciowych serwerów. Pierwowzorem SQL był opracowany przez IBM we wczesnych latach siedemdziesiątych XX w. język SEQUEL (E. F. Codd).
Dalsza inicjatywa należała do firmy Oracle, która od 1977 upowszechnia systemy zarządzania bazami danych oparte na SQL. W 1982 podjęto prace standaryzacyjne (ANSI X3H2), zakończone w 1986 (SQL1). Drugi standard SQL pochodzi z ISO (1987). Rok 1989 zaowocował dodatkiem do obu standardów (SQL‑89). Rozszerzony standard języka, o nazwie SQL2 (SQL‑92), został zatwierdzony przez ANSI i ISO w 1992. Najnowsze rozszerzenia języka opatrzono nazwą SQL3. Niezależnie od specyficznych właściwości standardów język SQL pozwala formułować działania na tabelach w formie zbliżonej do zdań w języku angielskim.
MySQL jest bardzo popularnym bazodanowym systemem zarządzania, opartym o licencję Open Source SQL Baza danych SQL może mieć różnoraką strukturę oraz zawartość: od prostych list informacyjnych, poprzez galerie obrazków aż po zaawansowane, korporacyjne zastosowania w dużych przedsiębiorstwach. Aby zarządzać, administrować oraz modyfikować danymi umieszczonymi w bazie danych musimy mieć zainstalowany w systemie serwer bazodanowy MySQL Server. Współczesne komputery bardzo dobrze dają sobie radę ze skomplikowanymi obliczeniami związanymi ze współczesnymi bazami danych i bezproblemowo pozwalają na pełnienie centralnej roli serwera bazodanowego w standardowym zastosowaniu i typowych ustawieniach .
W tym opracowaniu zakładam, że na w komputerze mamy poprawnie zainstalowany MySQL Server oraz pracujemy w systemie Windows XP lub Windows 2000. Wersja MySQL użyta w tym opracowaniu to 4.1.7.
Po zainstalowaniu serwera bazy danych MySQL w systemie Windows należy uruchomić ją w następujący sposób:
Menu start Programy MySQL MySQL Server MySQL Command Line Client
Po uruchomieniu widzimy okno logowania. Podajemy hasło i naciskamy <ENTER>. Po zalogowaniu (przyjmujemy, że mamy jednego użytkownika root i pracujemy jako root) widzimy następujące okno:
Aby utworzyć bazę o nazwie baza 1 wydajemy polecenie:
create database baza1;
Następnie możemy sprawdzić czy nasza baza została utworzona oraz jakie bazy mamy już utworzone (standardowo po zainstalowaniu są tworzone samoczynnie bazy „mysql” oraz „test”. Polecenie służące do wyświetlania wszystkich baz to:
show databases;
Jak widzimy mamy do dyspozycji 3 bazy. My będziemy pracować w bazie o nazwie „baza1”. W tym celu wydajemy polecenie:
use baza1;
aby rozpocząć pracę w konkretnej bazie (w tym przypadku w bazie o nazwie „baza1”).
Po wejściu do naszej bazy możemy wydać polecenie
show tables;
które pozwoli nam na wyświetlenie jakie mamy tabele w naszej bazie.
W naszym przypadku serwer wyświetlił informację, że baza jest pusta, więc teraz możemy przystąpić do utworzenia tabeli. W tym celu wydajemy polecenie
create table nazwa**(**i_ucz int PRIMARY KEY AUTO_INCREMENT);
gdzie:
nazwa – jest to nazwa naszej tabeli;
i_ucz – jest to identyfikator;
int – (ang. integeer) – jest to liczba całkowita, wg. której nastąpi numerowanie identyfikatora. Można również użyć polecenia „char”, które pozwoli nam na zastąpienie cyfr literami;
PRIMARY KEY AUTO_INCREMENT – oznacza, że będzie to nasz klucz podstawowy wraz z autonumerowaniem;
Sumując, jeżeli chcemy w bazie „baza1” utworzyć tabelę o nazwie „uczniowie” o identyfikatorze „i_ucz” powinniśmy wydać polecenie:
create table uczniowie(i_ucz int PRIMARY KEY AUTO_INCREMENT);
Wówczas możemy ponownie wydać polecenie :
show tables;
pokazujące nam efekty naszej pracy
Polecenie
explain uczniowie:
Wyświetli nam strukturę tabeli o nazwie „uczniowie”
Wszystkie zmiany robimy poleceniem
alter table;
Przykładem może być wstawienie kolumny zawierającej „imie” o długości do 30 znaków, „login” o długości do 10 znaków oraz „pass” o długości do 10 znaków (jest to przykład utworzenia konta o określonej nazwie wraz z loginem oraz hasłem). W tym celu musimy wydać polecenie:
alter table uczniowie add column(imie varchar(30), login varchar(10), pass varchar(10));
Następnie poleceniem
explain uczniowie;
możemy wyświetlić schemat naszej tabeli
Informacje zawarte w naszej tabeli nie mają jeszcze wprowadzonych danych. Robimy to poleceniem
insert
Aby wprowadzić dane do tabeli o użytkowniku „Jan” posiadającym login „janek” i haśle „janusz” wpisujemy następującą komendę:
insert into uczniowie values(‘’,’Jan’,’janek’,’janusz’);
Zwróć uwagę na fakt , iż wszystkie dane w nawiasie zostały umieszczone pomiędzy znakami apostrofa ‘ oraz dodatkowo umieszczono jedno puste pole przed nazwą użytkownika (czyli przez ‘Jan’). Owo puste pole ma na celu zapewnienie miejsca identyfikatorowi (i_ucz), który będzie samoczynnie wstawiany. Wpisz więc powyższą komendę. Następnie możesz powtórzyć komendę wpisując tym razem nowego użytkownika. Przyjmijmy, że nowym użytkownikiem będzie Wojtek mający login „Wojciech” a hasło „wojtek”. Następnie wpisz polecenie
select * from uczniowie;
które wyświetli nam dane znajdujące się w tabeli „uczniowie”
Jeżeli chcemy dokonać zmiany w konkretnej komórce wydajemy polecenie
update
Przykładowo, chcemy zmienić imię z Wojtka na Karola u użytkownika z identyfikatorem o numerze 2. W tym celu musimy wydać polecenie
update uczniowie set imie=”Karol” where i_ucz=2;
Zwróć uwagę, że wpisujemy w poleceniu tylko nowe imię posługując się jedynie numerem identyfikatora (dokładne tłumaczenie polecenia wygląda następująco: zaktualizuj tabelę uczniowie zamieniając w kolumnie „imie” poprzednie słowo słowem „Karol” u użytkownika posiadającego identyfikator o numerze 2). Po wpisaniu komendy wydaj polecenie:
select * from uczniowie;
aby zaobserwować zmiany
Oczywiście, każde z poleceń możemy rozwijać dopisując określone parametry. I tak, np.:
select i_ucz,imie,login,pass from uczniowie order by imie; - wyświetli nam zawartość tabeli sortując dane alfabetycznie według kolumny „imie” (ma to oczywiście sens w przypadku większej ilości danych)
select * from uczniowie where imie like ‘J’; - wyszuka nam dane według kolumny „imie” w imionach zaczynających się od litery „J”.
Aby usunąć dane z naszej tabeli (np. kolumnę) musimy wydać polecenie
alter table nazwa_tabeli drop column nazwa_kolumny**;**
gdzie „nazwa_tabeli” jest nazwą naszej tabeli (w tym przypadku „uczniowie”) a „nazwa_kolumny” jest nazwą kolumny, którą chcemy usunąć. Przyjmijmy więc, że usuwamy kolumnę „pass”. W tym celu należy wydać polecenie
alter table uczniowie drop column pass;
Po wydaniu komendy wpiszmy polecenie
select * from uczniowie;
i sprawdźmy co zmieniło się w naszej tabeli.
Podobnie możemy postąpić chcąc usunąć tabelę czy nawet całą bazę. Celem usunięcia całej bazy danych wpisujemy polecenie
drop database nazwa_bazy**;**
gdzie „nazwa_bazy” jest nazwą usuwanej przez nas bazy. Zmiany oczywiście możemy zobaczyć wydając polecenie
show databases;
Polecenie, które kończy pracę z bazą danych MySQL to (w zależności od wersji)
exit;
lub
quit;
Po wydaniu tego polecenia automatycznie zamyka się okno konsoli zarządzania bazą danych serwera MySQL.
W przedstawionym tutaj krótkim opisie MySQL dokonaliśmy kilku najczęściej wykonywanych rzeczy. Oczywiście, możliwości MySQL są o wiele większe, jednakże jest to temat tak rozległy, że starcza on do napisania bardzo grubej książki. Nie chodziło tutaj o szczegółowe poznanie wszystkich możliwości bazy danych MySQL, lecz o zapoznanie się z ogólnym wyglądem oraz podstawowymi funkcjami oraz zastosowaniem MySQL.
załącznik 2.
Zadanie 1. Utwórz prostą bazę danych korzystając z darmowego serwera baz danych MySQL. W bazie danych ma znaleźć się lista 10. najbliższych ci kolegów / koleżanek. Poszczególne kolumny muszą zawierać klucz, imię, nazwisko, wiek, płeć, datę urodzenia, telefon. Pamiętaj o zasadach tworzenia bazy danych. Możesz pomagać sobie materiałami otrzymanymi na lekcji.
Zadanie 2. Wiedząc już jak utworzyć prostą bazę danych korzystając z darmowego serwera baz danych MySQL oraz w jaki sposób wprowadzać dane do bazy danych dokonaj następujących modyfikacji w istniejącej bazie danych w Microsoft Access (możliwe jest wprowadzanie informacji tylko przy użyciu języka SQL):
dodaj do istniejącej kwerendy adresy osób,
ułóż alfabetycznie kolejność gości obierając za klucz ich imiona,
utwórz kwerendę wyświetlającą gości, zawierającą ich imiona, nazwiska, adresy i numery telefonów domowych.
b) Notatki dla nauczyciela
Menu wyboru widoku SQL w Microsoft Access
Przykładowe okno kwerendy o nazwie ADRESY wyświetlającej listę osób według imienia, nazwiska, numeru telefonu domowego i numeru telefonu komórkowego
Przykład kwerendy z tabeli ADRESY wyświetlającej imiona, nazwiska, numery domowe telefonów i numery komórkowe telefonów według kolejności numerów telefonów komórkowych.
7. Czas trwania lekcji
4 x 45 minut
8. Uwagi do scenariusza
Darmowy serwer baz danych MySQL można ściągnąć ze strony: http://pliki.webhelp.pl/index.php?action=file&roz=php&id=364
lub
http://www.download.net.pl/3764/MySQL/