Kde se naučit SQL

Venca

Kde se naučit SQL
« kdy: 20. 10. 2017, 20:22:19 »
Zdravím, už docela dost let se živím programováním a v rámci rozšiřování obzorů bych se chtěl začít věnovat databázím a obecně SQL jazyku. Kdysi dávno jsem se s ním setkal jen v základech, takže jsem prakticky začátečník. Jde mi o to naučit a dozvědět se co nejvíc o SQL z hlediska programování, ale i naučit se správné návyky při tvorbě tabulek a databází.
Našel by se někdo, kdo by mohl doporučit nějaké stránky, tutoriály, učebnice? V češtině, v el. podobě, ideálně zdarma? Na netu se toho válí spousty, google použít umím, ale ten už mi neřekne nic o kvalitě...
Díky za každý tip nebo radu.


Re:Kde se naučit SQL
« Odpověď #1 kdy: 20. 10. 2017, 22:00:52 »
Zdravím, už docela dost let se živím programováním a v rámci rozšiřování obzorů bych se chtěl začít věnovat databázím a obecně SQL jazyku. Kdysi dávno jsem se s ním setkal jen v základech, takže jsem prakticky začátečník. Jde mi o to naučit a dozvědět se co nejvíc o SQL z hlediska programování, ale i naučit se správné návyky při tvorbě tabulek a databází.
Našel by se někdo, kdo by mohl doporučit nějaké stránky, tutoriály, učebnice? V češtině, v el. podobě, ideálně zdarma? Na netu se toho válí spousty, google použít umím, ale ten už mi neřekne nic o kvalitě...
Díky za každý tip nebo radu.

A kterému SQL byste se chtěl věnovat? Jazyk mají všechny podobný, ale implementace a tím pádem i nutné návyky programátorů se pak liší.

Venca

Re:Kde se naučit SQL
« Odpověď #2 kdy: 20. 10. 2017, 22:09:14 »
Jsou mezi tím nějaké zásadní rozdíly? O konkrétní implementaci jsem nepřemýšlel...když už, tak asi MSSQL, ale klidně začnu i s Firebird, MySQL, SQLite...

Re:Kde se naučit SQL
« Odpověď #3 kdy: 20. 10. 2017, 22:13:27 »
Jsou mezi tím nějaké zásadní rozdíly? O konkrétní implementaci jsem nepřemýšlel...když už, tak asi MSSQL, ale klidně začnu i s Firebird, MySQL, SQLite...

Ok. Na MySQL a SQLite se vykašlete, obojí jsou parodie na SQL a na nich si vytvoříte leda zlozvyky.
MSSQL nebo Firebird nebo Oracle nebo PostgreSQL bych považoval za fajn pro učení.

Máte nějaký konkrétní projekt, který chcete zpracovat?

mikrom

Re:Kde se naučit SQL
« Odpověď #4 kdy: 20. 10. 2017, 22:20:36 »
... docela dost let se živím programováním a v rámci rozšiřování obzorů bych se chtěl začít věnovat databázím a obecně SQL jazyku ...
V akom jazyku programujes ?


Kit

Re:Kde se naučit SQL
« Odpověď #5 kdy: 20. 10. 2017, 22:37:25 »
Na MySQL a SQLite se vykašlete, obojí jsou parodie na SQL a na nich si vytvoříte leda zlozvyky.

SQLite má téměř úplnou implementaci jazyka SQL. Jaké zlozvyky si na něm vytvoří?

Jazyk MySQL je sice horší, ale zato hojně rozšířený.

Re:Kde se naučit SQL
« Odpověď #6 kdy: 20. 10. 2017, 22:45:42 »
SQLite má téměř úplnou implementaci jazyka SQL. Jaké zlozvyky si na něm vytvoří?
Jazyk MySQL je sice horší, ale zato hojně rozšířený.

Ani jedno není SQL v pravém slova smyslu, a SQL v názvu mají víceméně omylem, resp. jen kvůli tomu, že jazyk vypadá stejně.

Kit

Re:Kde se naučit SQL
« Odpověď #7 kdy: 20. 10. 2017, 23:05:49 »
Z vyjmenovaných databází považuji za nejvhodnější pro uvedený účel PostgreSQL.

Venca

Re:Kde se naučit SQL
« Odpověď #8 kdy: 20. 10. 2017, 23:58:56 »
... docela dost let se živím programováním a v rámci rozšiřování obzorů bych se chtěl začít věnovat databázím a obecně SQL jazyku ...
V akom jazyku programujes ?

Java

Milfaus

Re:Kde se naučit SQL
« Odpověď #9 kdy: 21. 10. 2017, 00:03:53 »
Nejsou jen SQL databáze, jsou i NoSQL databáze.
https://cs.wikipedia.org/wiki/NoSQL

Dost často jsou - pro někoho možná překvapivě - jednak výkonnější pro určité typy dotazů a nebo prostě jen vhodnější.

https://www.zdrojak.cz/serialy/nerelacni-databaze/
 
Jsou případy, kdy případy použití klasické SQL databáze podobá snaze zašroubovat šroubek pomocí kombinaček.
Nic proti kleštím a kombinačkám už vůbec, ostatně jak jinak chcete vytrhat zuby tomu, kdo o vás prohlásil, že jste tak trochu excentrik. Ale v tomhle případě se může jednat o to, že by použití takových kleští bylo jako si ty zuby vytrhat sobě. Někdy prostě použijete NoSQL databázi a všechno jde samo, jednoduše, žádná abstrakce, milé, snadné, rychlé, přehledné, čitelné.

mikrom

Re:Kde se naučit SQL
« Odpověď #10 kdy: 21. 10. 2017, 00:07:30 »
tak si najdi nejake priklady na pouzitie jdbc.
open connection, close connection
open resultset,  close resultset
..etc
ked sa chec naucit zaklady sql mozes si kupit napr https://www.alza.sk/media/naucte-sa-sql-za-28-dni-d2367043.htm?o=4
Mylim, ze to je tak asi jedina vseobecna kniha pocesky o SQL, alebo si najdi nejake tutorialy pre konkretnudatabazu na webe.

Kit

Re:Kde se naučit SQL
« Odpověď #11 kdy: 21. 10. 2017, 00:33:05 »
Nejsou jen SQL databáze, jsou i NoSQL databáze.
https://cs.wikipedia.org/wiki/NoSQL
Dost často jsou - pro někoho možná překvapivě - jednak výkonnější pro určité typy dotazů a nebo prostě jen vhodnější.

Pokud by někdo chtěl degradovat SQL databázi na KVS, tak bych mu také doporučil výběr z NoSQL. S většinou z nich bude mnohem spokojenější než s databázemi SQL.

FUBAR

Re:Kde se naučit SQL
« Odpověď #12 kdy: 21. 10. 2017, 01:26:53 »
Relacni databaze: Codd, Darwen & Date. Ti vysvetluji, jak by se to melo delat. Pak je milion praktickych implementaci SQL, ktere jsou v ruznych smerech domrvene. Postgres je asi nejprijemnejsi (open-source, neni to mamut ale ma to dost funkci a slusny vykon), specializovat se jde podle potreby.

Milfaus

Re:Kde se naučit SQL
« Odpověď #13 kdy: 21. 10. 2017, 01:40:33 »
degradovat SQL databázi

Často není víc potřeba.
A poměrně často je to naprosto ideální řešení.
Příkladem budiž webový e-shop, matlat data do MySQL, řešit složitou strukturu...

Databáze jsou nástroje, když máš dobrý nástroj, jde práce rychle od ruky.
Člověk si zvykne používat kladivo, můžeš se s ním naučit i sádrovat, ale špachtlí to jde prostě líp.

Mimochodem, já bych začal právě tou NoSQL databází, protože se potupně dostane k nástrojům, které se snaží z SQL databáze udělat NoSQL databázi.


Re:Kde se naučit SQL
« Odpověď #14 kdy: 21. 10. 2017, 06:57:45 »
Zdravím, už docela dost let se živím programováním a v rámci rozšiřování obzorů bych se chtěl začít věnovat databázím a obecně SQL jazyku. Kdysi dávno jsem se s ním setkal jen v základech, takže jsem prakticky začátečník. Jde mi o to naučit a dozvědět se co nejvíc o SQL z hlediska programování, ale i naučit se správné návyky při tvorbě tabulek a databází.
Našel by se někdo, kdo by mohl doporučit nějaké stránky, tutoriály, učebnice? V češtině, v el. podobě, ideálně zdarma? Na netu se toho válí spousty, google použít umím, ale ten už mi neřekne nic o kvalitě...
Díky za každý tip nebo radu.
SQL se dá uchopit jednoduše i složitě. V tom jednoduchém případě to lze opravdu jednoduše. Pro psaní dotazů je zásadní pochopení outer JOINů a agregace - ostatní je primitivní. Pro design je pak důležité pochopení tzv normálních forem - zásadní jsou první tři a ty pokud možno v návrhu respektovat. V podstatě existují dvě chyby, které je dobré nedělat při návrhu - emulace dědičnosti a entity attribute value tabulky. Můžete použít moje materiály, které používám na školení SQL: http://www.pgsql.cz/skoleni/skoleni_sql.zip

Pro základy SQL je jedno, kterou SQL databázi použijete - důležité je nedělat z toho vědu. Jakmile člověk SQL umí, tak jej umí na SQLite, MySQL, Oracle, Postgresu, ... Samozřejmě, že tam jsou určité rozdíly, ale základ je stejný - to je jedna z výhod SQL (je to něco jako pravidla silničního provozu - téměř všude jsou stejná. Pak se samozřejmě musím přizpůsobit jestli jedu s osobákem nebo dodávkou nebo kamiónem). Použijte takovou databázi, do které se umíte přihlásit, a do které umíte poslat dotaz, a podívat se na výsledek.