Zobacz pełną wersję : SQL - jakie książki do podstaw i ćwiczeń?
Witam,
Ktoś z Was (ktoś na pewno!) zajmuje się SQL i mógłby polecić jakieś 1-3 książki do nauki od absolutnych podstaw?
Może być po angielsku, a nawet lepiej jakby było.
RobertMiernik
23-05-2016, 17:53
zależy czego się chcesz nauczyć i na jakim poziomie jesteś...
Biblia SQL to jest pozycja w zasadzie załatwiająca całość potrzeb...
Najlepsza nauka to rozwiązywanie problemów, poszukaj forów gdzie ludzie zadają pytania i nie patrząc na sugestie odpowiedzi spróbuj sam powalczyć z tematami
Nauka samego czystego SQL nie wymaga jakiś specjalnie wielkich książek, bo sprowadza się to do podstawowych operacji na bazie.
Natomiast reszta - czyli zarządzanie/konfiguracja bazy i silnika oraz zaawansowane funkcje bazy zależą od tego z jakiego silnika korzystasz.
Co innego masz w MS SQL, co innego w MySQL i jeszcze co innego w pozostałych.
Tak więc najpierw musisz wybrać silnik bazy, a dopiero do niego szukać odpowiedniej książki.
Dzięki za odpowiedzi. W skali 1-10 mój poziom to 0 :D
Za to jeśli chodzi o ogólną wiedzę IT to jest zdecydowanie ponad podstawową, grzebałem kiedyś przy stronach WWW, informatyka jako całość nie jest mi obca, brak mi natomiast specjalizacji.
Sprawa wygląda tak, że rozglądam się za pracą i w niektórych ogłoszeniach jest napisane, że mile widziana jest jakakolwiek podstawowa wiedza i pojęcia nt. SQL (bez konkretów jakie bazy) - stąd moje pytanie.
Ta podstawowa wiedza z zakresu SQL często oznacza umiejętność zarządzania i konfiguracji bazy, jak i przy niektórych bazach dość dobrze opanowane programowanie, bo tego do pracy wymagają bazy, bo to są podstawy do obsługi takiej bazy.
W innych wypadkach może oznaczać, że wiesz jak zresetować serwer bazy na komputerze.
Sprawa wygląda tak, że rozglądam się za pracą ... podstawowa wiedza i pojęcia nt. SQL ...
Po co SQL fotografowi ?
Po co SQL fotografowi ?
Dzięki za połechtanie mojego ego, ale nie samą fotografią żyje człowiek :D
lukasz.antoniak
23-05-2016, 23:51
Ta podstawowa wiedza z zakresu SQL często oznacza umiejętność zarządzania i konfiguracji bazy, jak i przy niektórych bazach dość dobrze opanowane programowanie, bo tego do pracy wymagają bazy, bo to są podstawy do obsługi takiej bazy. W innych wypadkach może oznaczać, że wiesz jak zresetować serwer bazy na komputerze.
Nie zgodzę się w 100%. Za zarządzanie bazą danych odpowiada zespół DBA. Są to osoby specjalizujące się w konkretnej bazie danych i na pewno nie po kursach z Internetu... Nie ma bardzo dobrych DBA od Oracle, Microsoft SQL, MySQL w jednym.
Znajomość SQL z ofert pracy to nic innego jak pisanie prostych zapytań (o ile nie jest to oferta dla programisty). Dziwne wymaganie swoją drogą dla nie informatyka. Możesz z ciekawości podać link do takiej oferty?
Polecę Ci książkę przygotowującą do egzaminu Oracle Certified SQL Expert (http://www.amazon.com/Oracle-Database-Certified-Expert-1Z0-047/dp/0071614214). Przystępnie napisana. Na pewno znajdziesz w sieci wersję "darmową".
RobertMiernik
24-05-2016, 00:39
Tylko się nie ucz wersji Oraclowej SQLa...
MS SQL to jedyny, którego powinieneś się uczyć...
lukasz.antoniak
24-05-2016, 00:46
LOL a co w niej nie tak? Należy rozróżniać standard SQL or dodatkowych funkcji oferowanych przez konkretnych dostawców. Ale to szczegół...
Tylko się nie ucz wersji Oraclowej SQLa...
MS SQL to jedyny, którego powinieneś się uczyć...
Hahaha!
Nie rób chłopakowi wody z mózgu ;)
@smogg9: Popatrzę w domu na strychu i jeśli żona nie wywaliła moich starych książek to chętnie Ci je odstąpię. Miałem ich kiedyś sporo, może coś przetrwało...
LOL a co w niej nie tak? Należy rozróżniać standard SQL or dodatkowych funkcji oferowanych przez konkretnych dostawców. Ale to szczegół...
Ten szczegół jest warunkiem koniecznym... Żaden silnik nie jest zrobiony w pełni w oparciu o standard SQL. Poza tym jedną z podstawowych możliwości SQL to funkcje/procedury pisane w samej bazie, a te pisze się w oparciu o język danego silnika.
Drugą ważną sprawą jest zarządzanie indeksami - każdy silnik robi to na swój sposób, typy danych są różne w różnych silnikach.
Najbliżej standardu SQL są bazy PostgreSQL, MySQL, IBM DB2 (mają zaimplementowany również SQL/PSM).
Tak więc nie da się nauczyć SQL bez wybrania konkretnego silnika.
MS SQL to jedyny, którego powinieneś się uczyć...
Nie jedyny, a wg. mnie to chyba najgorszy wybór do nauki. MS SQL chyba najdalej odbiega od standardu.
RobertMiernik
24-05-2016, 10:02
Tak odbiega i właśnie dlatego trzeba na to zwracać uwagę.
Co mu po standardzie, uwielbiam ludzi uczących się Cambridge English albo czystego CSSa a później nie potrafiących się dogadać amerykańcem albo douczających się co im nie działa...
Jeśli kolega myśli o profesjonalnych rozwiązaniach (a nie stronkach WWW) to potrzebuje SQLa a nie My/Postgre czy innych dziwnych wynalazków, teraz Oraclowa czy Microsoftowa wersja: No życzę koledze sukcesów ale jednak pracując w Polsce ma 80 do 20 szanse na spotkanie wersji od Microsoftu.
Oczywiście można mierzyć wysoko i się douczyć ale ja sugeruję jednak zacząć od 80 a nie od 20 procent...
Te 80/20 to chyba tylko u Ciebie.
Wiele programów korzysta z innych silników. I żadna firma, której zależy na wydajności bazy, wielkości serwera, czy łatwości konfiguracji nawet nie spogląda w stronę MS SQL.
Hahaha!
Nie rób chłopakowi wody z mózgu ;)
@smogg9: Popatrzę w domu na strychu i jeśli żona nie wywaliła moich starych książek to chętnie Ci je odstąpię. Miałem ich kiedyś sporo, może coś przetrwało...
Zobacz, dzięki!
- - - - kolejny post - - - - - -
Te 80/20 to chyba tylko u Ciebie.
Wiele programów korzysta z innych silników. I żadna firma, której zależy na wydajności bazy, wielkości serwera, czy łatwości konfiguracji nawet nie spogląda w stronę MS SQL.
Rozmowa zmierza w rejony politycznych sporów... spokojnie Panowie :)
RobertMiernik
24-05-2016, 11:39
Rozmowa zmierza w rejony politycznych sporów... spokojnie Panowie :)
Oczywiście, bo to Ms Apple, Windows Linux, Ubuntu Slackware, PS XBox, albo PC Konsola ;)
Te 80/20 to chyba tylko u Ciebie.
Wiele programów korzysta z innych silników. I żadna firma, której zależy na wydajności bazy, wielkości serwera, czy łatwości konfiguracji nawet nie spogląda w stronę MS SQL.
No cóż, może właśnie dlatego 90% ERPów korzysta właśnie z serwera od Microsoftu - tak, to 'u mnie' i dlatego polecam, bo wiem ile się 'u mnie' zarabia i ilu dobrych specjalistów od SQLa chętnie byśmy zatrudnili.
Oczywiście można polecać 'u kogoś' ale ja tam wolę 'u mnie'.
Tak czytam te odpowiedzi i to wszystko przypomina sytuację, jakby ktoś na forum baristów rzucił pytanie jaki tani ekspres do kawy kupić :D
@smogg9 zamiast szukać książek postaw sobie jakąś bazę (choćby oraclową express edition), do tego klienta (np. sql developer), stron www z podstawami sql-a są tysiące we wszystkich jezykach świata, to ci w zupełności wystarczy.
A jeśli koniecznie chcesz książkę to wrzuć w google frazę "Rober Chwastek SQL". Książka ma sto lat, ale podstawy się nie zmieniły.
Ludzie rozmawiają o tym i owym.
Zapytać zawsze można :)
Ja gdybym znalazł ofertę pracy np. dla proktologa też bym zapytał : koledzy, od czego zacząć ?
Może ktoś ma jakieś swoje doświadczenia i coś ciekawego by napisał w tym temacie.
Pracuję jako programista baz danych od paru lat. Szukałem dobrej książki dla znajomego i póki co, nie znalazłem... :(. Za niektórymi kolegami proponuję doświadczenia własne. Ściągnij SQL Server w wersji Express z Management Studio. To do nauki SQL najlepszy wybór bo:
- dostajesz kapitalnego klienta z intellisense za darmo
- dasz radę ściągnąć z internetu bazkę Adventure Works (baza szkoleniowa Microsoftu), która jest potencjalnie dobrze zaprojektowaną i wypełnioną danymi bazą, więc będziesz mógł skupić się na tworzeniu zapytań, a nie baz.
- pewnie znajdziesz jakieś wątki o zapytaniach do tej konkretnej bazy i będziesz mógł prześledzić odpowiedzi
- nie zaczniesz od nabrania złych nawyków z ORACLE (dziwny NULL w varcharze, NVL zamiast COALESCE, implicit joiny, plusiki, dual etc)
Są też minusy:
- jeśli nauczysz się pisać brzydkie zapytania w MSSQL-u (który bardzo dobrze ustala plan zapytania), potem przesiadając się na Oracle, możesz pisać naprawdę mało wydajnie.
- pouczysz się o IDENTITY w kluczu głównym, zamiast o sekwencjach.
Dalej zgodnie z kolejnością, z jaką obrabiane jest zapytanie pytaj google o:
klauzula FROM i JOINy (MZ zaczynasz rozumieć dopiero gdy: swobodnie na kartce rozpiszesz dla dwóch zbiorów INNER/LEFT/RIGHT/FULL JOIN ON 1=1 a potem dla 0=1; zrozumiesz, że ON to może być długie wyrażenie logiczne z warunkami niekoniecznie związanymi z kolumnami; wiesz że wykorzystanie 2 razy tej samej tabeli w jednym zapytaniu nie jest niczym szczególnym; wiesz, że złączeń w przeciętnym zapytaniu jest kilkanaście)
klauzula WHERE
klauzula GROUP BY (tu warto pobawić się z kartką żeby to zrozumieć)
klauzula HAVING
klauzula SELECT
jako rozwinięcie operacje na NULL, COALESCE, wyrażenia warunkowe CASE, funkcje agregujące, zachowanie funkcji agregujących po natrafieniu na NULL (najlepiej na przykładzie AVG albo COUNT)
klauzula ORDER BY
Jeśli przy FROM nie ogarnąłeś kluczy podstawowych i obcych pora nadgonić.
Jak już to opanujesz to:
- operacje na zbiorach UNION ALL, INTERSECT, MINUS (UNION bez ALL odpuść, żeby nie nadziać się na różnice w implementacji poszczególnych silników)
- podzapytania w SELECT, we FROM w WHERE
- CTE (jeśli MSSQL odpuść zapytania rekurencyjne, bo tego w codziennej pracy nie musisz znać na blachę)
- funkcje okienkowe
- PIVOT i UNPIVOT
Dalej operacje na danych:
- UPDATE, DELETE, INSERT, MERGE -tutaj musisz złapać ogólny zarys dla prostego przypadku, bo sposoby wykonania złożonych operacji z danymi z wielu tabel będą inne na każdym silniku
- transakcje (przywyknięcie do poziomu izolacji read commited), transakcje autonomiczne/subtransakcje.
Podstawowe polecenia DDL dotyczące tabel:
- CREATE TABLE, ALTER TABLE, DROP TABLE - podobnie, ogólny zarys, bo w szczegółach mogą się znacznie różnić
- TRUNCATE - chyba na każdej rozmowie kwalifikacyjnej na programistę SQL, pytają się o różnice w stosunku do DELETE
- komenda DDL a transakcja.
Jeśli to wszystko opanujesz - gratulacje masz solidne podstawy SQL - możesz iść na rozmowę (przebiłeś też wielu programistów bazodanowych w zakresie SQL).
Jeśli chcesz więcej, czyli funkcje procedury, triggery etc -MZ czas przesiąść się na ORACLE - będzie przyjemniej, bo MSSQL ma sporo ograniczeń, z którymi nie warto męczyć się na początku.
A i jeszcze jedno optymalizacja zapytań. Odpuść sobie naukę, chyba że wszystko inne będziesz już umiał. MZ: 100% programistów deklaruje, że się na tym zna; 90% z nich nie ma jednak o tym pojęcia; 9% ma od tego DBA; 1% to hobbyści, od których i tak nikt tego nie wymaga.
Co do silników bazodanowych: każdy ma swoje wady i zalety, a najlepiej znać ten, za który aktualnie możesz dostać najwięcej.
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.