1. Įvadas: kas yra duomenų bazė ir kodėl MySQL?

Sveiki atvykę į kursą, skirtą MySQL duomenų bazės sistemai. Bandysiu viską jums paaiškinti nuo pat pat pradžių, labiau orientuodamasis į "žalius" ar mažiau patyrusius programuotojus, ir pamažu auginsime žinių bagažą.

Ką reikia mokėti, norint pradėti šį kursą? Iš tiesų, praktiškai jokių reikalavimų nėra. Nes paaiškinsiu nuo nulio - ir kas yra duomenų bazė, ir kaip jomis naudotis, ir vėliau kaip dirbti su duomenimis.

Daugiausiai iš šio kurso naudos išneš pradedantieji PHP programuotojai, kurie jau moka rašyti kodą, bet vis dar neturi tvirto pagrindo darbui su MySQL - kaip ir supranta esmę, bet turi problemų taikant žinias praktikoje. Taigi, pradėkime.

Kas yra duomenų bazės ir kodėl jos tokios svarbios

Pradėkime nuo apibrėžimų ir nuo pagrindų. MySQL yra tik viena iš duomenų bazių sistemų, tad verta žinoti apskritai, kas tai per daiktas teorijoje.

Žvelgiant į praeitį, atsiradus kompiuteriams, atsirado ir poreikis tinkamai saugoti informaciją. Pradžioje tai buvo tekstiniai failai, po to Excel lentelės, ir galiausiai duomenų bazės. Jų paskirtis - saugoti informaciją struktūriškai - tam tikrose lentelėse, panašiai kaip Excel programoje. Tikslas - patogiai dirbti su tais duomenimis - juos įterpti, ištraukti, filtruoti, redaguoti, trinti.

Pavyzdys iš praktikos - sakykime, turite elektroninę parduotuvę. Duomenų bazėje būtų saugomi jūsų tinklalapio vartotojų ir užsakymų duomenys, atskirose lentelėse pagal prasmę: viena lentelė klientams, kita lentelė užsakymams, dar kita lentelė prekėms - ir taip toliau. O kiekvienoje lentelėje jau būtų X eilučių po Y stulpelių (laukų), sakykime apie klientus būtų saugomi vardas, pavardė, adresas, prisijungimo laikas ir t.t.

Turbūt, gali kilti klausimas, kuo duomenų bazės pranašesnės už Excel sistemos ar kitų panašių sistemų lenteles, juk principas tas pats. Atsakymas toks: duomenų bazės valdymo sistema (tokia kaip MySQL) pasirūpina, kad duomenys būtų tinkamai sutvarkyti ir surūšiuoti, kad galima būtų kuo efektyviau juos pasiekti. Kad kiekvienas laukas turėtų savo tipą (skaičius, tekstas, data ir pan.), kad greitai veiktų duomenų ištraukimas ir t.t. Kitaip tariant, duomenų bazė yra SUTVARKYTAS duomenų rinkinys, o ne šiaip tekstinis failas.

Kodėl būtent MySQL ir kokios yra alternatyvos

Kaip jau minėjau, duomenų bazių valdymo sistemų yra ne viena. Tiesa, sustokime ir apibrėžkime du skirtingus terminus:

  • Duomenų bazių valdymo sistema (DBVS) arba, angliškai, "database management system" - tai programinė įranga, skirta duomenų bazėms valdyti. DBVS pavyzdžiai yra MySQL, Oracle, Micsoroft SQL Server, PostgreSQL, Sybase, DB2 ir kt.
  • Duomenų bazė - tai sutvarkytas duomenų rinkinys, kuris tvarkomas per duomenų bazių valdymo sistemą.

Kitaip tariant, tikslus MySQL pavadinimas yra duomenų bazių valdymo sistema. Bet praktikoje išgirsite ir "duomenų bazė" ar net dar trumpiau "duombazė", nes žmonėms per sudėtinga laužyti liežuvį keturiems žodžiams, arba jie tiesiog nežino šio skirtumo.

Taigi, MySQL yra viena iš alternatyvų - kodėl būtent jai skirtas kursas? Visų pirma, ji tinkamiausia paprastam darbui su web-projektais ir su PHP kalba: nemokama, lengvai diegiama, paprastai išmokstama ir turi labai daug pagalbinės medžiagos internete. Panašiai kaip ir pati PHP kalba - pradedantieji programuotojai pasirenka būtent MySQL, tuo labiau kad ji įeina į programuotojams dažniausiai reikalingą LAMP žinių paketą: Linux, Apache, MySQL ir PHP.

Dažniausias internete sutinkamas klausimas - kada reikia pradėti domėtis kitomis duomenų bazių valdymo sistemomis. Realiai alternatyvios sistemos skirtos dažniau didesniems projektams, kuriems arba reikia specifinių sprendimų, arba duomenų kiekis toks didelis kad MySQL optimizuoti jau nebeverta. Bet tada už tuos sudėtingesnius paketus turėsite mokėti pinigus - pavyzdžiui, Microsoft SQL Server licencija kainuoja ne vieną tūkstantį eurų. Tai realiai programuotojo karjeros pradžioje (o kartais ir visos karjeros eigoje) pilnai užtenka mokėti dirbt tik su MySQL.

Visko pagrindas - SQL kalba ir užklausos

Iš esmės, darbui su duomenų bazėmis yra naudojama viena ir ta pati SQL kalba - ar tai būtų MySQL sistema, ar PostgreSQL, ar dar kokia kitokia. Tos kalbos sintaksė skirtingose sistemose skiriasi labai nežymiai, labiau papildomų funkcijų lygyje, kurias siūlo viena ar kita sistema. Tad tai vėlgi gera žinia jums - jei išmoksite SQL pagrindus, jie pravers ir dirbant su kitomis DBVS. Pasakysiu dar daugiau - šitą kursą galima iš tiesų laikyti SQL kalbos kursu, tik praktikuosimės būtent su MySQL sistema ir kai kuriuose skyreliuose panaudosime būtent šios sistemos unikalias galimybes.

SQL kalba yra rašomos užklausos į duomenų bazę - kai norime įterpti kokią eilutę į lentelę, atnaujinti joje esančius duomenis arba atfiltruoti tik mums reikalingą informacija. Dar gyvenimą palengvina ir tai, kad SQL užklausos yra skaitomos beveik kaip anglų kalbos sakiniai. Paprastas pavyzdys:

INSERT INTO CUSTOMERS (name, surname) VALUES ('Povilas', 'Programuotojas');

Šis sakinys reiškia - įterpti į lentelę "CUSTOMERS" vieną eilutę, kurioje laukas "name" būtų lygus "Povilas", o "surname" būtų lygus "Programuotojas". Negi ne paprasta?

Tiesa, atkreipkite dėmesį, kad SQL užklausų žodžiai kartais rašomi didelėmis raidėmis - tokios praktikos laikysiuos ir aš šio kurso metu. Realiai viskas veiktų ir parašius mažomis raidėmis - "insert into customers..." bet tikslas yra kad didžiosiomis raidėmis būtų parašyti sisteminiai SQL žodžiai, kad vizualiai būtų lengviau atskirti, kur yra SQL kalba, o kur yra mūsų duomenys. Kitaip tariant, tiesiog patogiam skaitymui.

Pamokos apibendrinimas

Štai tokie yra pagrindiniai principai, pakartokime esminius dalykus:

  • Duomenų bazė yra sutvarkytas duomenų rinkinys, kuris valdomas su duomenų bazės valdymo sistemos pagalba;
  • MySQL yra viena populiariausių DBVS, bet yra ir alternatyvų;
  • Darbui su duomenų bazėmis skirta SQL kalba, kuri dažniausiai tinkama dirbant su įvairiomis sistemomis.