Przejście z postgresql na ms sql

Przejście z postgresql na ms sql
R1
  • Rejestracja:około 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:13
0

Witam,
zwracam się z zapytanie do osób, które miały mozliwość pracować w obu środowiskach wymienionych w temacie.
Dostałem propozycję ciekawej współpracy przy tworzeniu bd, będąc jeszcze na studiach, lecz jest ona w oprogramowaniu postgresql, a ja sercem pozostaje z ms sql'em. Pytanie brzmi czy nowe funkcje których nauczyłbym się w pracy w postgres'em ciężko mi będzie w przyszłości zamienić na pracę w ms sql'u. Pytam zarówno o kwestie administracyjne backupy etc jak i tworzenie kodu.
W przyszłości wiem, że chcę pracować w ms sql'u i zastanawiam się czy obecna oferta w jakimś stopniu może przyczynić się do rozwoju w tym zakresie, mimo innego oprogramowania

PA
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 12 godzin
  • Postów:3866
1

Na codzień pracuje z sql serverem, ale cyklicznie spotykam się z innymi silnikami. Moim zdaniem poznanie nowej bazy wyjdzie Ci na plus. Nie wzbogaci to Twojej znajomości MS, ale da niezłą perspektywę.

piotrpo
  • Rejestracja:ponad 7 lat
  • Ostatnio:3 dni
  • Postów:3277
0

Wszystkie SQL owe bazy danych są takie same - drobnostki składniowe, dodatkowe narzędzia, sterowniki się różnią. Administrowanie jest oczywiście zupełnie inne, ale jak się dowiesz kiedy używać b-tree, kiedy r-tree a kiedy indeksów klastrowych to będziesz mógł to wykorzystać na dowolnej platformie.

abrakadaber
abrakadaber
  • Rejestracja:ponad 12 lat
  • Ostatnio:7 miesięcy
  • Postów:6610
1
piotrpo napisał(a):

Wszystkie SQL owe bazy danych są takie same - drobnostki składniowe, dodatkowe narzędzia, sterowniki się różnią.
chyba kpisz albo nie miałeś styczności z czymś więcej niż select/update/delete w więcej niż jednej bazie. To tak jakbyś powiedział, że c# od c++, javy czy php różni się drobnostkami składniowymi i dodatkowymi narzędziami.

SQL jako sam SQL (czyli select/update/delete) jest w większości baz taki sam - w końcu to niby standard. Ale w jednej "dziwne" nazwy bierzesz w [] w innej w "" w jeszcze w ``. W jednej przy funkcjach agregujących pozostałe pola musisz umieścić w group by w innej nie. Różne bazy różnie mają rozwiązane autoinc. A to co wymieniłem to jest jak na razie "standard SQL". Następnie wykraczamy poza "standard" i mamy procedury, triggery (choćby fakt, że mssql nie ma wyzwalaczy before).

Prawdą jest, że jak znasz jedną bazę "na wylot" to poradzisz sobie z każdą (analogicznie jak jesteś dobry w jakimkolwiek języku obiektowym to poradzisz sobie w każdym innym) ale już problemy będziesz miał z zadaniami, które wymagają użycia specyficznych funkcji.

BTW uważam, że postgres jest dużo przyjemniejszy od mssqla :p.


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.
hyde
Moje subiektywne odczucie. Postgres to takie popłuczyny po Oracle czy Mssql. Zabawka do nauki dla studentów. Może się nie znam. Całe zawodowe życie robię z Oracle i SQL Server.
R1
  • Rejestracja:około 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:13
0

Wiadmo, że obie bazy się od siebie różnią, oczywiście jestem tego w pełni świadomy ;). Bardziej chodziło mi czy te różnice są tak zasadnicze, że fakt iż nauczę się teraz postgresa na bardziej zaawansowanym poziomie nie przyniesie żadnych korzyści podczas nauki SQL servera za pól roku/rok. Ciężko mi to dobrze wytłumaczyć ale w skrócie po tej pracy w postgresie chce ruszyć do pracy w ms sqlu i pytanie czy będzie mi łatwiej dzięki postgresowi, czy mimo wszystko będzie to nauka od 0 bo różnice są zasadnicze. Jak już wspomniałem mam na myśli zarówno aspekty języka proceduralnego jak również funkcji administracyjnych - np rodzaje backupów obu programów są kompletnie inne itp itd

edytowany 1x, ostatnio: rocket128
piotrpo
  • Rejestracja:ponad 7 lat
  • Ostatnio:3 dni
  • Postów:3277
0
abrakadaber napisał(a):

chyba kpisz albo nie miałeś styczności z czymś więcej niż select/update/delete w więcej niż jednej bazie. To tak jakbyś powiedział, że c# od c++, javy czy php różni się drobnostkami składniowymi i dodatkowymi narzędziami.

I po co te personalne wycieczki?

SQL jako sam SQL (czyli select/update/delete) jest w większości baz taki sam - w końcu to niby standard. Ale w jednej "dziwne" nazwy bierzesz w [] w innej w "" w jeszcze w ``. W jednej przy funkcjach agregujących pozostałe pola musisz umieścić w group by w innej nie. Różne bazy różnie mają rozwiązane autoinc. A to co wymieniłem to jest jak na razie "standard SQL".

Następnie wykraczamy poza "standard" i mamy procedury, triggery (choćby fakt, że mssql nie ma wyzwalaczy before).
No tak, to czy napiszemy "autoinc", czy użyjemy takiej lubi innej sekwencji robi wielka różnicę. Tak - jest różnica pomiędzy tSQL i plSQL i paroma innymi dialektami. Czasami nie masz jakiegoś typu wyzwalacza, albo inaczej działają transakcje, są dodatkowe funkcje, albo ich brakuje. Tylko że zabawa bazami danych zaczyna się od normalizacji, pisania zapytań i ogarnięcia co to jest wyzwalacz, widok, tabela, widok zmaterializowany, indeks i jakie są jego rodzaje, co to jest transakcja i poziom izolacji, czym są statystyki i do czego służą, a to że gdzieś się używa pojedynczych, podwójnych ciapek, czy kwadratowych nawiasów jest rzeczą kompletnie wtórną. Podobnie jak np. rzutowanie stringa na datę czy inne pierdoły które można odnaleźć w 5 minut w dokumentacji. Wprowadzony w mySQL błąd z klauzulą group by raczej nie przeszkodzi w używaniu tego silnika komuś, kto już wie że tak nie należy robić i dlaczego.

Marcin.Miga
  • Rejestracja:prawie 17 lat
  • Ostatnio:38 minut
  • Postów:2792
0

Taka drobnostka - spróbuj do pola autoinc wstawić własne wartości w dwóch tabelach. W obu bazach. W każdej sie da ale bardzo inaczej...

a_s_f
  • Rejestracja:ponad 22 lata
  • Ostatnio:20 dni
  • Lokalizacja:Rzeszów
0

@Panczo, @abrakadaber, @Marcin.Miga może trochę z innej strony zapytam, polecicie jakieś środowisko graficzne do postgresa? Bo jak dla mnie to przesiadka z SSMS na pgAdmina(a na niego chyba najczęściej pada wybór) to jest masakra, szczególnie na wersję 4 :D Czasem muszę jakieś proste selecty zapuścić na postgresie, a jak odpalam pgAdmin4 to mnie aż skręca :P Jak dla mnie jest bardzo toporny w porównaniu z Management Studio

edytowany 1x, ostatnio: a_s_f
abrakadaber
abrakadaber
PGAdmin 4 to jest proszenie się o dostanie w mordę - nie mam pojęcia co ci ludzie (którzy to wymyślili i napisali) biorą ale niech zmienią dilera bo dostają szajs. Jak od czasu do czasu to wg mnie najlepszy SQL Manager Lite for PostgreSQL, a jak "na poważnie" to wersja full.
Marcin.Miga
Ja używam 3. Juz od kilku lat. 4 ma koszmarne błędy.
R1
  • Rejestracja:około 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:13
0
piotrpo napisał(a):

No tak, to czy napiszemy "autoinc", czy użyjemy takiej lubi innej sekwencji robi wielka różnicę. Tak - jest różnica pomiędzy tSQL i plSQL i paroma innymi dialektami. Czasami nie masz jakiegoś typu wyzwalacza, albo inaczej działają transakcje, są dodatkowe funkcje, albo ich brakuje. Tylko że zabawa bazami danych zaczyna się od normalizacji, pisania zapytań i ogarnięcia co to jest wyzwalacz, widok, tabela, widok zmaterializowany, indeks i jakie są jego rodzaje, co to jest transakcja i poziom izolacji, czym są statystyki i do czego służą, a to że gdzieś się używa pojedynczych, podwójnych ciapek, czy kwadratowych nawiasów jest rzeczą kompletnie wtórną. Podobnie jak np. rzutowanie stringa na datę czy inne pierdoły które można odnaleźć w 5 minut w dokumentacji. Wprowadzony w mySQL błąd z klauzulą group by raczej nie przeszkodzi w używaniu tego silnika komuś, kto już wie że tak nie należy robić i dlaczego.

Nie chce wyjść na idiotę, ale nie znam połowy tych rzeczy które wymieniłeś, więc muszę spytać bo nie rozumiem do końca Twojej wypowiedzi. Opowiadasz się za stroną która mówi iż różnice między obiema bazami są diametralne czy też za taką która mówi, że przejście z 1 bazy na 2gą, mając w głowie wiedzę jak to działało w poprzedniej bazie i kiedy było używane, jest w miarę proste?

piotrpo
  • Rejestracja:ponad 7 lat
  • Ostatnio:3 dni
  • Postów:3277
0

Uważam, że jeśli pytasz o początki nauki z bazami danych to nie ma znaczenia jakiego konkretnego serwera używasz - to czego się nauczysz będzie przydatne na większości innych. Wyjątkiem jest wiedza jak się nazywa konkretna funkcja - np. na części serwerów pierwszy nie-null jest zwracany przez coalesce(.....) a na innych przez nvl(). Jeden serwer założy na kluczu głównym domyślnie indeks klastrowy a inny b-tree, czy masa innych drobiazgów. Tylko jeżeli wiesz jak działa baza danych, to opanowanie tych różnic to przeczytanie dobrej książki do konkretnego silnika. Liczbowo, w czasie nauki - 90% jest wspólne, 10% specyficzne dla konkretnych serwerów. Jeśli masz możliwość wzięcia udziału w ciekawym projekcie, w dziedzinie, która cię interesuje to bierz - na 100% ucząc się programować PostgreSQL nabędziesz wielu umiejętności przydatnych przydatnych w programowaniu na dowolny inny serwer SQL.

hyde
Coalesce w tsql to coś innego niż isnull w tsql i jeszcze coś innego niż nvl w Oracle. Dla początkujących czy ignorantów różnica jest niewielka.
R1
  • Rejestracja:około 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:13
0

Super, bardzo ale to bardzo raz jeszcze dziękuje wszystkim za odpowiedzi.
Pozdrawiam ;)

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)