SQL databázy
SQL databázy
Ahojte.Prosím Vás potreboval by som radu od niekoho kto je programátor resp.robí s databázami.Chcel by som sa databazy naučiť tak som si kupil knihu SQL bez predchádzajúcich znalostí lenže je tu problém..ja tu knihu môžem čítať od vidim do nevidím ale nechápem ani jedenej vete pomaly o čom je tam písané..tak sa chcem spýtať skade mám začať aby som vôbec dokázal pochopiť o čom databázy sú..vyzerá to tak že budem potrebovať si nejako rozvinúť logické myslenie pri týchto veciach ale neviem ako začať..kamoš mi radí že mám začať najskôr od PHP potom sa naučiť HTML 5 a až potom ísť na SQL..ale ja by som chcel čisto sa zamerať len na SQL na typ databázy Postgre SQL.Aj som si nainštaloval server ale aj keď skúšam podla knihy sa nejako pohnúť nedokážem nerozumiem tomu a neviem skade začať..Ako začať aby som chápal čo vlastne čítam ako čítať s porozumením ako vedieť porozumieť tomu čo v tej knihe je napísané bo mi to príde aj na začiatok šialene zložité..a chcem sa to učiť ako samouk..ďakujem
Re: SQL databázy
Na co ti je databaza bez realneho vyuzitia? Skus MySQL v spolupraci s PHP, tam cez PhpMyAdmin tomu mozno pochopis. Nainstaluj si WAMP alebo VertrigoServ a skusaj, popripade si tam nahod phpBBa tam tomu mozno trosku pochopis.
Re: SQL databázy
Je možné byť databázový guru bez znalosti programovania. Teda nie úplne, k tomu programovaniu skor či neskor príde, ale určite sa netreba kvoli databázom učiť php, či hociaký iný jazyk.
Databáza je proste program ako každý iný a "byť databázista" znamená "vedieť obsluhovať program". Že je tá obsluha trocha náročnejšia, než MS Office, je už druhá vec
dekarbon - prečítaj si asi najprv nejakú knihu všeobecne o (relačných) databázach. Čo to je, ako to pracuje, prečo to vlastne existuje a prípadne že existujú aj iné, než tie relačné.
Keď pochopíš, čo sú to vlastne tie "dáta", čo je to "relačné" a čo sú relačné (datové)modely (s tým spojené pojmy ako indexy, cudzie kľúče, joiny...), tak až potom sa možeš baviť o SQL dotazoch. Ísť hneď na SQL, bez základov, je podľa mňa hlúposť.
Tiež si ešte pred SQL pozri relačnú algebru, zbežne, možno ti to niečo napovie.
Databáza je proste program ako každý iný a "byť databázista" znamená "vedieť obsluhovať program". Že je tá obsluha trocha náročnejšia, než MS Office, je už druhá vec
dekarbon - prečítaj si asi najprv nejakú knihu všeobecne o (relačných) databázach. Čo to je, ako to pracuje, prečo to vlastne existuje a prípadne že existujú aj iné, než tie relačné.
Keď pochopíš, čo sú to vlastne tie "dáta", čo je to "relačné" a čo sú relačné (datové)modely (s tým spojené pojmy ako indexy, cudzie kľúče, joiny...), tak až potom sa možeš baviť o SQL dotazoch. Ísť hneď na SQL, bez základov, je podľa mňa hlúposť.
Tiež si ešte pred SQL pozri relačnú algebru, zbežne, možno ti to niečo napovie.
Re: SQL databázy
knizky by som vobec neriesil, dnes ked mozes tak sa uc interaktivne.
https://www.codecademy.com/en/courses/learn-sql
alebo
https://www.khanacademy.org/computing/h ... ome-to-sql
alebo
http://www.sqlcourse.com/
ja osobne si myslim ze zaklady SQL v pohode zvladnes aj bez hromady teorie o relacnych databazach a datovych modeloch. hlavne je otrava citat tony teorie bez toho aby si to niekedy videl nazivo.
takze si radsej sprav najprv nejaky kurz a potom ked budes chciet pokrocilejsie veci, tak zacni studovat teoriu.
mozno je niekedy lepsie najprv vediet spravit zlu databazu a potom sa ucit ako ju opravit ako investovat vela casu do studia aby si spravil perfektnu databazu hned na prvy krat, to nie je realne.
no a ked sa naucis vsetky tie teorie a vsetky normalizacne formy a neviem co, tak nastupis do prace, kde budes robit na software, ktory sa vyvija uz 20 rokov a zistis ze tie pravidla aj tak nevyuzijes
(vlastna skusenost)
https://www.codecademy.com/en/courses/learn-sql
alebo
https://www.khanacademy.org/computing/h ... ome-to-sql
alebo
http://www.sqlcourse.com/
ja osobne si myslim ze zaklady SQL v pohode zvladnes aj bez hromady teorie o relacnych databazach a datovych modeloch. hlavne je otrava citat tony teorie bez toho aby si to niekedy videl nazivo.
takze si radsej sprav najprv nejaky kurz a potom ked budes chciet pokrocilejsie veci, tak zacni studovat teoriu.
mozno je niekedy lepsie najprv vediet spravit zlu databazu a potom sa ucit ako ju opravit ako investovat vela casu do studia aby si spravil perfektnu databazu hned na prvy krat, to nie je realne.
no a ked sa naucis vsetky tie teorie a vsetky normalizacne formy a neviem co, tak nastupis do prace, kde budes robit na software, ktory sa vyvija uz 20 rokov a zistis ze tie pravidla aj tak nevyuzijes
Re: SQL databázy
Nehovorím až o takej brutálnej teórií. Hovorím o tom, že by mal aspoň vedieť, na čo tie databázi sú a hlavne prečo sú relačné (relačný princíp uloženia dát). Normálne formy a kopec teórie okolo, to má čas. Aj keby to naštudoval perfektne, tak spraví prvú databázu zle
S tým sa proste musí počítať. Až prax je najlepší učiteľ. Ale nemože ísť do praxe s ničím.
A tiež prispejem skúsnosťou, aby to nevyzeralo, že je to aj tak všetko na nič - nedávno som nastúpil do datového skladu banky. A tu sa všetka tá teória dosť hodí
A tiež prispejem skúsnosťou, aby to nevyzeralo, že je to aj tak všetko na nič - nedávno som nastúpil do datového skladu banky. A tu sa všetka tá teória dosť hodí
Re: SQL databázy
to hej, tie uplne zaklady by sa naucil mal, to mu hadam da ta kniha ktoru kupil, aj ked pise ze tomu moc nerozumie, mozno ked zacne robit nieco prakticke ta sa mu to zacne v hlave postupne spajat.
Re: SQL databázy
Ja sa práveže obávam, že v tej knihe o SQL je skutočne len SQL. Také knihy som videl.
Ak je to ale táto kniha http://www.martinus.sk/?uItem=54229 tak to vyzerá celkom dobre a malo by to tam byť. Prípadne základy može doplniť aj internet.
Súhlasím ale s tým, že si treba nainštalovať XAMPP a skúšať si to v phpmyadmin. dekarbon ak by si chcel nejakú testovaciu databázu, napíš, nejakú ti pošlem
I keď na začiatku určite prejdeš príkazmi CREATE TABLE a INSERT, takže si nejakú jednoduchú vytvoríš aj sám.
Ak je to ale táto kniha http://www.martinus.sk/?uItem=54229 tak to vyzerá celkom dobre a malo by to tam byť. Prípadne základy može doplniť aj internet.
Súhlasím ale s tým, že si treba nainštalovať XAMPP a skúšať si to v phpmyadmin. dekarbon ak by si chcel nejakú testovaciu databázu, napíš, nejakú ti pošlem
Re: SQL databázy
Ano presne tú knihu som kúpil..
Re: SQL databázy
Tak čítaj čítaj, až kým tomu nepochopíš. Ak ti niečo robí problém, zadaj do googla a skús nájsť doplňujúce informácie. Ak stále nevieš, čo si chcel, napíš sem konkrétnu otázku a vysvetlíme.
-
mirak2
Hardcore addict
- Príspevky: 6719
- Registrovaný: 18 sep 2005, 13:44
- Bydlisko: Prague, CZE / Kosice, SVK
Re: SQL databázy
http://ics.upjs.sk/~krajci/skola/vyucba ... tabazy.pdf
mozno pomoze, tu mas databazy vysvetlene takmer ako malemu dietatu
mozno pomoze, tu mas databazy vysvetlene takmer ako malemu dietatu
Re: SQL databázy
oo parada ďakujem budem čítgať a keby dačo ozvem sa ak by som niečomu nechápal ďakujem
Re: SQL databázy
ja sa s dovolenim prizivim
ako v phpmyadmin nastavit foreign keys?
lebo aj ked mam v parent tabulkach nastavene primary keys ako indexy, tak mi ich nedava do ponuky v relationships, aj ked mam atributy, ktore maju byt FK nastavene ako unique indexy.
pri dalsich atributoch mi zase vyhadzuje chybu "Mysql error 1452 - Cannot add or update a child row: a foreign key constraint fails" pritom v rovnako nastavanych stlpcoch mi to FK zobralo
ako v phpmyadmin nastavit foreign keys?
lebo aj ked mam v parent tabulkach nastavene primary keys ako indexy, tak mi ich nedava do ponuky v relationships, aj ked mam atributy, ktore maju byt FK nastavene ako unique indexy.
pri dalsich atributoch mi zase vyhadzuje chybu "Mysql error 1452 - Cannot add or update a child row: a foreign key constraint fails" pritom v rovnako nastavanych stlpcoch mi to FK zobralo
Re: SQL databázy
Ako cez phpmyadmin pridať FK neviem, nikdy som to cez to nerobil 
Urob to normálne v SQL cez alter table http://www.w3schools.com/sql/sql_foreignkey.asp
Ak ti to píše tú chybu, tak sa uisti, že máš v poriadku dáta. Stĺpce musia mať rovnaký typ, tabuľky rovnaký storage engine a hodnoty musia sedieť. Možno tam máš hodnotu, ktorá v parent tabulke niekedy existovala a už neexistuje. Také hodnoty si vieš nájsť jednoduchým left joinom
Urob to normálne v SQL cez alter table http://www.w3schools.com/sql/sql_foreignkey.asp
Ak ti to píše tú chybu, tak sa uisti, že máš v poriadku dáta. Stĺpce musia mať rovnaký typ, tabuľky rovnaký storage engine a hodnoty musia sedieť. Možno tam máš hodnotu, ktorá v parent tabulke niekedy existovala a už neexistuje. Také hodnoty si vieš nájsť jednoduchým left joinom
Kód: Vybrať všetko
select distinct fk_column
from table1 t1 left join parent p1 using( fk_column ) -- left join cez potanciálny FK
where p1.fk_column is null -- hodnoty, ktoré sú v table1, ale v parent už nie
Re: SQL databázy
phpmyadmin je habadura, ktora mi tabulky nechcela brat z napisaneho skriptu...
ale metoda pokus-omyl ukazala, ze tie FK nemusim mat nastavene, aby to rozoznavalo to, co potrebujem.
teraz sa borim so selectom, kde potrebujem pridat 4 stlpce z tabulky Player, ku tabulkam Event a Court
s jednym stlpcom, ako je v kode, to samozrejme ide hladko. ale potrebujem tam dalsich troch (aj ked v niektorych pripadoch 3 a 4 ostanu ako NULL)
left join vrati vsetky stlpce hraca ako null.
ale metoda pokus-omyl ukazala, ze tie FK nemusim mat nastavene, aby to rozoznavalo to, co potrebujem.
teraz sa borim so selectom, kde potrebujem pridat 4 stlpce z tabulky Player, ku tabulkam Event a Court
s jednym stlpcom, ako je v kode, to samozrejme ide hladko. ale potrebujem tam dalsich troch (aj ked v niektorych pripadoch 3 a 4 ostanu ako NULL)
Kód: Vybrať všetko
SELECT
Event.MNo,
Event.Date,
Event.Time,
Event.Player1,
Event.Player2,
Event.Player3,
Event.Player4,
Event.CNo,
Player.PNo,
Player.FName,
Player.LName,
Player.Ranking,
Player.Seeding,
Court.Cno,
Court.Name
FROM Event
INNER JOIN Player
ON Event.Player1=Player.PNo
INNER JOIN Court
ON Event.Cno=Court.Cno;Re: SQL databázy
FK by si mal nastaviť. Ak ich nemáš (alebo sa ti nedajú vytvoriť), nemáš zaručenú konzistenciu dát.jackb napísal:ale metoda pokus-omyl ukazala, ze tie FK nemusim mat nastavene, aby to rozoznavalo to, co potrebujem.
Ten problém so selectom som asi nepochopil. Ak tam potrebuješ ďalších hráčov, tak jednoducho urob ďalšie joiny na tabuľku Player.
Re: SQL databázy
len som si nie isty syntaxou.
uplne novy join, teda takto?
//tak ani nie
uplne novy join, teda takto?
Kód: Vybrať všetko
INNER JOIN Player
ON Event.Player2=Player.PNo
INNER JOIN Player
ON Event.Player3=Player.PNo
INNER JOIN Player
ON Event.Player4=Player.PNo
Re: SQL databázy
hovorí za všetkonot unique table/alias
Kód: Vybrať všetko
INNER JOIN Player p2
ON Event.Player2=Player.PNo
INNER JOIN Player p3
ON Event.Player3=Player.PNo
INNER JOIN Player p4
ON Event.Player4=Player.PNoRe: SQL databázy
Keď už definuješ alias pre tabuľku, tak ho nedefinuješ len tak, aby ti zmizol error. Je to alias, takže ho aj používaj.
Takže ďalej pracuješ s novým názvom, aby bolo jasné, ktorú tabulku máš na mysli.
Ja som to v mojej odpovedi neprepísal, nenapadlo ma to, len som tam narýchlo dopísal tie aliasy, aby som zdôraznil, kde je chyba.
Takže ďalej pracuješ s novým názvom, aby bolo jasné, ktorú tabulku máš na mysli.
Ja som to v mojej odpovedi neprepísal, nenapadlo ma to, len som tam narýchlo dopísal tie aliasy, aby som zdôraznil, kde je chyba.
Kód: Vybrať všetko
INNER JOIN Player p2
ON Event.Player2=p2.PNo
INNER JOIN Player p3
ON Event.Player3=p3.PNo
INNER JOIN Player p4
ON Event.Player4=p4.PNo
Re: SQL databázy
velka vdaka za tvoju trpezlivost!