Bazy danych, zwykłe SQL, ocena tutoriala (i poglądów)

0

proszę o korektę ewentualnych poglądów:

mamy SQL podstawę (sam, czysty). Podstawa jest rozwijana w rozmaitych dialektach; najczęściej istniejących w kontekście określonych technologii, korporacji (Microsoft, Oracle), licencji, czy tam open source.
Najpopularniejsze dialekty: MySQL, PL/SQL, PostgreSQL, MS SQL.

Dialekty zawsze są kompatybilne wstecznie z SQL, ale nie zawsze są kompatybilne miedzy sobą.
Albo:
Bardzo często (95%) kompatybilne są z czystym SQL, ale b. rzadko (10%) kompatybilne są między sobą.

SQL się fajnie skryptuje.
Każda biblioteka przeznaczona do skryptowania baz danych w dowolnym języku jest zawsze kompatybilna z podstawowym SQL, a także ma za zadanie operować rozwiniętym SQLem w jakimś dialekcie.
W skrócie : jakiś-tam-język > ma bibliotekę > która jest zawsze kompatybilna z SQL > i operuje na jakimś-tam dialekcie.

stąd wniosek:
jeżeli nauczymy się perfekcyjnie czystego, samego SQL, to wtedy będziemy mieli podstawę w każdym dialekcie. Później pozostaje nauka nie czystego SQL, ale nauka samego dialektu (czyli tego jak SQL jest akurat rozwijany w jakimś tam zestawie technologii).

Na wszystkich rozmowach kwalifikacyjnych i w każdej pracy zawsze wykorzystywałem SQL, a raz chyba mnie z półtorej godziny wałkowali mnie z selectów, kluczy, joinów, funkcji, czy tam innych zapytań. Doszedłem więc do wniosku, że muszę mieć SQLa w małym palcu.

pytania:

  • czy powyższe teorie (rozdział na SQL i dialekty) są prawdziwe?
  • jeżeli są, to czy ten tutorial :
    http://www.tutorialspoint.com/sql/sql_tutorial.pdf
    ... dotyczy czystego SQLa, z ewentualnym zaznaczeniem dialektów? Z mojej wiedzy wynika, że ten tutorial to jest czysty SQL. Nie ma naleciałości z dialektów. Zgadza się?

Napisałem topic, bo niepodoba mi się, że wszyscy na około mieszają czystego SQL z dialektami, a ja akurat chcę sobie wkuć na blachę czystego SQL. Ale bez dialektów. Tak, wiem, było na studiach, ale zawsze warto sobie to powtórzyć ;)

0

MS SQL Server to RDBMS, nie dialekt SQLa. Dialekt nazywa się Transact SQL, w skrócie T-SQL.

1

Ja mając podstawy podstaw w SQL po "Learn SQL in 30mins" z YT, dostałem pracę w jednym z dużych banków w Polsce. Pracujemy na Oraclu, jak czegoś nie jestem pewien jak napisać to odpalam Google i z dokumentacji można wszystko wyczytać bez problemu. Znając podstawy szybko w necie wyszukasz odpowiedniki danych funkcji w "dialekcie" na, którym przyszło Ci pracować.

Przykładowo potrzebowałem wyciągnąć miesiąc z daty. Uczyłem się wcześniej, że można to zrobić za pomocą MONTH(data) w SQL, a w Oraclowej bazie wywalać nagle zaczęło mi błąd przy takiej składni. Wtedy szybko wujek Google => hasło SQL MONTH ORACLE => okazuje się, że tutaj robi się to EXTRACT(month FROM data).

Najważniejsze to, żebyś miał ogólne pojęcie jak działa SQL i co można w nim zrobić.
Ogarnij bazy od strony administratora (tworzenie/edycja tabel) oraz zwykłego usera gdzie, przede wszystkim będzie pewnie dużo SELECTÓW czyli powtórz dobrze różne JOINY, GROUP BY, AND, OR, BETWEEN, IN itd.. Często tez używam u siebie CASE Expressions. Trochę teorii przyda też Ci się o kluczach i indeksach jak działają.

Nawet jak nauczysz się go na jakimś dialekcie to bardzo szybko i łatwo poradzisz sobie w innych mając pod ręką Google bo będziesz wiedział co chcesz napisać i jak to ma działać (tak jak ja w przytoczonym przykładzie).

0

dziękuję za feedbacki (po korporacyjnemu ;)).
Powtórzę pytania:

  • czy tok rozumowania jest poprawny (podział na czysty SQL i dialekty, wzajemna kompatybilność tego wszystkiego)
  • jeżeli jest poprawny, to czy ten tutorial:
    http://www.tutorialspoint.com/sql/sql_tutorial.pdf
    dotyczy czystego SQL, bez naleciałości dialektów?
    Nie mam czasu na książki, chcę to już wydrukować i wkuć w parę dni, a później wiedzieć co jest "czystym SQL" a co dialektem.

SQL znam, ale nie wszystkie szczegóły. Chcę też twardo rozróżniać co jest "czysty" a co "dialekt".

1

Ten tutorial jest trochę mało zaawansowany, a biorąc pod uwagę, że "czysty" SQL jest tworem raczej teoretycznym, to może lepiej oprzeć się o książeczkę "SQL Pocket Guide". Też będziesz wiedział, co jest wspólne, ale w szerszym zakresie, a dodatkowo możesz wiedzieć jakie są różnice.

0
zz napisał(a):

(...) biorąc pod uwagę, że "czysty" SQL jest tworem raczej teoretycznym(...)

doczytałem to.
Czysty SQL jest ustandaryzowany w ANSI (American National Standards Institute). Daje to "podstawy" na których zbudowane są pozostałe dialekty.
Prawdopodobnie nie ma nigdzie samego SQL (tak jak napisałeś). I to właśnie dialekty rozwijają SQL w praktyce.
Natomiast wydaje mi się, że wypadałoby znaleźć jakieś materiały dotyczące właśnie SQLa według standaryzacji ANSI - bo dialekty to i tak z dokumentacji się doczytuje.

jest jeszcze coś takiego, że ANSI raz na jakiś czas "ulepsza" ten standard, np. można mówić o (według daty):
SQL-92, SQL:1999 , SQL:2008
a ostatni jest:
SQL:2011

wikipedia.en : https://en.wikipedia.org/wiki/SQL , w środku tego artykułu wypisana jest standaryzacja.

nauka "raw SQLa" to właśnie opanowanie sobie standardu ANSI, a później ewentualnie analiza kolejnych ulepszeń.

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