Projektowanie bazy danych w pigułce
22:57
Пікірлер
@KlaudiaKud
@KlaudiaKud 2 күн бұрын
co jeśli w folderze dbhomeXE mam tylko jeden folder - jdk i nic poza tym?
@nieinformatyk
@nieinformatyk 2 күн бұрын
Zajrzyj do Sql Developera(strona główna) i wyszukaj sekcji load a tnsfile. Tam powinnna być ścieżka do pliku tnsnames.ora automatycznie wykryta przez bazę danych.
@anka67173
@anka67173 3 күн бұрын
Jestem teraz na 5 roku farmacji. Wiem, że ze znalezieniem pracy w aptece problemu nie będzie i lubię swój kierunek, jednak praca 8-12h dziennie na nogach do emerytury nieco mnie przeraża. Dlatego szukam dla siebie dodatkowej ścieżki kariery, która umożliwi mi pracę zdalną :) zaczęłam naukę SQL, za 2 lata planuję podyplomówkę z inżynierii danych równolegle z pracą w aptece. Zobaczymy jak to wyjdzie i czy faktycznie ta wizja wypali.
@nieinformatyk
@nieinformatyk 3 күн бұрын
Podoba mi się, że masz plan długookresowy, a nie oczekujesz oferty pracy po kilku tygodniach nauki. Z mojego punktu widzenia, jeśli ogarnęłaś farmakologię to z SQL nie będziesz miała większego problemu :)
@anka67173
@anka67173 2 күн бұрын
@@nieinformatyk dziękuję za słowa wsparcia ❤️
@t.g.2754
@t.g.2754 7 күн бұрын
W Informix sekwencje możemy mieć dzięki typom pól: serial i bigserial, ale tworząc je sprawdźmy jak dana wersja bazy zachowuje się gdy przekręcamy wartość max, bo różnie to bywa, a casami jest istotne. Pozdrawiam.
@nieinformatyk
@nieinformatyk 7 күн бұрын
Podobnie jest w RDBMS - ale SERIAL się już raczej nie używa, zamiast tego oznacza się kolumnę jako IDENTITY. Nie wiem jak w Informix, ale w niektórych systemach możesz w nawiasie podać konfigurację sekwencji, np. punkt startowy, wielkość inkrementacji, itd. :)
@RobieMVPAplikacjeKarolBocian
@RobieMVPAplikacjeKarolBocian 8 күн бұрын
Super, dzięki!
@patrykdychtanowski7222
@patrykdychtanowski7222 8 күн бұрын
Czy praca jako senior jest ciężka na codzień? Czy jak już się wszystko ogarnie po latach to nie siedzi się 8 godzin i nie szuka rozwiązania. Czy im wyższa odpowiedzialność tym cięższe codzienne zadania i pochłania dużo życia?
@nieinformatyk
@nieinformatyk 8 күн бұрын
Praca na każdym etapie ma swoje wyzwania, ale z mojego doświadczenia wynika, że im więcej potrafisz tym mniej czasu musisz poświecać na pracę, bo szybciej realizujesz zadania. Oczywiście należy tu odróżnić senior developera od team leadera, który musi dodatkowo zarządzać zespołem, wdzwaniać się na spotkania, prowadzić rozmowy o pracę, itd. To jeden z powodów, dla którego nie widzę siebie w przyszłości w takiej roli :)
@maciejszypula
@maciejszypula 7 күн бұрын
Zależy jaki zespół i rola, ale wydaje mi się że ciężko w przyrodzie znaleźć taki przypadek, w którym masz ten sam zakres obowiązków co wcześniej tylko robisz je szybciej. Rosną Twoje kompetencje i impact jaki masz na zespół również. Czyli będziesz mieć na głowie Juniorów, którym trzeba będzie ułożyć ścieżkę co i kiedy mają umieć i monitorować ich samodzielność. Do tego dochodzi architektura, czyli decyzje w jakim kierunku ma iść development, ustalanie frameworka dla developerów. Zapewne jak jakiś kjontroller wykryje ile faktycznie kosztujecie i "grzecznie poprosi" o obniżenie kosztów o 40% to jak to zrobić będzie na Twojej głowie, podobnie jak rozplanowanie pracy nad jakimkolwiek projektem typu migracja czegoś gdzieś, coś gdzieś zmieni tech stack. Dodatkowo będziesz musiał przed biznesem odpowiadać za to co nawywijają juniorzy :) No dużo się zmienia, bardziej zaczyna się polegać na soft skillach i techicznie operuje się trochę wyżej.
@pawemorawski367
@pawemorawski367 8 күн бұрын
Wejście z buta, dawno się tak nie uśmiałem 🤣🤣🤣 Kanał petarda💪, pozdrawiam 👋
@nieinformatyk
@nieinformatyk 8 күн бұрын
dzięki Paweł :)
@Cayman91
@Cayman91 10 күн бұрын
Pierwszy raz słyszę o funkcjach analitycznych i pierwszy raz widzę opcję Explain Plan. Bardzo fajna sprawa! Dzięki! :)
@nieinformatyk
@nieinformatyk 10 күн бұрын
Czyli materiał odpowiedni dla Ciebie, jeśli ilość nowych rzeczy Cię nie przytłacza :)
@Cayman91
@Cayman91 11 күн бұрын
Na studiach MySQL + Xampp. W 1 pracy MSSQL, a teraz OracleSQL. W międzyczasie gdzieś tam się napatoczył SQLite.
@ryzumaster
@ryzumaster 15 күн бұрын
Czy funkcje analityczne to to samo co funkcje okienkowe (window functions)?
@nieinformatyk
@nieinformatyk 15 күн бұрын
Tak, to dokładnie jedno i to samo :)
@ryzumaster
@ryzumaster 15 күн бұрын
@@nieinformatyk czy w tym drugim przykładzie możemy użyć zamiast funkcji rank( ) funkcje row_number? czy otrzymamy wtedy takie same wyniki? with p_rank as (select p.*, row_number() over (order by p.salary asc) as lp from pracownicy p )
@ryzumaster
@ryzumaster 16 күн бұрын
Fajnie wytłumaczone, dzięki :) był już albo czy będzie jakiś odcinek o wykorzystaniu over partition?
@nieinformatyk
@nieinformatyk 16 күн бұрын
Były już 2 odcinki o funkcjach analitycznych: kzbin.info/www/bejne/h5XXhKebZZqKiJI Jeśli interesuje Cię samo partycjonowanie to w kursie "Mistrz SQL" jest dedykowana lekcja na ten temat: mistrzsql.pl/ Moduł 14 Lekcja 4
@nelusia0609
@nelusia0609 18 күн бұрын
link do pobrania pliku niestety nie działa :(
@nieinformatyk
@nieinformatyk 18 күн бұрын
Tak, bo zmieniłem koncept na dzielnie sie plikami i zrezygnowałem z hostowania ich na serwerze. Jakiego pliku potrzebujesz? :)
@nelusia0609
@nelusia0609 18 күн бұрын
plik instalacyjny (pierwszy link w opisie), widziałam że jest do pobrania ze strony Oracle ale potrzeba rejestracji konta służbowego (?)
@ukaszk8405
@ukaszk8405 23 күн бұрын
Mam taki oto problem: DECLARE v_removed_box INTEGER; BEGIN FOR i IN (SELECT id, correct_box, user_choice, change_decision FROM game_options) LOOP LOOP v_removed_box := ROUND(dbms_random.value(1,3)); IF v_removed_box <> i.correct_box AND v_removed_box <> i.user_choice THEN EXIT; END IF; END LOOP; dbms_output.put_line(i.id||', '||i.correct.box||', '||i.user_choice||', '||v_removed_box); END LOOP; END; I pojawia się błąd: Error report - ORA-06550: line 15, column 44: PLS-00302: component 'CORRECT' must be declared ORA-06550: line 15, column 9: PL/SQL: Statement ignored 06550. 00000 - "line %s, column %s: %s" *Cause: Usually a PL/SQL compilation error. *Action:
@nieinformatyk
@nieinformatyk 23 күн бұрын
napisałeś i.correct.box zamiast i.correct_box
@ukaszk8405
@ukaszk8405 24 күн бұрын
U mnie wyskakuje kilka błędów. Krok po kroku robiłem jak pokazywałeś ale mimo to coś się popsuło Exception occurred during previous Data Pump Export wizard Stage: Unknown Title: Unknown MessageText: ORA-39002: invalid operation ORA-06512: at "SYS.DBMS_SYS_ERROR", line 79 ORA-06512: at "SYS.DBMS_DATAPUMP", line 4929 ORA-06512: at "SYS.DBMS_DATAPUMP", line 7012 ORA-06512: at line 11 dbms_datapump.get_status(1...) ORA-39002: invalid operation ORA-00439: feature not enabled: Dump File Data Compression
@nieinformatyk
@nieinformatyk 24 күн бұрын
wklej komunikat błędu do google :) wydaje się, że wykesportowałeś plik skompresowany. Wyeksportuj go w zwykłej postaci i powinno być ok: stackoverflow.com/questions/22932439/ora-00439-feature-not-enabled-basic-compression
@stefan.ocetkiewicz
@stefan.ocetkiewicz Ай бұрын
A, nawet nieźle wyszło, 7,5 pkt - przy czym nie znam prawie w ogóle Oracle'a. Wiadomo, z podstawami bym sobie i w nim poradził, ale specyficzne różnice między bazami znam wyłącznie między MySQL, Postgresem a MS SQL.
@nieinformatyk
@nieinformatyk Ай бұрын
Bardzo dobry wynik, gratuluję :) Różnice między bazami danych w gruncie rzeczy sprowadzają się do nazw typów danych i funkcji, zarządzania obiektami, uprawnieniami i transakcjami, czyli de facto wszystkim co bezpośrednio zależy od architektury systemu. Grupowanie danych, łączenie tabel, podzapytania czy funkcje analityczne działają niemal identycznie poza wyjątkami :)
@stefan.ocetkiewicz
@stefan.ocetkiewicz Ай бұрын
@@nieinformatyk dziękuję 🙂. Podchodziłem trochę z pewnymi obawami do "testu", bo wstyd by było nie zrobić choć z 50%, podczas gdy w tym roku mija mi 20 lat romansu z SQLem 😂. Ale jednak okazało się, że nadążam 🙈. Tak, te różnice nie są może wielkie, ale czasami potrafią dać w kość. Ja np nie przepadam za MySQL - jest strasznie ubogi w porównaniu z Postgres, a w pewnym zadaniu przejechałem się na jego brakach bardzo...
@RobieMVPAplikacjeKarolBocian
@RobieMVPAplikacjeKarolBocian Ай бұрын
Fajne!!! 🥰😍🤩 🥰😍🤩 🥰😍🤩 🥰😍🤩 🥰😍🤩
@patrykdychtanowski7222
@patrykdychtanowski7222 Ай бұрын
Super Odcinek jak zawsze, dzięki!
@nieinformatyk
@nieinformatyk Ай бұрын
Dziękuję :)
@TomaszTomzik
@TomaszTomzik Ай бұрын
Co do order by w widoku, oczywiście w Oracle można sortować ale też to może nie zadziałać... jednak zauważyłem, że przy skomplikowanych widokach i zapytaniach opartych o wielopoziomowe widoki znacznie przyspiesza ich działanie, Oracle ma jakiś problem gdy widoki nie zawierają w sobie sortowania. Nie rozpracowałem dlaczego, ale czasami to nie ma znaczenia a czasami ma. W Apex gdy definiujesz słowik z widoku jest opcja dla order by "Delivered order by from view"... i wtedy order by w widoku ma wielki sens;)
@nieinformatyk
@nieinformatyk Ай бұрын
Nie spotkałem takiej sytuacji, ale wierzę, że mogło tak być. Niektóre ścieżki dostępu wymagają sortowania zbiorów, więc być może na posortowanym zbiorze optymalizator wybrał inny algorytm dostępu. Ale to tylko moje domysły :)
@TomaszTomzik
@TomaszTomzik Ай бұрын
Okres czasu? co to jest?:D
@nieinformatyk
@nieinformatyk Ай бұрын
"Okres jest miarą czasu, tak samo jak np. bochenek jest miarą chleba."
@TomaszTomzik
@TomaszTomzik Ай бұрын
@@nieinformatyk dlatego się mówi "okres" nie trzeba dodawać "czasu" ;)
@nieinformatyk
@nieinformatyk Ай бұрын
@@TomaszTomzik Być może jest to masło maślane, tak jak cofanie się do tyłu :)
@TomaszTomzik
@TomaszTomzik Ай бұрын
Te zadania w znacznej mierze obejmują tzw. ubzdurzenia baz danych, których nie powinno być,. np. jak to z wyrównywaniem długości stringów przez dodanie spacji po prawej. Powiem więcej w znacznej większości zadań to są bugi baz danych.
@nieinformatyk
@nieinformatyk Ай бұрын
Gdyby to były bugi to już dawno byłyby usunięte :) Sposób porównywania stringów jest niecodzienny, ale jest to zwyczajnie opisane w dokumentacji: docs.oracle.com/en/database/oracle/oracle-database/23/sqlrf/Data-Type-Comparison-Rules.html#GUID-A114F1F4-A08D-4107-B679-323DC7FEA31C "With blank-padded semantics, if the two values have different lengths, then Oracle first adds blanks to the end of the shorter one so their lengths are equal. " Są to detale, które jednak warto znać, bo ułatwiają one debugowanie kodu.
@TomaszTomzik
@TomaszTomzik Ай бұрын
@@nieinformatyk są to bugi lub źle zaprojektowane rozwiązania a, że działają latami to nie nazywa się tego bugami. Wiem coś na ten temat.
@bartoszpawliczak2823
@bartoszpawliczak2823 Ай бұрын
Bardzo fajny materiał, 7,5 punktu (zad. 5, zad. 8, zad. 10 nie do końca dobrze, głównie przez te różnice w silnikach). Mam też kilka kwestii dyskusyjnych: w zadaniu nr 2 powinniśmy raczej znaleźć trzecią sumę i wartości >=, bo może być tak, że dwóch sprzedawców na taką samą sprzedaż. W zad. 6 - to zależy od typu daty, czy jest date, czy timestamp.
@nieinformatyk
@nieinformatyk Ай бұрын
Brawo! Bardzo dobry wynik :) Co do pkt. 2 to spodziewałem się tej niejedoznaczności, dlatego dodałem napis, że w sytuacji ex aeqou wybieramy dowolny rekord. Ad. 6 Zgadza się, aczkolwiek tu są też róznice między bazami danych. Bo w Oracle DATE przechowuje datę z dokładnością do sekund, w Postgres i Sql Server tylko do dni. Więc typ danych robiłby różnicę tylko w Postgres i Sql Server.
@maciejszypula
@maciejszypula Ай бұрын
zawsze daję młodym do napisania querkę która dodaje kolumnę z autonumeracją rosnąco po jakimś stringu. Żeby zobaczyć czy umieją sobie zrobić partycję i unikalność na podstawie więcej niż 1 kolumny. Musowo outer joiny.
@nieinformatyk
@nieinformatyk Ай бұрын
I funkcje analityczne :)
@marcinkusnierz5312
@marcinkusnierz5312 Ай бұрын
Siemka Darek! Trochę nie w temacie, jeśli chodzi o powyższy filmik, ale mam do Ciebie pytanko. W swoich materiałach często wspominasz, że optymalizacji BD można nauczyć się poprzez naukę administracji bazą danych oraz architektury. Jakie książki mógłbyś polecić o tej tematyce?
@nieinformatyk
@nieinformatyk Ай бұрын
Hej, to zależy z jakim systemem bazodanowym pracujesz. Podstaw optymalizacji SQL da się nauczyć w miarę uniwersalnie w oderwaniu od RDBMS, np. używanie UNION ALL zamiast UNION, czytanie planu zapytania czy przepisywanie OR-ów na UNION ALL. Bardziej zaawansowane techniki optymalizacji zależą jednak od architektury systemu i tutaj już wypadałoby sięgać po pozycji stricte systemu z którym pracujesz. Jeśli chodzi o Oracle to polecam: www.oreilly.com/library/view/cost-based-oracle-fundamentals/9781590596364/
@marcinkusnierz5312
@marcinkusnierz5312 Ай бұрын
No tak… nie doprecyzowałem o którą bazę mi chodzi, ale miałem na myśli właśnie Oracle, także trafiłeś z odpowiedzią. Dziękuję 😉
@przyczajonyhantel3672
@przyczajonyhantel3672 Ай бұрын
używałeś kiedyś w pracy abinitio?
@nieinformatyk
@nieinformatyk Ай бұрын
Nie, używam aktualnie ODI.
@91TheSebastian
@91TheSebastian 2 ай бұрын
podczas polecenia join chciałem zobaczyć czy to polecenie będzie mi działać również, jeśli wymysle inna nazwe w 2 linijce i zamienie kolejność w 3 tzn. select * from typy_produktów inner join typy_produktów2 on typy_produktów.typ_produktu=produkty.typ_produktu; i ku mojemu zdziwieniu wyskoczył błąd. ORA-00942: tabela lub perspektywa nie istnieje 00942. 00000 - "table or view does not exist" dlaczego tak się dzieje? czy jest to związane z relacją tzn. gdzie jest primary key i foreign key?
@nieinformatyk
@nieinformatyk 2 ай бұрын
Najprawdopodobniej nie stworzyłeś tabeli typy_produktów2. Nie wiem tylko jaki jest cel łączenia w tym przypadku tej samej tabeli ze sobą :)
@91TheSebastian
@91TheSebastian 2 ай бұрын
@@nieinformatyk właśnie o to chodzi że jak jest między nimi znak równości w 3 linijce kodu to byłem ciekawy, czy kolejność ma znaczenia(bo jak nie zamienię kolejności jak u Ciebie na filmie to działa wszystko). Może w momencie gdy się odwróci kolejność ich nie działa to, bo w tabeli produkty jest ponad 20 pozycji, a w tabeli typy_produktow2 są tylko typy więc baza nie ogarnia jak umieścić to na odwrót gdyż w drugiej tabeli jest zdecydowanie mniej rekordow, no ale już to zostawiłem i idę dalej. Dzięki za odpowiedź. Byłem po prostu ciekawy, jak baza zareaguje 😁 tabele mamy te same jak na filmie tylko zamieniłem kolejność poleceń. Zamiast połącz tabele produkty z typy_produktow to chciałem połączyć typy_produktow z produktami i myślałem, że wynik będzie ten sam.
@nieinformatyk
@nieinformatyk Ай бұрын
on typy_produktów.typ_produktu=produkty.typ_produktu; i on produkty.typ_produktu=typy_produktów.typ_produktu; działają dokładnie identycznie, nie ma między nimi różnic. a=B i B=a to też to samo :)
@91TheSebastian
@91TheSebastian Ай бұрын
@@nieinformatyk pewnie masz racje. Być może coś źle napisałem w innym wierszu. Przestudiuje jeszcze raz tą komendę. Dzięki za zaangażowanie w odpowiedzi. Na youtube jest wiele kursów po ang i polsku, ale wybrałem właśnie Twój na początek i bardzo jestem zadowolony. Jestem już na 12 odcinku i na pewno skończe go oraz następny. Mimo, że to już 5 lat mineło, to nadal jest aktualny. Jesteś niesamowity. Pozdrawiam :)
@pawewiatrak5684
@pawewiatrak5684 2 ай бұрын
a potem się ludzie dziwią, że wolą rozmawiać z chatemGPT niż z ludźmi na grupach/forach
@nieinformatyk
@nieinformatyk 2 ай бұрын
AI też potrafi być niemiłe :)
@91TheSebastian
@91TheSebastian 2 ай бұрын
kiedy wpisuje testowe select "ORA-00942: tabela lub perspektywa nie istnieje. co to może oznaczać? 00942. 00000 - "table or view does not exist" *Cause: *Action: Error at Line: 1 Column: 15"
@nieinformatyk
@nieinformatyk 2 ай бұрын
jakie dokładnie polecenie wpisujesz? oznacza to, że nie istnieje taka tabela(nie stworzyłeś jej) w tym schemacie lub nie masz do niej uprawnień
@91TheSebastian
@91TheSebastian 2 ай бұрын
​@@nieinformatyk Problem polega na tym, że nie mam niestety jeszcze gotowego środowiska pracy. 1. Zainstalowałem Oracle 21c oraz sql developer 23.1 2. Stworzyłem konto "System" choć miałem problemy, żeby stworzyć następne nowe konto. W nowej wersji po wciśnieciu zielonego plusika wpisalem name(hr) oraz username(system) i password(takie jak przy instalacji) i dopiero wtedy się udało stworzyć nowe konto. 3. Mimo to wpisane w filmiku komendy mi nie działają. Jak np. wpiszę w systemie "alter user hr account unlock" to wyskakuje informacja, że takie konto nie istnieje. W nowym utworzonym koncie chciałem wpisać komendę z filmiku, testującą czy działa mi wszystko, "select * from regions;" to wyskakuje mi błąd: "ORA-00942: tabela lub perspektywa nie istnieje 00942. 00000 - "table or view does not exist" *Cause: *Action: Error at Line: 1 Column: 15" 4. Myślałem, że może muszę zrobić to co pokazaleś w innym filmiku tzn. znaleźć "tnsnames.ora" i go zedytować, ale na pokazanej przez Ciebie ścieżce nie ma tego pliku. Plik o takiej nazwie istnieje jak się wejdzie dalej w folder -> sample widoczny na końcu na video, ale tam składnia jest inna niż to co przedstawione na youtube. 5. Zastanawiam się, co mogę zrobić żeby przygotować to środowisko. a może coś źle zainstalowałem? Zwracałem uwagę na odpowiednie wymagania sprzętowe. 6. Co ciekawe, jak wpiszę inną komendę "select * from v$version;' to pokazuje mi, że normalnie mam zainstaowane 21c i niby wszystko jest ok. Szukałem w necie odpowiedzi jak to ogarnąć i stanąłem w miejscu :( Byłbym mega wdzięczny, jakbyś mnie naprowadził, co mogę z tym zrobić. Mam nadzieje, że nie opisałem tego zbyt chaotycznie
@91TheSebastian
@91TheSebastian 2 ай бұрын
@@nieinformatyk okazało się, że nie mam takiej samej biblioteczki, jak ta, którą pokazujesz na filmie, ale są inne. Problem rozwiązany :) dzieki za szybką odpowiedź. Swoją drogą jestem już na 6 odcinku. Pozdrawiam :)!!
@jakub8186
@jakub8186 2 ай бұрын
te informacje nie pokrywają się w całości z poprzednim filmikiem o normalizacji
@nieinformatyk
@nieinformatyk 2 ай бұрын
Zgadza się, dlatego przesłuchaj uważnie wstęp do tego nagrania i przypięty komentarz oraz opis poprzedniego nagrania. To jest powód, dla którego nagrałem ten materiał :)
@jakub8186
@jakub8186 2 ай бұрын
czy pierwsza postać normalna dopuszcza wiele tabel?
@nieinformatyk
@nieinformatyk 2 ай бұрын
Pierwsza postać normalna określa de facto strukturę pojedynczej tabeli. Nie ma obowiązku posiadania w bazie więcej niż 1 tabeli, ale taka sytuacja jest wyłącznie hipotetyczna :)
@KrzysztofWasilewski-ew7ky
@KrzysztofWasilewski-ew7ky 2 ай бұрын
Mega
@dariusz_82
@dariusz_82 2 ай бұрын
plpgsql nie ma INSERTING jako warunek mam tylko INSERT który wyświetla błąd "ERROR: column "insert" does not exist", jak to można zapisać w postgresql?
@nieinformatyk
@nieinformatyk 2 ай бұрын
Wujek Google twym przyjacielem :) stackoverflow.com/questions/35574517/what-is-postgresql-equivalent-of-inserting-from-oracle
@fenek1855
@fenek1855 3 ай бұрын
Bardzo fajnie wytłumaczone. Super film !
@nieinformatyk
@nieinformatyk 3 ай бұрын
Dzięki;)
@kikson8510
@kikson8510 3 ай бұрын
Jak teraz zainstalowacnową bazę? Zainstalowalem niby Oracle Database XE ale nie mogę włączyć usług
@nieinformatyk
@nieinformatyk 3 ай бұрын
Instalacja po odinstalowaniu, jest dokładnie taka sama jak przed. Jaki masz komunikat błędu? Ustaw autostart usługi, może to pomoże.
@arekj199576
@arekj199576 3 ай бұрын
20:20 I co tutaj daje ten kursor? W zwykłym selekcie mogę ustawić id konkretnych departamentów, ale mówisz, że czasami możemy chcieć updateować np. 2,5,7 ok. Ale w czym pomaga nam kursor skoro wybrałeś 5 pierwszych (i na marginesie, w czym to jest lepsze niż select top5?)? 7 nie zostanie powiększony, a 1,3,4 zostaną niepotrzebnie. W jaki sposób kursor ma tu pomagać? W jaki sposób ma pomóc w wyborze konkretnych rekordów?
@nieinformatyk
@nieinformatyk 3 ай бұрын
Kursor używa się z kilku różnych powodów - najczęstszym jest potrzeba by wielokrotnie w jednym programie wykonywać ten sam SELECT. Wtedy otwieramy go 2 razy, ale deklaracja jest tylko jedna. Przykład w nagraniu jest uproszczony. Mówiąc, że możesz updatować wybrane rekordy chodziło mi o to, że czasem istnieje logika, że to czy updatujesz dany rekord zależy od wyniku jakieś kalkulacji na poprzednim rekordzie, np. rekord o id=2 updatujesz jeśli dla rekordu o id=1 udało/nieudało Ci się znaleźć danych w innej tabeli. TOP5 nic Ci tu nie da, bo wybierzesz 5 losowych rekordów. Druga zaletą kursora jest więc kontrola nad przetwarzaniem danych rekord po rekordzie.
@Zbyszek-pt7vl
@Zbyszek-pt7vl 3 ай бұрын
Gratuluję zdolności nauczania. Bardzo klarownie, bez pomijania kroków pośrednich. Moją uwagę zwróciło to, że Pan dodawał FK na dwa różne sposoby: alter table departamenty add constraint fk_dep_pracownik foreign key(id_kierownika) references pracownicy(id); a w odcinku 18: alter table dostawcy add forreign key (kod_rodzaju_srodka_transportu) references rodzaje_srodkow_transportu(kod); Ja dodałem pierwszym sposobem i działa (sprawdziłem selectem z joinem). Zauważyłem, że dodanie constrainta wg odcinka 18 powoduje, że to SQL Developer nadaje mu swoją nazwę. A może jednak jest jakaś znacząca różnica? Gdyby Pan znalazł kiedyś chwilę, to prosiłbym o odpowiedź. Pozdrawiam.
@nieinformatyk
@nieinformatyk 3 ай бұрын
Dzięki :) Ten pierwszy sposób jest zdecydowanie lepszy, ponieważ dobrą praktyką jest jawne nadawanie nazw constraintów - to jedyna różnica między tymi poleceniami.
@dariusz_82
@dariusz_82 3 ай бұрын
Ja używam postgresql i jak Ty uzupełniając rekord event_date używasz sysdate to ja próbuje użyć TIMESTAMP, TIME, DATA i dla każdej takiej zmiany mam komunikat 'column "time" does not exist'. W tabeli pracownicy_archiwum odpowiednio typ kolumny też zmieniam dla w/w typu i ciagle to samo. Masz może jakiś pomysł w jaki sposób zadeklarować to pole?
@nieinformatyk
@nieinformatyk 3 ай бұрын
datę w Postgres zwraca się jako CURRENT_DATE albo CURRENT_TIMESTAMP :)
@dariusz_82
@dariusz_82 3 ай бұрын
@@nieinformatyk Dziękuje :)
@zielikfighter8590
@zielikfighter8590 3 ай бұрын
5
@nieinformatyk
@nieinformatyk 3 ай бұрын
dzięki :)
@walerypapiez4535
@walerypapiez4535 3 ай бұрын
Jak zwykle świetny i profesjonalny materiał. Zapewne wiele osób zdało sobie właśnie sprawę, że zajmuję się na codzień procesami ETL w swojej pracy. Dziękuję i pozdrawiam serdecznie.
@nieinformatyk
@nieinformatyk 3 ай бұрын
dzięki za miłe słowa :)
@AndrzejMazurEznawca
@AndrzejMazurEznawca 4 ай бұрын
Czemu nie ma nic o mySql? oglądałbym ;)
@nieinformatyk
@nieinformatyk 4 ай бұрын
Nie da się nagrać o wszystkim :)
@mariuszbak1078
@mariuszbak1078 4 ай бұрын
5 :)
@nieinformatyk
@nieinformatyk 4 ай бұрын
dzięki :)
@fuukowatty9817
@fuukowatty9817 4 ай бұрын
Świetny materiał, bardzo dużo mi rozjaśnił o tym jak transakcje działa oraz po co są
@nieinformatyk
@nieinformatyk 4 ай бұрын
Super, cieszę się, że video się przydało ;)
@robderrt
@robderrt 4 ай бұрын
Dobrze wytłumaczone.
@nieinformatyk
@nieinformatyk 4 ай бұрын
Dzięki ;)
@Shinigami_2029
@Shinigami_2029 4 ай бұрын
Chodzę do technikum i mam jutro poprawę kartkówki z normalizacji. Kompletnie nie rozumiałem tematu. Dzięki tobie zaczynam to rozumieć. Dzięki!
@nieinformatyk
@nieinformatyk 4 ай бұрын
Powodzenia jutro :)
@Shinigami_2029
@Shinigami_2029 4 ай бұрын
@@nieinformatyk Dzięki!
@crixus3625
@crixus3625 4 ай бұрын
Dlaczego programiste ETL nazywasz programistą hurtowni danych? Hurtowania danych to system/y w których przechowywane są dane firmy z różnych systemów a ETL to proces wydobywania, przekształcania i ładowania danych z systemu/ów do innego/ych systemu/ów. ETL może się odnosić do jednorazowej migracji danych z systemu A do systemu B i wcale nie musi to być hurtownia danych.
@nieinformatyk
@nieinformatyk 4 ай бұрын
Ponieważ zazwyczaj ETL Developer i Data Warehouse Developer to synonimy i oznaczają ten sam zestaw obowiązków.
@KarolZarzecki
@KarolZarzecki 4 ай бұрын
Cześć, pytanie 5-te, jak się nazywa ta nowa funkcja w SQL Server? ta, która pozwala uniknąć dublowania definicji okna
@nieinformatyk
@nieinformatyk 4 ай бұрын
Nazywa się tak samo :) learn.microsoft.com/en-us/sql/t-sql/queries/select-window-transact-sql?view=sql-server-ver16
@kamillo27
@kamillo27 4 ай бұрын
Świetne są te twoje filmiki! :) Język prosty, przełożenia na rzeczywistość. Jestem pod wrażeniem. Dzięki
@nieinformatyk
@nieinformatyk 4 ай бұрын
Dzięki Kamil :) Miło słyszeć.
@przemeklelewski7608
@przemeklelewski7608 5 ай бұрын
oglądam któryś Twój film z kolei i wg mnie przekazujesz wiedzę bardzo przystępnie. Dzięki.
@nieinformatyk
@nieinformatyk 5 ай бұрын
dziękuję za miłe słowa :)
@RobieMVPAplikacjeKarolBocian
@RobieMVPAplikacjeKarolBocian 5 ай бұрын
Jakie są różnice między złączami INNER JOIN, LEFT JOIN i RIGHT JOIN? 🤔👨‍💻
@nieinformatyk
@nieinformatyk 5 ай бұрын
W tym nagraniu znajdziesz odpowiedź :) kzbin.info/www/bejne/fJXQqn6gZpeJrJY
@RobieMVPAplikacjeKarolBocian
@RobieMVPAplikacjeKarolBocian 5 ай бұрын
@@nieinformatyk dziękuję<3
@marty_nezz
@marty_nezz 5 ай бұрын
A jeśli nie mam firmy to jak mam się zalogować do strony Oracle?
@_jakub_5173
@_jakub_5173 5 ай бұрын
Cześć, pytanie ciekawostka. Jak działa przycisk task canceled? W przypadku selecta nie robi nic, w przypadku zmian rozłącza sesje? Ale z rollbackiek czy bez rollbacku?
@nieinformatyk
@nieinformatyk 5 ай бұрын
Chodzi Ci o przerywanie wykonywanego zapytania? Dobre pytanie. Nie testowałem jak to zadziała w transakcji, bo rzadko używam tej opcji :) Jak zrobisz test to daj znać.
@arnaVck
@arnaVck 5 ай бұрын
Cześć. A jaką książke polecisz? Dla mnie papier, to papier ;)
@nieinformatyk
@nieinformatyk 5 ай бұрын
Ja też lubię książki papierowe :) Zależy co dokładnie Cię interesuje? Wprowadzenie do baz danych? helion.pl/ksiazki/oracle-database-12c-i-sql-programowanie-jason-price,ord12p.htm Kompendium wiedzy o PL/SQL? helion.pl/ksiazki/oracle-pl-sql-programming-6th-edition-steven-feuerstein-bill-pribyl,e_e055.htm#format/e Projektowanie baz danych? helion.pl/ksiazki/projektowanie-baz-danych-dla-kazdego-przewodnik-krok-po-kroku-michael-j-hernandez,projbd.htm#format/e Hurtownie danych i ETL? www.empik.com/kimball-s-data-warehouse-toolkit-classics-kimball-ralph,p1146866808,ksiazka-p Zbyt ogólne pytanie bym mógł jednoznacznie odpowiedzieć :)
@arnaVck
@arnaVck 5 ай бұрын
czyli programowanie w PL-SQL to tak rozległy temat? Jeżeli nie, to odpowiedziałbym po prostu: programowanie w wyżej wymienionym języku@@nieinformatyk
@nieinformatyk
@nieinformatyk 5 ай бұрын
@@arnaVck Zacznij więc od książki Steve Fuerstein. Nie jest to jakiś bardzo rozległy temat, ale by programować w PL/SQL musisz mieć podstawy baz danych oraz podstawy SQL :)