Trudność języka sql

0

Obecnie kończę 3 rozdział książki sql od podstaw. Jak na razie wszystko jest takie banalne. To tylko podstawy są takie łatwe?
Wcześniej przeczytałem symfonię c++ i jak dla mnie było to sporo trudniejsze. Jak patrzę w dalsze rozdziały książki sql od podstaw to też na mnie wrażenia nie robi. Może tak mam bo już znam podstawy c++ i dlatego jest mi łatwiej?

Czy to tylko podstawy sqla są takie łatwe?

1

Wydaje Ci się łatwy bo go nie znasz :).
Banalny na pewno nie jest.

0

To są dwa kompletnie inne języki. SQL jest językiem deklaratywnym, w którym nie mówisz urządzeniu jak coś ma zrobić tylko co ma zrobić. C++ jest z kolei wieloparadygmatowy. Jednakże tak kwerendy SQL jak i kod C++ da się skomplikować w ten sposób, że długo się będziesz zastanawiał o co chodzi. Dodajmy do tego dialekty SQL'a etc...

0

Ale chyba mimo to sql jest sporo łatwiejszy od c++.

0
Wielki Krawiec napisał(a):

Ale chyba mimo to sql jest sporo łatwiejszy od c++.

Ogólnie, tak. Aczkolwiek nie tak łatwy, jak się spodziewasz. Zresztą, wejdziesz głębiej to sam się przekonasz. Dodatkowo SQL SQLowi nie równy; spróbujesz przenieść jakiś projekt np. z MySQL na Oracle i okaże się, że prawie nic nie działa, a przecież oba te rozwiązania wykorzystują SQL!

4

Oczywiscie że jest łatwiejszy bo jest językiem wyższego poziomu i jest deklaratywny a nie imperatywny. Bo mówisz tylko "co" chcesz uzyskać a nie "jak". To co się dzieje "pod spodem" czyli transformacje algebraiczne, optymalizator kosztowy, wybór algorytmu dostępu do danych, wybór algorytmu łączenia tabel etc to są skomplikowane rzeczy, ale ty ich nie widzisz.
Ale to trochę jak porównywanie miednicy z basenem. Jak potrzebujesz pomoczyć nogi to nie ma sensu kupować basenu i miednica będzie niewątpliwie fajniejsza i tańsza i dużo wygodniejsza w obsłudzie. No ale w miednicy nie popływasz a jak przyjdą jeszcze 3 osoby to się już w niej nie zmieścicie ;]

0

Język SQL w pewnym zakresie jest na tyle łatwy że powinien go każdy znać kto ma do czynienia z systemami informatycznymi i generuje raporty.
I programista i pani Zosia z rachunkowości.

Jaki jest minimalny zakres po którym zaczynają się schody?
SELECT,ORDER BY,MIN,MAX,SUM,AVG,GROUP BY,HAVING,IN

Kiedy nastąpi pierwsze zdziwienie? Np. kiedy masz milion rekordów, założony indeks i zapytanie ignoruje ten indeks (30 dni po wdrożeniu).

0

Książka ma tytuł "SQL. Od podstaw", ale to nie znaczy, że poza te podstawy wychodzi. ;P Z rzutu oka na spis treści: nie ma tam np. o zapytaniach hierarchicznych, rekurencyjnych, funkcjach analitycznych (lub window functions), rzeczach typu CUBE, ROLLUP, GROUPING SETS, pivoting, wyrażeniach regularnych... Może są to rzeczy rzadziej używane, ale są w języku lub dialektach. Poza tym właśnie deklaratywność jeżyka polega na tym, że ma być z wierzchu prościej. Niemniej i tak można chcieć zapanować nad sposobem wykonania poleceń pod spodem, żeby optymalizować, i wtedy zaczyna się dopiero prawdziwa zabawa.

0

To zacznijmy od wykresu

user image

A teraz zastanówmy się w którym miejscu jesteśmy....

Podstawy SQL-a, i generalnie RDBMS, są proste. W sumie tam nie ma żadnej magii (CRUD, grupowanie, podstawy zarządzania). Jednak dość szybko zaczynają się schody. Zarówno na poziomie języka (agregacje, zapytania warunkowe, rekurencja, zagnieżdżenia zapytań) jak i konkretnego RDBMS (indeksy, plany zapytań, tryby wywołania i przetwarzania). Do tego później dochodzi wiedza na temat czysto hardwarowy np. o tym jak dany RDBMS układa dane na dysku (można czasami wycisnąć nawet 30% wzrost szybkości zapytania odpowiednio układając dane).

Znajomość podstaw języków c-podobnych jest przydatna, ale zdradliwa, bo może powodować tzw. einstellung effect i w efekcie zacinasz się na jakiejś koncepcji.

0

Jak zaczniesz robić podzapytania, różne dziwne agregacje i zawijasy, to okaże się, że Java i C++ są o wiele prostsze :P Na szczęście w większości firm takie akrobacje w SQL nie są na porządku dziennym i zwykle używa się ORM i FW.

1 użytkowników online, w tym zalogowanych: 0, gości: 1