Banner

piatok 19. decembra 2014

Moderný reporting–pracujeme s MySQL (upravujeme tabuľky)

 

Doposiaľ sme sa naučili založiť si databázu a vytvoriť tabuľky. Dnes si ukážeme ako ich upravovať.

Začneme príkazom, ktorým vymažeme celú tabuľku a ktorý je totožný s príkazom, ktorý vymaže celú databázu:

-- SQL kódy pre manipuláciu s vytvorenými tabuľkami

DROP TABLE dealer; -- SQL vymaže celú tabuľku, teda obsah a stavbu

Za zmienku stojí príkaz DELETE, ktorý maže iba obsah z tabuľky:

DELETE FROM dealer; -- SQL vymaže iba obsah tabuľy, teda záznamy

Avšak bežne sa stane, že po vytvorení tabuľky si uvedomíte, že ste niečo nadefinovali zle, poprípade ste niečo zabudli, povedzme niektorú z potrebných premenných. Tým pádom nemusíte mazať a písať celú tabuľku odznova, stačí ak upravíte už existujúcu tabuľku nasledujúcím príkazom:

ALTER TABLE

Nasledujúca tabuľka predstavuje všetky mnou použité výrazy pre realizáciu nášho projektu:

image

Pokúsim sa vysvetliť funkcionalitu všetkých príkazov okrem constraint a key prípadov, ktoré rozoberiem podrobne v nasledujúcom článku.

Vytvorme si nasledujúcu tabuľku (nezabudnite použiť niektorú databázu, poprípade si vytvorte skúšobnú – príkaz use alebo create database):

CREATE TABLE tab_1 (Meno varchar(30) NOT NULL, Priezvisko varchar(50) NOT NULL);

Táto tabuľka po zobrazení pomocou select from príkazu vyzerá takto:

image

Potrebujeme pridať ID, aby sme tabuľku mohli napojiť do vzťahu (relácie).Použijeme ALTER TABLE ADD:

ALTER TABLE tab_1 ADD ID int;

Tento príkaz pridal premennú (stĺpec) s názvom ID, ktorý je celočíselná premenná (int). Ak by sme potrebnú premennú potrebovali nadefinovať ako automaticky generovanú a zároveň primary key, urobili by sme to takto:

ALTER TABLE tab_1  MODIFY ID int auto_increment primary key;

Po nasledujúcich kódoch bude tabuľka vyzerať takto:

image

Ak by sme zistili, že 30 znakov pre Priezvisko je málo, jednoducho zmeníme tento atribút premennej Priezvisko takto:

alter table tab_1 change Priezvisko Priezvisko varchar(50);

Zostáva nám možnosť, ktorou je DROP. Avšak pridajme si ešte jeden stĺpec:

alter table tab_1 add Vek int(20) not null;

Tým pádom máme tabuľku s ID (Vyplní sa samo),menom, priezviskom a vekom. Vložme do nej zopár hodnôt ako napríklad:

insert into tab_1 (Meno, Priezvisko, Vek) values ('Peter','Tabiš',26),('Martin','Sládek',42),('Roman','Kraus',38);

Tabuľka bude potom vyzerať takto <select*from tab_1;>

image

Ak si zmyslíme, že vek nepotrebujeme tak, zmažeme rovno celý stĺpec:

alter table tab_1 drop Vek;

Po exekúcii zistíme, že sa celý stĺpec s hodnotymi vymazal. V prípade, že chceme vyprázdniť tabuľku, použijeme kód:

delete from tab_1;

Čo je však prúser, je fakt že akonáhne by sme do takejto tabuľky opäť nahrávali hodnoty, tak prvá už nebude mať ID = 1 ale 4. V tomto prípade je potrebné resetovať aj auto_increment kľúč takto:

alter table tab_1 auto_increment=1;

Potom ak by sme opäť vložili tie isté záznamy, tak ich ID bude postupne opäť 1, 2 a 3.

Nabudúce si ukážeme ako naplniť a prepojiť tabuľky (čo sú to KEY a FOREIGN KEY, CONSTRAINT a INSERT INTO skripty).

utorok 16. decembra 2014

PF 2015


Popri písaní článkov o automatizovanom reportingu som si už ako každý rok našiel čas a pripravil excelovskú špecialitku vo forme pour féliciter vizualizácie.
 
Týmto príspevkom by som sa zároveň chcel poďakovať čitateľom za tohtoročnú priazeň, zákazníkom za prejavenú dôveru a do nového roku popriať každému veľa síl a trpezlivosti, ktoré predchádzajú pravému úspechu.
 
Pevne verím, že tieto články boli a naďalej zotrvajú pre mnohých dostatočnou motiváciu k proaktivite a sebavzdelávaniu. Zároveň budem robiť všetko pre to, aby v podnikateľskom prostredí aj naďalej vzbudzovali pocit, že analytická práca nie je pre mňa iba prácou, ale spoločenským poslaním.
 
Nezabúdajte, že rok 2015 bude rokom úrodným na články a ako to už býva vo zvyku, každý Nový rok sa obvykle nesie vo forme predsavzatí.
 
Budem preto veľmi rád, ak sa v budúcom roku stanem autorom tak zaujímavých článkov, ktorými spoločne pokoríme hranicu 100 000 návštev.
 
 
S pozdravom
  Peter Tabiš
 
 
‘======================================================================
Tento PF_2015 súbor si môžete stiahnuť kliknutím na download obrázok. V prípade, že by sa procedúra nerealizovala správne, k dispozícii je nasledujúce promočné video:
 
 
 
 

 

downloads_normal

pondelok 15. decembra 2014

Moderný reporting–pracujeme s MySQL (prvé príkazy)

 

V predchádzajúcom článku sme si ukázali, ako nainštalovať MySQL. Tak si otvorme MySQL Workbench. Po kliknutí na Local instance MySQL56 sa nám zobrazí dialógové okno, kde od nás program žiada heslo (to, ktoré sme zadávali pre root užívateľa pri inštalácii).

 

image

 

Po prihlásení sa nám objaví prostredie, kde môžeme programovať databázy a nasledne z nich vyťahovať data apod. V nasledujúcom obrázku som do listu Query 2 zapísal dva kódy. Prvý z nich vytvorí databázu s názvom pokus a druhý ukáže mená všetkých dosputných databáz.

 

image

Po kliknutí na blesk (hneď vedľa diskety) image nám program exekuuje všetky napísané kódy vrámci listu. Pokiaľ by sme klikli na druhý blesk od diskety image, program realizuje len ten skript, na ktorom je aktívny kurzor. Po kliknutí na prvý blesk výstup vyzerá takto:

 

image

 

Prvý príkaz vytvoril databázu s názvom pokus, a druhý vypísal v okne Result všetky dostupné databázy. V okne Output sú zobrazené informácie o stave, čase a prípadných chybách, ktoré vznikli pri exekúcii kódu.

===============================================================================================Základné SQL príkazy:===================================

Príkaz, ktorým vytvoríme databázu:

create database názov databázy;

Príkaz, ktorým vymažeme databázu:

drop database názov databázy;

Ak chcete vidieť zoznam všetkých databáz, použijete nasledujúcúci príkaz:

show databases;

V prípade, že chcete v MySQL prostredí používať poznámky, t.j. písať si niečo, čo program nebude považovať za kód, použijete dve pomĺčky:

-- toto je časť textu, ktorú MySQL nebude považovať za kód …..

Ak to zosumarizujem, vieme si vypísať názvy databáz, dokážeme si vytvoriť databázu a taktiež ju vymazať + bonus: písať si poznámky k rôznym kódom.

K tomu, aby sme sa mohli hrať s konkrétnou databázkou je nutné povedať programu, nech ju používa. Preto použijeme:

use názov databázy;

Každá databáza musí mať svoju kostru (tabuľky a relácie). O spôsobe tvorby databáz som písal už predtým, no každopádne za zmienku stojí urobiť si plán:

1) – nakresliť si pavúka

2) – Pripraviť si tabuľky podľa pavúka

3) – Vložiť data z Excelu do tabuliek

4) – prepojiť tabuľky relačnými vzťahmi

5) – špekulovať, čo užitčné by nás ako analytikov / managerov / majiteľov zaujímalo

Posledný bod budeme rozoberať už v súvislosti s produktom Jaspersoft. Vrátim sa však k prvým dvom bodom. Prvý bod som v konečnom dôsledku predstavil v predchádzajúcich článkoch, no pre vizualizáciu nasledujúci obrázok predstavuje realizáciu druhého bodu (všetky tabuľky).

image

Tabuľku si vytvoríme pomocou nasledujúceho príkazu:

create table názov tabuľky  (Názov stĺpca Dátový typ, … );

Tento príkaz sa na prvý pohľad zdá byť elementárny, ale skutočnosť je tak trochu náročnejšia na pochopenie. Ak sa pozrieme na tabuľku dealer, jej vytvorenie vyzerá takto:

CREATE TABLE dealer (ID int(11) NOT NULL AUTO_INCREMENT, Predajca varchar(30) NOT NULL,   PRIMARY KEY (ID));

Každá z tabuliek, stvárnených v predchádzajúcom obrázku pozostáva z ID stĺpca. Tento stĺpec je automaticky generovaný a neprázdny, t.z. že každému riadku musí prináležať konkrétne – špecifické číslo. Z tohto titulu auto-generáciu deklarujeme kódom AUTO_INCREMENT a NOT NULL deklarujeme neprázdny charakter stĺpca (hodnoty stĺpca pre každý riadok nesmú byť prázdne).

Pomocou PRIMARY KEY atribútu určime, ktorý zo stĺpcov v tabuľke bude primárny kľúč (napríklad ak  hodnote 1 priradíme meno Tabiš, bude to znamenať, že ak v akejkoľvek inej tabuľke, ktorá sa nachádza v databáze zapíšeme predajcu číslom 1, budeme vedieť že sa v praxi jedná o Tabiša).

Posledný významný atribút je dátový typ. My okrem názvu stĺpca musíme programu definovať, aké typy hodnôt tam budú. V našej vzorovej databáze sa stretneme s typmi: INT(počet cifier) –celé číslo s definovaným maximálnym počtom cifier, DECIMAL(počet cifier,desatinné miesta) –Počet cifier a desatinných miest, VARCHAR(počet znakov) – textový reťazec s maximálnou dĺžkou, resp. počtom znakov.

Kliknutím na tutorialspoint.com máte k dispozícii podrobný popis ďalších datových typov, poprípade na strane 179 je veľmi podrobne opísaný rozbor dátových typov, spolu s definíciou ich parametrov (kniha Michael Kofler – mistrovství v MySQL 5).

Ak sa vrátim k nášmu pavúkovi, prehľad kódov pre jednotlivé tabuľky bude vyzerať takto:

-- SQL kódy pre tvorbu všetkých tabuliek vrámci SALES databázy

CREATE TABLE dealer (ID int(11) NOT NULL AUTO_INCREMENT, Predajca varchar(30) NOT NULL,   PRIMARY KEY (ID));

CREATE TABLE car (ID int(11) NOT NULL AUTO_INCREMENT, Auto varchar(30) NOT NULL, Cena decimal(10,2) NOT NULL ,PRIMARY KEY (ID));
CREATE TABLE city (ID int(11) NOT NULL AUTO_INCREMENT, Mesto varchar(30) NOT NULL, PRIMARY KEY (ID));


CREATE TABLE cost (ID int(11) NOT NULL AUTO_INCREMENT, Predajca int(11) NOT NULL , Mesiac int(11) NOT NULL , Rok int(11) NOT NULL, Mzda decimal(10,2) NOT NULL , Sprava decimal(10,2) NOT NULL , Bonus decimal(10,2) ,  PRIMARY KEY (ID));


CREATE TABLE discount (ID int(11) NOT NULL AUTO_INCREMENT, Zlava decimal(2,2) NOT NULL , PRIMARY KEY (ID));


CREATE TABLE sales (ID int(11) NOT NULL AUTO_INCREMENT, Naklady int(11) NOT NULL, Predajca int(11) NOT NULL, Mesto int(11) NOT NULL, Auto int(11) NOT NULL, Diskont int(11) NOT NULL, Predaj int(11), Mesiac int(11) NOT NULL, Rok int(11) NOT NULL, PRIMARY KEY (ID));

Nabudúce si ukážeme dodatočné kódy, ktorými budeme manipulovať s tabuľkami. Nezabúdajte na like a prípadné dotazy na FB.

Pre tých, ktorým práca s vytváraním databáz nevyhovuje, resp. ju nezvládajú. Pokúsim sa umožniť stiahnúť kompletne hotovú databázku spolu s dátami, takže pre Vás v budúcnosti budú kľúčové manipulácie s Jaspersoft a MySQL.

streda 10. decembra 2014

Moderný reporting–inštalujeme databázový systém MySQL

 

Začneme základným problémom, ako si nainštalovať MySQL. Ak si do Google-u zadáte “MySQL download” navedie Vás na stránky dev.mysql.com/downloads/. V nej prejdeme na sekciu MySQL Community Server DOWNLOAD.

download_1

Nasledujúci obrázok nás naviguje na Download MSI installer (viď obrázok).

download_3

V ďalšej stránke máme na výber inštalačné verzie, ja si vyberiem väčšiu – 287.0 M.

download_2 (1)

Inštalačný proces prebieha na prvý pohľad jednoducho až kým sa nedostanete na nasledujúce dialógové okno:

image

Toto okno reprezentuje zoznam programov (aplikácií), ktoré inštalátor potrebuje pre dokončenie inštalácie MySQL. Programovací jazyk Python 3.4 sa inštaluje kliknutím na nasledujúci odkaz: python.org/downloads/ kde klikneme na Download Python 3.4.2 (užívatelia 2.7 verzie budú musieť čeliť dileme zmeny verzie):

image

Po stiahnutí je inštalačný proces intuitívny, nie je potreba nič špeciálne nastavovať (označime I agree, klikame na next a nakoniec finish) .

image

 

Klikneme na Next > adresár si môžeme podľa potreby zmeniť, no ja ho nechávam pôvodne nastavený.

image

image

Ďalšou úlohou bude inštalácia Visual Studia. Kliknite na stránky Visualstudio.com, a nechajte si stiahnuť bezplatnú Express edition vo forme ISO. Potom stačí nainštalovať si Visual Studio (všetky časti v nasledujúcom obrázku):

image

Takto pokračujte až kým nebudete mať k dispozícii všetky doplnky, vyžadované inštalátorom MySQL. Potom opäť otvorte MySQL inštalátor a pokračujte kliknutím na Execute možnosť.

image

Spustí sa inštalácia, ktorej priebeh vyzera nasledovne: 

image

Ďalšie kroky sú viac-menej intuitívne, jediné čo si musíte zvážiť je heslo pre prihlasovanie ako ROOT užívateľ. Pomocou neho sa totiž prihlasujete k danej databázke cez Excel a iné aplikácie (Workbench, v ktorom budeme pracovať).

image

Po inštaláci sa stačí preklikať ku konfigurácii resp. dodatočným nastaveniam a úspešne to ukončiť kliknutím na Finish. Na ploche alebo štart lište by sa mala objaviť ikonka s delfínom.

image

po niekoľkých sekundách saotvorí MySQL Workbench, ktorý vyzerá takto:

image

V budúcom článku si ukážeme ako pracovať v MySQL workbench prostredí a pripravíme si databázu spolu s tabuľkami (začneme používať SQL dotazy). V prípade dotazov som k dispozícii na Facebooku alebo linkedin-e. Winking smile