Fórum Root.cz

Práce => Studium a uplatnění => Téma založeno: nobody 16. 01. 2016, 17:28:34

Název: Trénink SQL
Přispěvatel: nobody 16. 01. 2016, 17:28:34
Ahoj dobří lidé,
existuje spousta projektů, na učení se programování na "reálných" / "rozumných" úkolech (codeacademy, code.org a dalsi). Znáte něco na SQL? Když v práci/ve škole dostanu nějaký data a otázku, kde řešení je napsat na to SQL dotaz. Problém je, že otázka bývá docela složitá a pak sqlko docela dlouhý. Nejde o to, že neumím group by nebo heaving ale když ten problém je dlouhej a komplikovanej, tak nemám úplně zkušenosti jako problém dekomponovat, a řešit.
Název: Re:Trénink SQL
Přispěvatel: Kit 16. 01. 2016, 17:43:34
Nejlépe si nainstalovat vlastní DB server, spustit si konzoli a zkoušet, co všechno to snese. Po každém dotazu dostaneš ihned odpověď, takže hned vidíš, co bylo a co nebylo správně.
Název: Re:Trénink SQL
Přispěvatel: nobody 16. 01. 2016, 19:42:36
rozdíl mezi project euler a nainstalovat si server a zkouset to je v tom, ze u eulera jedu od nejlehciho po nejslozitejsi a mam nad sebou vedei. kdezdo druhy zpusob vyzaduje sehnat rozumna data, nalit je do db (zatim v pohode) ale pak vymejslet rozumne otazky a psat na ne sql. a trening / uceni chapu jako moznost zobrazit si spravne reseni, nebo optimalni reseni - taky bych se chtel vypracovat k psani rychleho a efektivniho sql
Název: Re:Trénink SQL
Přispěvatel: ehmmm 16. 01. 2016, 20:32:50
Budu tady mozna ukamenovan, ale ono to nejde zkouset primo v praci na skutecnych problemech? I za cenu toho, ze holt pujdes domu pozdeji a zkusis si to zadarmo pres cas?
Název: Re:Trénink SQL
Přispěvatel: qqqqqqqqq 16. 01. 2016, 20:57:38
Nejlepší to má v bance. Tam rovnou může projíždět, kolik kdo bere a určitě budou všichni nadšení :D Nevím, jestli jsi myslel, že pracuje ve startupu, kde je MySQL na PC šéfa a na tom jede všechno, ale normálně to zase tak jednoduché není.
Název: Re:Trénink SQL
Přispěvatel: Kit 16. 01. 2016, 21:16:32
Nejlepší to má v bance. Tam rovnou může projíždět, kolik kdo bere a určitě budou všichni nadšení :D Nevím, jestli jsi myslel, že pracuje ve startupu, kde je MySQL na PC šéfa a na tom jede všechno, ale normálně to zase tak jednoduché není.

V bance zase máš několik dalších databází pro takové experimenty. Nemůžeš chtít po vývojáři, aby si své aplikace neměl na čem řádně otestovat a rovnou ji nasadil naostro.
Název: Re:Trénink SQL
Přispěvatel: Kit 16. 01. 2016, 21:20:44
Znáte něco na SQL? Když v práci/ve škole dostanu nějaký data a otázku, kde řešení je napsat na to SQL dotaz.

Vůbec ses nezmínil, které SQL, tedy konkrétně kterou databázi máš na mysli. Každá má totiž jiné rozšíření proti základu SQL a mnohé z nich ho ani nesplňují celý.
Název: Re:Trénink SQL
Přispěvatel: sql_lama 16. 01. 2016, 22:55:43
http://sqlzoo.net/wiki/SQL_Tutorial (jakmile zvladnete z hlavy ty pokrocile priklady uvedene dole, tak si muzete bez ostychu zacit rikat SQL guru; ja osobne jsem nejeden z nich nedal a musel jsem se nechat inspirovat jejich resenim :().

Off topic: Na tech pokrocilych prikladech je krasne videt, ze SQL standard je velice nepodareny (a implementace od implementace se vyrazne lisi, takze jiz i pro stredne komplexni programy nelze psat ciste SQL a musi se "ifdefit") a samotne SQL je dost spatne navrzeny koncept (ma hrozne moc der a ani zdaleka nesplnuje dnesni pozadavky). Ani plne relacni databaze (napr. http://shark.armchair.mb.ca/~erwin/) nejsou vselek (v cem vsem je SQL slabe/nepouzitelne a jako to pripadne resit vcetne diskuze o plne relacnich jazycich lze nalezt v diskuzich pod ruzne zanorenymi odkazy na http://c2.com/cgi/wiki?StructuredQueryLanguage), a tak osobne sazim na Datalog-based databaze (napr. http://docs.datomic.com/query.html nebo FLOSS in-memory varianta https://github.com/tonsky/datascript), ktere resi snad vsechny stavajici technicke problemy databazi a zadne nove problemy mi nejsou zname.
Název: Re:Trénink SQL
Přispěvatel: zboj 16. 01. 2016, 23:03:52
http://sqlzoo.net/wiki/SQL_Tutorial (jakmile zvladnete z hlavy ty pokrocile priklady uvedene dole, tak si muzete bez ostychu zacit rikat SQL guru; ja osobne jsem nejeden z nich nedal a musel jsem se nechat inspirovat jejich resenim :().

Off topic: Na tech pokrocilych prikladech je krasne videt, ze SQL standard je velice nepodareny (a implementace od implementace se vyrazne lisi, takze jiz i pro stredne komplexni programy nelze psat ciste SQL a musi se "ifdefit") a samotne SQL je dost spatne navrzeny koncept (ma hrozne moc der a ani zdaleka nesplnuje dnesni pozadavky). Ani plne relacni databaze (napr. http://shark.armchair.mb.ca/~erwin/) nejsou vselek (v cem vsem je SQL slabe/nepouzitelne a jako to pripadne resit vcetne diskuze o plne relacnich jazycich lze nalezt v diskuzich pod ruzne zanorenymi odkazy na http://c2.com/cgi/wiki?StructuredQueryLanguage), a tak osobne sazim na Datalog-based databaze (napr. http://docs.datomic.com/query.html nebo FLOSS in-memory varianta https://github.com/tonsky/datascript), ktere resi snad vsechny stavajici technicke problemy databazi a zadne nove problemy mi nejsou zname.
Datalog je mnohem snazší na pochopení, ale SQL je na některé úlohy lepší.
Název: Re:Trénink SQL
Přispěvatel: sql_lama 17. 01. 2016, 11:23:33
Datalog je mnohem snazší na pochopení, ale SQL je na některé úlohy lepší.
Zatim jsem se s zadnou takovou ulohou nesetkal a ani me teoreticky zadna takova nenapada :( Docela by me to zajimalo (castecne strkam nos do vyzkumu o databazich) - mate nejake priklady uloh, kde je SQL lepsi?

Jinak ohledne pochopeni SQL myslim, ze ciste relacni usporadani a algebra je vyrazne snazsi na pochopeni nez Datalog (jeste aby ne, vyjadrovaci schopnost Datalogu je silnejsi nez relacni algebry), ale SQL ma tolik vyjimek a divnych konstrukci apod., ze s vami mohu souhlasit, ze Datalog je z hlediska nauceni se (nikoliv pochopeni "co a proc se deje na pozadi") snazsi nez SQL. To jen tak pro uplnost, protoze co me zajima jsou ty ulohy, pro ktere je SQL "lepsi" (tedy neporovnavame samotne jazyky Datalog a SQL, nybrz jejich pouziti v praxi).
Název: Re:Trénink SQL
Přispěvatel: Franta <xkucf03/> 17. 01. 2016, 12:03:19
Na úplné základy jsem napsal tohle: https://demo-1.sql-vyuka.cz/

Ale pro další studium už potřebuješ mnohem víc dat a pořádné zadání. Jak už tu někdo psal, nejvíc se toho naučíš v práci, kde budeš řešit reálné úlohy. Ale chce to firmu, která na databázích hodně staví – ideálně nějakou banku – ne firmu, kde lepí weby nad databází o pěti tabulkách, tam se toho moc nenaučíš. Nemusíš se bát, že bys něco rozbil – v bance tě na ostrou databází hned nepustí – mají dost testovacích prostředí, na kterých můžeš vyvíjet a při tom se učit.

Abys měl nutné teoretické základy je dobré absolvovat nějaký kurz – např. na VŠE je to 4IT218 (https://isis.vse.cz/katalog/syllabus.pl?predmet=110753). Případně si to přečíst v knížce, ale na kurzu ti to učitel systematicky vyloží.

Mezitím čti – studuj, jak to dělají ostatní – najdi si nějaký svobodný software, který hodně staví na SQL databázi, a čti si SELECTy, které se v něm používají. Před tím si prohlédni datový model a snaž se ho pochopit. Taky koukni na http://postgres.cz/wiki/PostgreSQL – je tam pár zajímavých návodů a příkladů. Další věci najdeš v článcích o SQL tady na Rootu.
Název: Re:Trénink SQL
Přispěvatel: andy 17. 01. 2016, 12:14:47
Nejlepší to má v bance. Tam rovnou může projíždět, kolik kdo bere a určitě budou všichni nadšení :D Nevím, jestli jsi myslel, že pracuje ve startupu, kde je MySQL na PC šéfa a na tom jede všechno, ale normálně to zase tak jednoduché není.
tu sa hodi to meme..that's not how it works
Název: Re:Trénink SQL
Přispěvatel: zboj 17. 01. 2016, 13:14:08
Datalog je mnohem snazší na pochopení, ale SQL je na některé úlohy lepší.
Zatim jsem se s zadnou takovou ulohou nesetkal a ani me teoreticky zadna takova nenapada :( Docela by me to zajimalo (castecne strkam nos do vyzkumu o databazich) - mate nejake priklady uloh, kde je SQL lepsi?

Jinak ohledne pochopeni SQL myslim, ze ciste relacni usporadani a algebra je vyrazne snazsi na pochopeni nez Datalog (jeste aby ne, vyjadrovaci schopnost Datalogu je silnejsi nez relacni algebry), ale SQL ma tolik vyjimek a divnych konstrukci apod., ze s vami mohu souhlasit, ze Datalog je z hlediska nauceni se (nikoliv pochopeni "co a proc se deje na pozadi") snazsi nez SQL. To jen tak pro uplnost, protoze co me zajima jsou ty ulohy, pro ktere je SQL "lepsi" (tedy neporovnavame samotne jazyky Datalog a SQL, nybrz jejich pouziti v praxi).
Datalog je syntakticky osekaný prastarý Prolog, ale s SLG rezolucí nebo něčím ekvivalentním pro inferenci. Hodí se tedy na různé ontologie a sémantické blbinky, ale ne na analýzu číselných dat hrubou silou. Numerické úlohy okolo "big data" by řešil obtížněji nebo přinejmenším pomaleji.
Název: Re:Trénink SQL
Přispěvatel: hoj 17. 01. 2016, 18:01:38
Budu tady mozna ukamenovan, ale ono to nejde zkouset primo v praci na skutecnych problemech? I za cenu toho, ze holt pujdes domu pozdeji a zkusis si to zadarmo pres cas?

urcite nebudes :) tohle je ta posledni moznost, kterou zvolit, pokud nenajdu co hledam. vzhledem k tomu, ze ale existuji reseni po kterych se ptam, tak ta cesta bude jednodussi :)