Obsługa bazy danych i podstawowe polecenia SQL
Mysql to rodzaj bazy operujący na tabelach zamkniętych w bazie danych. Osoby znające język angielski nie powinny mieć problemu z nauką poleceń.
1. Zakładanie bazy danych:
create database nazwa_bazy;
create database nauka;
Każde polecenie w mysql kończymy średnikiem podobnie jak w języku PHP.
2.Wyświetlanie listy dostępnych baz:
show databases;
3.Nie możemy wykonywać poleceń w bazie danych jeżeli jej nie wybierzemy, dla tego zacznijmy jej „używać”:
use nauka;
gdzie „nauka” to nazwa naszej bazy.
Po wykonaniu każdego zapytania mysql zwraca nam komunikat o tym czy zostało ono wykonane prawidłowo, np.
komunikat database changed oznacza prawidłowo wykonane zapytanie i wybranie interesującej nas bazy.
4.Wyświetlanie listy tabel zawartych w bazie danych:
show tables;
Jeżeli show databases pokazywało nam bazy danych to show tables pokaże nam dostępne tabele.
Jeżeli zwrócony zostanie komunikat empty set oznaczać to będzie, że w bazie nie ma żadnych tabel.
5.Tworzenie tabel w mysql
Analogicznie do przykładu pierwszego gdy polecenie create database tworzyło bazę danych to polecenie Create table pozwoli nam na stworzenie tabeli.
Jednak po wpisaniu polecenia:
Create table pracownicy; gdzie pracownicy to nazwa naszej tabeli nie możemy wcisnąć wykonaj polecenie dlaczego? bo nie można stworzyć tabeli bez struktury. Każda tabela w MYSQL musi mieć strukturę tzn. musi posiadać odpowiednie nazwy pól w sobie zawartych, patrząc na nazwę naszej tabeli powinna ona zawierać „imię” „nazwisko” każdego pracownika „dział” w którym on pracuje itd. każde pole musi być dewiniowane za pomocą jednego z typu zmiennych.
Typy zmiennych potrzebne do podstawowej obsługi mysql:
int – liczby
varchar(x) – wartość tekstowa o zmiennej długości (var- zmienna ; char – znak) gdzie x przyjmuje wartości teoretycznie od 0 – 255
datetime – data w formacie rok miesiąc dzień spacja godzina minuta sekunda rozdzielone dwukropkiem
date – sama data
text – jeżeli w bazie danych chcemy przetrzymywać całe artykuły, dane które posiadają więcej niż 255 znaków musimy skorzystać z tej zmiennej
Wracamy do tworzenia tabeli pracownicy, po wpisaniu nazwy tabeli otwieramy nawias. Każda tabela powinna posiadać jeden rekord główny np id_pracownika który pozwoli identyfikować nam wartości w tabeli. Jesteśmy leniwi i nie będzie nam się chciało numerować każdego pracownika, który był lub będzie przyjęty i zapisany do tabeli, zrobi to za nas silnik mysql za pomocą polecenia auto_increment. Kolejne pola takie jak imię czy nazwisko to stringi, które przyjmują wartość tekstową, pole dział przyjmie wartość liczbową int przykładowo wiemy że dział oznaczony nr 1 to marketing, 2 to księgowość itd., zarobki to liczba więc również typ pola int. Na samym końcu ustawiamy klucz główny primary key dzięki któremu wskażemy jedno podstawowe pole, które identyfikuje nasz rekord. Jako że imiona nazwiska i działy zarobki będą się mogły powtarzać, to jedynym unikalnym polem będzie id pracownika, gdyż nigdy nie będzie dwóch czy więcej pracowników o tym samym numerze. wpisujemy polecenie primary key w nawiasie podajemy nazwę pola, którego dotyczy i zamykamy główny nawias tworzący tabelę, całość kończymy średnikiem.
create table pracownicy(id int auto_increment,imie varchar(20),nazwisko varchar(20),dzial int,zarobki int,primary key (id));
Przy pomocy polecenia show tables; sprawdzamy czy zapytanie wykonało się w sposób prawidłowy.
Jeżeli widzimy tabelę, jednak nie wiemy z czego i jak jest zbudowana należy użyć polecenia desc od description:
desc pracownicy;
Po wykonaniu zapytania zobaczymy wiersz z polami:
Field – nazwa pola
type – rodzaj
null – czy może być pusta
key – wskazuje klucz główny
dafault – wartość domyślna
extra – dodatkowe opcje ustawione na dany typ pola np. auto_increment
6.Uzupełnianie tabeli danymi
Mając tabelę należy ją uzupełnić pewnymi danymi. Przy pomocy polecenia Insert wypełnimy przykładową tabelę, zobaczmy jak wygląda przykładowa składnia:
insert into pracownicy values (null,’Jan’,’Kowalski’,1,1500);
Insert(umieść) into(gdzie) pracownicy (nazwa tabeli) values(wartości) jako że pole id jest auto_increment nie uzupełniamy go wpisujemy wartość null, stringi czyli typ tekstowy umieszczamy w apostrofach.
7.Jak sprawdzić to co znajduje się w tabeli?
W tym celu należy skorzystać z polecenia select, możemy wyciągać same imiona z tabeli:
select imie from pracownicy;
imiona i nazwiska:
select imie,nazwisko from pracownicy;
jednak jeśli chcemy zobaczyć całą zawartość tabeli należy użyć symbolu *
select * from pracownicy;
8.Spróbujmy teraz wyciągnąć z bazy danych tylko jeden rekord:
Aby tego dokonać należy skorzystać z klauzuli WHERE uściśla ona jaki rodzaj informacji nas interesuje:
select * from pracownicy WHERE imie=’kazimierz’ and nazwisko=’kowalski’;
imię i nazwisko są to stringi czyli ciągi znaków dla tego należy zapisać je w apostrofie podobnie jak w językach programowania; dodatkowo pojawia się spójnik AND który wiąże nam wyrażenia.
Kolejnym przykładem jest wyciągniecie z bazy danych takich osób które zarabiają ponad 1500zł:
select * from pracownicy where zarobki > 1500;
lub których zarobki są większe bądź równe 2000 zł
select * from pracownicy where zarobki >= 2000;
9.Modyfikacja danych w bazie.
Aktualizacja danych w bazie odbywa się przez słowo update np.
update pracownicy set dzial=2 where id=2;
zaktualizuj tabelę pracownicy ustaw dział na 2 dla użytkownika o numerze id=2
10. Sumowanie pól
Mysql daje nam możliwość sumowania różnych pól, aby sprawdzić ile zarabiają w sumie wszyscy nasi pracownicy użyjemy polecenia SUM:
select SUM(zarobki) from pracownicy;
11.ustawianie ALIASÓW
MYSQL daje nam możliwość ustawiania ALIASÓW, czyli nazw zamiennych łatwiejszych do zapamiętania. Nazwa kolumny w tabeli wygenerowanej po zapytaniu może wyglądać inaczej niż ta podana w zapytaniu w cale to nie musi być sum(zarobki), jest to bardzo nie wygodne gdy chcemy dane wyciągnąć i przedstawić na stronie internetowej, musielibyśmy użyć takiej nazwy.
Zmodyfikujmy nasze zapytanie:
select SUM(zarobki) as zarobki from pracownicy;
12. Obliczenie średniej pensji AVG
select avg(zarobki) as srednia from pracownicy;
13. Liczenie rekordów odbywa się za pomocą polecenia count czyli liczyć.
Istnieją różne szkoły mówiące o tym jak użyć polecenia count większość podręczników podaje żeby wpisać gwiazdkę, kilka lepszych podręczników piszę o tym by nie wpisywać gwiazdki, nie którzy radzą aby wpisywać tutaj nazwę pierwszego pola np. głównego klucza, ja jednak radzę aby wpisywać tutaj 1 jest to pierwsze pole (które prawie zawsze występuje w tabeli) jednak o wiele szybsze w działaniu.
select count(1) from pracownicy;
14.Usuwanie danych z tabeli.
Słowo delete odpowiada za usuwanie. Gdybyśmy nie umieścili warunku where zawartość całej tabeli została by skasowana.
delete from pracownicy where id=2;
15.Klucz wiążący
Stwóżmy sobie na potrzeby tego przykładu drugą tabele o nazwie dzialy:
create table dzialy (numer int, nazwa varchar (30), primary key(numer));
Wypełnijmy tabele danymi:
insert into dzialy values (1,’Produkcja’);
insert into dzialy values (2,’Marketing’);
Mając dwie tabele chcemy połączyć numer działu z jego nazwą właśnie korzystając z klucza wiążącego:
W tym celu łączymy obydwie tabele za pomocą prostego warunku. Wzór na ilość warunków łączących tabele jest bardzo prosty ale bardzo ważny:
n-1
gdzie n liczba łączących tabel tzn. chcąc połączyć 2 tabele potrzebuje jednego warunku, chcąc połączyć 3 tabele potrzebujemy 3 warunków. Możemy połączyć 2 tabele za pomocą 5 warunków – 1 warunek to minimum aczkolwiek może być ich więcej.
Chcemy wyciągnąć informację Jan Kowalski Marketing:
select imie, nazwisko, nazwa from pracownicy, dzialy where numer=dzial;
Dobrze wytłumaczone, dzięki na pewno jeszcze nie raz odwiedzę Twoją stronę.
Pozdrawiam