Wstęp

Co to są bazy danych?
Bazami danych można nazwać zbiór informacji uporządkowany w daną strukturę.Bazy danych składaja się ze zbiorów tabel. W tabelach wyróżnia się kolumny, wiersze zwane również rekordami, pola będącymi pojedynczymi wartościami kolumn oraz wierszy. Pola również są również nazywane atrybutami baz danych.

Co to jest MySql?

MySql jest to rodzaj serwera dla baz danych. Obsługę tych baz można dokonywać za pomocą programu phpMyAdmin uruchamianego z poziomu przeglądarki na serwerze.

Co to jest SQL?
SQL jest skrótem od Structured Query Language- strukturalny język zapytań. Pochodzi od języka sequel nad którym pracowało IBM w latach 70-tych. SQL jest stale rozwijany m.in przez ORACLE.

Typy danych

Każdej kolumnie w bazie danych należy przypisać dany rodzaj , typ danych dla wartośći jakie przechowuje. W parametrze ilość można wpisać wybrana ilość znaków badź cyfr występującej w danej kolumnie.
Oto podstawowe typy danych MySql:

– INT(ilość) – liczby całkowite
-FLOAT (ilość) – liczby zmiennoprzecinkowe
– REAL (iość) – liczby zmienno przecinkowe o szerszym przedziale- zastosowanie w skomplikowanych obliczeniach matematycznych.
– CHAR(ilość) – Pole do przechowywania tekstu o ustalonej długości. Maksymalna ilość znaków to 255. Ilość znaków jest stała.
– VARCHAR (ilośc) – również pole znakowe, ilość znaków może się zmieniać
– DTAE- zastosowanie dla dat, format : RRR-MM-DD
– TIME – zastosowanie dla czasu, FORMAT: GG:MM:SS
– DATETIME – zastosowanie dla daty i czasu , format: RRRR-MM-DD GG:MM:SS

Podstawowe polecenia

1.Select

Polecenie select wybiera poszczególne kolumny z bazy danych.
SELECT * FROM nazwa_tablicy;-wybierze wszytskie kolumny w tablicy wraz z ich wartościami
SELECT nazwa_kolumny FROM nazwa_tablicy;-wybierze konkretną kolumnę z konkretnej tablicy wraz z jej wartościami.

2.Insert into

Insert into umieści wartości do kolumn. Należy pamiętać zę kolumny muszą być wcześniej utworzone oraz wartości ich pól muszą być puste.

INSERT INTO nazwa_tabeli (nazwa_kolumny_pierwszej, nazwa_kolumny_drugiej, nazwa_kolumny_trzeciej) VALUES (203,’napis’,456);- Od tej pory tabela będzie miała nowy zapełniony wiersz. Odpowiednie wartośći zostały przypisane kolumnom wg podanej kolejności.

3.Delete from

DELETE FROM – usuwa konkretne rekordy – wiersze.
DELETE FROM nazwa_tabeli WHERE nazwa_kolumny = 100;
Usuń z tabeli z podanej kolumny ten wiersz gdzie jedno z jego pól ma wartość 100. Zastosowano tutaj polecenie WHERE którego zadaniem jest dokładniejsze sprecyzowanie zapytania.

4. Update

UPDATE – aktualizuje konkretne pola o konkretne wartośći.
UPDATE nazwa_tabeli SET nazwa_kolumny = 235 WHERE inna_kolumna = ‚dana_wartość’;
Nastapi aktualizacja konkretnej tabeli , ustawiając nowa wartość w konkretnej kolumnie na wartość 235 tam gdzie inna kolumna ma pole o wartości ‚dana_wartośc’

5.Create database

CREATE DATABASE- stworzy bazę danych
CREATE DATABASE nazwa_bazy_danych;

6. Drop database
DROP DATABASE – usunie bazę danych
DROP DATABASE nazwa bazy danych

7.Create Table
CREATE TABLE – stworzy tablice w bazie danych

CREATE TABLE moja_tabela (id INT (3) AUTO_INCREMENT PRIMARY KEY, imie VARCHAR(10) not null, nazwisko VARCHAR (30) NULL, adres VARCHAR (50) DEFAULT ‚brak adresu’ );

Powyższe polecenie stworzy tabelę w bazie danych o nazwie „moja_tabela” , która będzie się składać z następujących kolumn o konkretnych typach danych do przechowania:kolumna id przechowująća liczby całkowite o maksymalnej ilości cyfr użytej w liczbie- 3(maksymalnie dopuszczalna jest liczba trzycyfrowa) będące identyfikatorami, stanowiącymi klucz podstawowy którego wartość uzupełnia się w sposób automatyczny 9 wraz z dodawaniem nowych wierszy wzrsata wartość id, kolumna imie przechowująca wartości znakowe ( litery) o maksymalnej długości łancucha 10 która musi być uzupełniona jakaś wartością ( NOT NULL) ,kolumna nazwisko typu znakowego( varchar) o maksymalnej liczbie liter 30, pola tej kolumny moga być puste, kolumna adres typu znakowego , maksymalnie do 50 znaków gdzie domyślna wartością w razie nie podania żądnej jest ‚brak adresu’. Stworzona w ten sposób tabela nie posiada na razie żadnej wartości prócz domyślnych. Aby wstawieć jakiekolwiek wartości do tabeli należy użyć polecenia insert into

8.Alter table

ALTER TABLE – modyfikuje zawartość tabeli

ALTER TABLE nazwa_tabeli ADD nazwa_kolumny VARCHAR (100);- polecenie doda nową kolumnę do istniejącej tabeli , typem jej danych będą znaki do maksymalnej liczby 100 w jednym polu.

Zapytania złożone

Poniżej wymienione słowa kluczowe służa temu a by bardziej precyzować zapytania SQL.

1. where- wszędzie tam gdzie dana kolumna będzie miała pole z daną wartością

SELECT moja_kolumna FROM moja_tablica WHERE samochod = ‚maluch’ AND kolor = ‚zielony’;- Polecenie spowoduje wybranie takich wierszy w kolumnie „moja_kolumna” z tablicy „moja_tablica” tam gdzie pole przynależące do kolumny samochód ma wartość ‚maluch’ i (koniunkcja- warunek konieczny do spełnienia się) pole przynależne do kolumny kolor ma wartość ‚zielony’.

2.like- operator porównania wartości

SELECT * FROM moja_tablica WHERE moja_kolumna LIKE ‚T%’;- Kwerenda wybierze w tablicy moja_tablica wszytskie wiersze które będą należały do kolumny moja_kolumna której wartośći będą się zaczynać od litery M i będą miały dowolną długość.

3. between – zakres wybranych wartości

SELECT imie, nazwisko, FROM moja_tablica WHERE wiek BETWEEN 15 AND 46;
Wybierz wiersze w kolumnach imie i nazwisko z tablicy moja_tablica gdzie w wierszach z kolumny wiek wartości pól będą miały wartości z przedziału 15 do 46.

4.order by, asc,desc – uporządkowane przez , rosnąco, malejąco

SELECT imie, nazwisko FROM uczniowie ORDER BY nazwisko ASC;
Wybierz wiersze należące do kolumn imie i nazwisko z tabeli uczniowie uporządkowane wg kolumny nazwisko w kolejności alfabetycznej (kierunek a-z rozumiany jako rosnąco)

5.limit- ustalenie ograniczenie w liczbie wyników wyszukiwań

SELECT * FROM moja_tablica WHERE liczba >700 LIMIT 5,10
Wyszuka wszytskie wiersze ze wszytskich kolumn w tablicy moja_tablica zaczynając od 6 wiersza(indeksacja od zera) gdzie pola w kolumnie liczba mają wartość większą niż 700 i ogranicz liczbę dopasowanych wyników zapytania do maksymalnie dziesięciu.

Niektóre funkcje wbudowane MySql

Język SQL posiada wbudowane funkcje, istnieje również pisania własnych procedur.Oto kilka popularnych funkcji SQL:

1.avg- obliczenie sredniej wartości z podanej kolumny.

SELECT AVG ( nazwa_kolumny ) FROM nazwa_tablicy

2.min/max – podanie minimalnej i maksymalnej wartościw podanej kolumnie
SELECT MIN (nazwa_kolumny) FROM nazwa_tablicy

3.sum – sumuje wszytskie wartośći w podanej kolumnie
SELECT SUM (KOLUMNA) FROM tablica

4.format- formatowanie liczby do określonej liczby miejsc po przecinku
SELECT FORMAT (5.6767, 2)

5. rand – ZWRACANIE LOSOWEJ ZMIENNOPRZECINKOWEJ LICZBY Z PRZEDZIAŁU 0-1
SELECT RAND()

6. user- podanie nazwy aktualnego użytkownika bazy danych
SELECT USER()

Inne zapytania

Tablice moga być łączone z dwóch w jedną. Służy do tego polecenie INNER JOIN lub JOIN. Proste łączenie tablic polega na dopasowaniu do pól wybranych kolumn w wybranych tablicach dopasowanych wartości – wartości nie mogą być NULL (puste). Istnieje również możliwość łączenia dwóch tablic w jedną poprzez dopasowane wspólne wartości dla obudwu tablic oraz dopisaniu tych wartości które nie będą pasować z lewej tablicy bądź prawej.
Oto dodatkowe wybrane polecenia SQL- Łączenie tablic.

link w3school : http://www.w3schools.com/sql/sql_join_left.asp w3school
link youtube :https://www.youtube.com/watch?v=wW4xcQ3FFp4&list=PL08903FB7ACA1C2FB&index=12

1. left join

SELECT kolumna_jeden, kolumna_dwa, kolumna_druga_tabela
FROM tabela_jeden
LEFT JOIN tabela_dwa
ON tabela_jeden.kolumna_z_id = tabela_dwa.id;

Zostaną wybrane kolumny:kolumna_jeden, kolumna_dwa z tabeli tabela_jeden oraz kolumna_druga_tabela z tabeli_dwa. Po FROM nazwa pierwszej łączonej tabeli traktowanej jako tablica z lewej strony. Po LEFT JOIN nazwa tablicy traktowanej jako tablica po prawej stronie. Z tabeli tabela_jeden wybieramy kolumnę kolumna_z_id ( z np. wartościami int id ) i porównujemy ją z kolumna id z tablicy o nazwie tabela_dwa. Jako wynik tego działania zostanie utworzona nowa tabela o nazwie tabela_jeden która będzie się składać z kolumn: kolumna_jeden, kolumna_dwa, kolumna_druga_tabela. Do kolumn tych zostaną przypisane wartości wg. porównania z tych kolumn : tabela_jeden.kolumna_z_id = tabela_dwa.id. Zapisane zostaną zarówno wartości które maja swoje odpowiedniki w porównanych kolumnach- nie mają wartości NULL (pustych) oraz te wartości pól które mają puste wartości NULL z lewej tablicy która występuje po FROM.

UWAGA!!! LEFT JOIN może być zastapione przez LEFT OUTER JOIN

link w3school:http://www.w3schools.com/sql/sql_join_right.asp
link youtube :https://www.youtube.com/watch?v=wW4xcQ3FFp4&list=PL08903FB7ACA1C2FB&index=12

2. right join

SELECT kolumna_jeden, kolumna_dwa, kolumna_druga_tabela
FROM tabela_jeden
RIGHT JOIN tabela_dwa
ON tabela_jeden.kolumna_z_id = tabela_dwa.id;

Sposób działania jest niemal identyczny do powyższego. Różnica polega na tym że prócz dopasowanych niezerowych wartości pół zostaną dodane niepasujące ( zerowe) wartości NIE z lewej tablicy ale z prawej występującej po RIGHT JOIN.

UWAGA!!!RIGHT JOIN może być zastapione przez RIGHT OUTER JOIN

Relacyjność baz danych

Relacyjność baz danych polega na przechowywaniu powiązanych ze sobą informacji w więcej niż jednej tabeli. Informacje są wiązane poprzez wspólną klucz-kolumnę np id. Przykładowy rysunek pod tym linkiem: https://www.google.pl/search?q=przyklad+relacji+baz+danych+rysunek&client=firefox-b&source=lnms&tbm=isch&sa=X&ved=0ahUKEwjA5rPEgrLQAhXBkSwKHd-bA8YQ_AUICCgB&biw=1366&bih=634#imgrc=pzIN6lqvHCLtVM%3A

Modyfikatory SQL

Posted 3 lata ago / Bez kategorii

Modyfikatory , zwane inaczej atrybutami pola,mogą wpłynąc na zachowanie pola.
AUTO_INCREMENT – automatyczne inkrementowanie pola, najcześciej stosowane przy id.
BINARY – atrybut dla char i varchar , oznacza że pole ma rozróżniać wielkość liter.
DEFAULT wartość – ustalenie domyślnej wartości w razie nie wpisania w pole żądnej wartości.
NOT NULL – pole o takim atrybucie nie może pozostać puste
NULL- możliwość przyjmowania przez pole wartości pustych
UNSIGNED – oznacza że pole o typie int ma być nieoznaczone: liczby są dodatnie z przedziału 0 wzwyż.