5 pytań rekrutacyjnych dla programisty SQL + odpowiedzi #56

Поделиться
HTML-код
  • Опубликовано: 22 май 2020
  • Cześć,
    Jeśli chcesz zmienić pracę, zdobyłeś już trochę umiejętności to czas sprawdzić czy umiesz wystarczająco dużo. Zapraszam do zapoznania się z 5 najczęściej zadawanymi pytaniami na rozmowie o pracę dla sql developera.
    Zapisy na kurs: www.nieinformatyk.pl/
    Blog: www.nieinformatyk.pl/blog
    Facebook: / nieinformatyk
    Instagram: / nieinformatyk
    Twitter: / nieinformatyk
    Zasubskrybuj mój kanał: ruclips.net/user/nieinformatyk...
    #sql #rekrutacja #pytania
    Witaj na moim kanale :)
    Jestem programistą baz danych Oracle oraz developerem hurtownii danych (ETL). W tym miejscu dzielę się z oglądającymi wiedzą dotyczącą relacyjnych baz danych, praktycznych technik pisania SQL oraz optymalizacji kodu PL/SQL. Jeśli chcesz zdobyć praktyczną i rzetelną więdzę o bazach danych to trafiłeś na właściwe miejsce.
    Więcej informacji o baza danych znajdziesz zupełnie ZA DARMO na www.nieinformatyk.pl
  • НаукаНаука

Комментарии • 53

  • @grzegorzko55
    @grzegorzko55 3 года назад +7

    Robisz super robotę.

  • @albertnowak7512
    @albertnowak7512 Год назад +1

    Dobre filmy, kręnć więcej.

  • @adriansajdak535
    @adriansajdak535 3 года назад +2

    Fajny kanał :) Mam dwa pytania:
    1) Przy aplikacji na programistę SQL (mam na myśli juniora, pierwszą pracę), wymagane jest jakieś portfolio projektów? Jeśli tak to jakie to mogą być projekty?
    2) Jakie mniej więcej są widełki dla początkującego programisty SQL? Tj. jaką kwotę mógłbym zażądać jako żółtodziób nie przesadzając ani w dół, ani w górę? 3 do 4 tys brutto byłoby odpowiednią kwotą?

    • @nieinformatyk
      @nieinformatyk  3 года назад +1

      1) Ja nigdy nie byłem o to pytany. Jeśli chcesz się wyróżnić to stworzyłbym przykładowy model bazy danych - lekcja 10 kursu (jeśli masz dostęp) nieinformatyk.pl/kurs/287/poznaj-swiat-baz-danych
      2) Na wynagrodzenie wpływa wiele rzeczy - trudno zgadywać. 3-4 tys z pewnością wydają się być kwotą nieprzesadzoną, jeśli wziąć pod uwagę wyłącznie średnią zarobków programistów :)

    • @adriansajdak535
      @adriansajdak535 3 года назад

      @@nieinformatyk Dzięki wielkie za odpowiedź :) Co do drugiego pytania to wiem, że odpowiedź jest trudna. Generalnie miałem na myśli mniej więcej sensowne widełki w których warto by negocjować pierwsze wynagrodzenie, przy jednoczesnym nieodstraszeniu potencjalnego pracodawcy. ;)

    • @Paulina1561
      @Paulina1561 2 года назад

      @@adriansajdak535 i jak Ci się udało? :)

  • @esponplaygames
    @esponplaygames 3 года назад +2

    dobry gościu z ciebie

  • @poklask
    @poklask 4 года назад

    TRIGGER działa :)

  • @MeggaFelipe
    @MeggaFelipe 3 года назад

    #zasieg

  • @ukaszpytel334
    @ukaszpytel334 4 года назад

    6:03 Nie mogę się zgodzić. Na poziomie REPEATABLE READ blokujesz część tabeli za pomocą SELECT do czasu zakończenia transakcji. Wtedy żaden inny użytkownik nie może nie może zmienić zablokowanych danych za pomocą update/delete. Także mimo, że SELECT to tylko odczyt to można doprowadzić do blokowania tabeli. (MSSQL)

    • @nieinformatyk
      @nieinformatyk  4 года назад

      Dziękuje za uwagę. Zacznę częściej wspominać o jakiej implementacji mówię lub będę mówił też o rozwiązaniach z innych silników to unikniemy takich nieporozumień :)

    • @ukaszpytel334
      @ukaszpytel334 4 года назад

      @@nieinformatyk Ale chyba w Oracle Repetable powinno zadziałać tak samo :)

    • @nieinformatyk
      @nieinformatyk  4 года назад

      Czytanie danych w Oracle nie powoduje żadnych blokad - chyba, że jawnie będziesz chciał to zrobić pisząc select for update.

    • @ukaszpytel334
      @ukaszpytel334 4 года назад

      @@nieinformatyk Nie no, nie możliwe :)
      Zrób taki teścik:
      Włącz poziom izolacji Repeatable Read w jednej sesji. Zrób begin tran potem Select * From Tabela
      W drugiej sesji zrób update na którąkolwiek odczytaną daną we wcześniejszym selecie. Zobaczysz, że nie uda Ci się tego zrobić dopóki nie zacommitujesz wcześniejszego selecta :) (Uprzedzam, że insert się wykona, to tzw dane fantomowe).
      Ten poziom zapewnia powtarzalny odczyt w ramach transakcji :)
      Niestety nie mam środowiska u siebie oraclowego, bo sam bym to sprawdził :)

    • @nieinformatyk
      @nieinformatyk  4 года назад

      @@ukaszpytel334 Możliwe.
      Każda baza ma kilka poziomów izolacji(standard ANSI definiuje 4, ale nie wszystkie z nich obowiązują w każdej implementacji). Niektóre implementacje mają poziomy izolacji jakich nie ma w standardzie. Domyślny poziom izolacji w bazie Oracle to read commited i on nie prowadzi do blokad podczas selecta. Gdybym ustawił inny poziom izolacji to oczywiście mechanizm mógłby się zachować tak jak mówisz, ale to nie jest domyślne zachowanie.
      Poza wyjątkiem(select for update oraz zmianą poziomu izolacji) select NIE BLOKUJE ŻADNYCH DANYCH - poczytaj o undo data :)

  • @guu6365
    @guu6365 4 года назад +1

    Czym rożni się programista sql od analityka baz danych? Czym rozni się sama praca, jak i zakres materiału nauki do tych stanowisk?

    • @nieinformatyk
      @nieinformatyk  4 года назад

      Termin "programista SQL" to trochę gra słów - chcąc się przyczepić to SQL nie jest językiem programowania tylko językiem zapytań :) O analityku baz danych nigdy nie słyszałem. może chodzi Ci o analityka biznesowego/systemowego?
      W skrócie: analityk potrzebuje wiedzy biznesowej + podstaw SQL. Programista baz danych potrzebuje podstawowej wiedzy biznesowej + SQL + języka programowania w bazach danych(PL/SQL, T-SQL).

    • @guu6365
      @guu6365 4 года назад

      @@nieinformatyk Jak nazywa się stanowisku, na ktorym uzywa się glownie sql i excela?

    • @kamilbujanowsi2932
      @kamilbujanowsi2932 10 месяцев назад

      @@guu6365 analityk danych/data analyst

  • @Miviene13
    @Miviene13 7 месяцев назад

    Aż prosi się na końcu odcinka dodać prośbę aby każdy po rozmowie się pochwalił czy któreś z tych pytań (i które jeśli tak) padło na rozmowie. :)
    Jak nie zapomnę to napiszę jak było u mnie.. 😅

    • @nieinformatyk
      @nieinformatyk  7 месяцев назад +1

      Mam pomysł by zrobić bazę wiedzy z pytań rekrutacyjnych z SQL. Jak czas pozwoli to pomysł zrealizuję :)
      Być może będzie to bonus do: promo.mistrzsql.pl/

    • @Miviene13
      @Miviene13 7 месяцев назад

      No to tak: stanowisko junior, żadnego pytania 😅aczkolwiek pojawiło się zadanie, w którym trzeba było użyć having zamiast where (funkcja SUM), także poniekąd sprawdziło się pytanie z innego odc. jednak polecam każdemu uwzględnić sprawdzanie tej wiedzy nie w pytaniu bezpośrednim a już w praktyce pisząc jakieś zapytanie, mnie to niestety zgubiło choć na samo pytanie czym się różni where od having bym odpowiedziała.😉

  • @grzegorzko55
    @grzegorzko55 4 года назад +1

    Na Jakie zarobki może liczyć doświadczony SQL developer?

    • @nieinformatyk
      @nieinformatyk  4 года назад +2

      To zależy od wielu czynników: firmy, miasta, rodzaju umowy, lat doświadczenia :) Z moich osobistych obserwacji uważam, że "na czysto" możesz liczyć na wynagrodzenie od 6 000 do 15 000 zł miesięcznie. Duże widełki, bo bardzo ogólne pytanie :)

    • @grzegorzko55
      @grzegorzko55 4 года назад

      @@nieinformatyk Chodziło mi o taką osobę która pracuje w warszawie i ma 5 lat doświadczenia jako sql developer.

    • @nieinformatyk
      @nieinformatyk  4 года назад +1

      @@grzegorzko55 obstawiałbym 8 000 -13 000 na rękę, najwięcej jest tych w okolicy 10 000/11 000

    • @ukaszpytel334
      @ukaszpytel334 4 года назад

      Warto dodać o jakiej formie zatrudnienia mowa :)

  • @ukaszpytel334
    @ukaszpytel334 4 года назад

    9:45 W MSSQL wycofasz truncate za pomocą rollback wraz z kompletem danych. Dopisz proszę, że mówisz o Oracle bo poślesz jakiegoś studenciaka na rozmowę i zawali temat ^^
    Pozdrawiam

    • @nieinformatyk
      @nieinformatyk  4 года назад

      Nie tylko Oracle tak działa, Mysql też nie wycofa truncate. Dzięki za spostrzegawczość, zwrócę na to uwagę w kolejnych nagraniach.

    • @ukaszpytel334
      @ukaszpytel334 4 года назад

      ​@@nieinformatyk Też kiedyś byłem w szoku gdy sprawdziłem i cofnęło trana :)

    • @nieinformatyk
      @nieinformatyk  4 года назад

      Co system to rozwiązanie, wychodzi na to, że trzeba poznać je wszystkie :)

  • @houdini4131
    @houdini4131 4 года назад +1

    Dostałbym jeszcze, że delete w porównaniu do truncate nie zeruje ID

    • @nieinformatyk
      @nieinformatyk  4 года назад +3

      Wyjaśnisz co znaczy zerować id, bo nie rozumiem? Jeśli wartość jest nadawana z sekwencji to nigdy nie zwraca 2 razy tej samej liczby

    • @kamilnowak9750
      @kamilnowak9750 4 года назад +1

      @@nieinformatyk nie wiem o czym piszesz, ale koledze chodziło o:
      ALTER TABLE my_table AUTO_INCREMENT=2000
      I później masz pusta tabele coś dodajesz a tu pierwszy rekord ma numer pół miliona

    • @nieinformatyk
      @nieinformatyk  4 года назад +4

      @@kamilnowak9750
      No to zróbmy test :)
      1. DELETE
      CREATE TABLE test (
      a number generated always as identity
      , b varchar2(1)
      );
      INSERT INTO test (b) VALUES ('a');
      SELECT *
      FROM test;
      wynik: 1 a
      delete from test;
      commit;
      SELECT *
      FROM test;
      --wynik: brak wyników, tzn. pusta tabela
      INSERT INTO test (b) VALUES ('a');
      SELECT *
      FROM test;
      wynik: 2 a
      DROP TABLE test;
      WNIOSEK: delete nie wyzerował identyfikatora, bo kolejne dodanie rekordu wstawiło wartość 2 a nie 1
      2. TRUNCATE
      CREATE TABLE test (
      a number generated always as identity
      , b varchar2(1)
      );
      INSERT INTO test (b) VALUES ('a');
      SELECT *
      FROM test;
      wyniki: 1 a
      truncate table test;
      SELECT *
      FROM test;
      wyniki: brak rekordów
      INSERT INTO test (b) VALUES ('a');
      SELECT *
      FROM test;
      wyniki: 2 a
      WNIOSEK: Truncate działa tak samo jak DELETE.
      Może to kwestia implementacji. Mówiłeś o mysql czy Mssql? Ten przykład to Oracle :)

  • @Crystian83
    @Crystian83 4 месяца назад

    bylo by lepiej jakby kazdy punkt byl rozpisany i odpowiedziany na tablicy

  • @kamilnowak9750
    @kamilnowak9750 4 года назад

    A Ty piszesz też coś w pracy w jakimś języku? W sensie w javie, c++? Bo tak szczerze wszystko o czym mówisz muszę robić jako programista. Przy czym bazy to malutki ułamek

    • @nieinformatyk
      @nieinformatyk  4 года назад +1

      Tak, w PL/SQL, ale nie wiem czy się liczy do Twojej kategorii języków programowania. W przyszłą sobotę o 10.00 pojawi się odcinek, który może Cię zainteresować. Wyjaśniam tam czym się zajmuję oraz co ważniejsze opowiadam o roli baz danych w systemach informatycznych. Bazodanowiec to niszowy fragment rynku IT :)

    • @kamilnowak9750
      @kamilnowak9750 4 года назад

      @@nieinformatyk PL/SQL nie liczy się. Hibernate wspiera PL/SQL. Miałem na myśli jave z JPA, C# z link, pythona czy C++. To że piszesz procedurę w SQL, programowaniem bym nie nazwał

    • @kamilnowak9750
      @kamilnowak9750 4 года назад

      Dane się wyciąga z bazy, albo i kilku roznych i później pisze program który je analizuje, odpala jakieś algorytmy, sztuczne inteligencję, czy nawet najprostsza grafana i wypasione wykresy dla biznesu z raportami w pdf i pięknymi grafikami oczywiście generowanymi automatycznie przez kod w języku programowania i specjalnej bibliotece, mam znajomych co u mnie tylko tym się zajmowali

    • @kamilnowak9750
      @kamilnowak9750 4 года назад

      Ale nawet mnie często ktoś prosi o jakiś raport, to wyciągam wszystko przez jave, parsuje filtruje i zapisuje do pliku

    • @kamilnowak9750
      @kamilnowak9750 4 года назад

      Nie wyobrażam sobie tego robić z PL/SQL ale może jestem ignorantem i nie znam dobrze baz