CREATE TABLE zadanko!

Zgodnie z obrazkiem utwórz tabele i wrzuć do nich dane. 
Moje rozwiązanie i dane transakcji, które możesz wrzucić ze skryptu -  dostępne pod linką. 

https://drive.google.com/drive/folders/0B0DNBH1DOPAfVmxkRFJCRVpPUjg?usp=sharing



Create table na MS SQL Serverze, tu nie ma ewolucji, jest kreacjionizm :-)

Co prawda jako zwykły użytkownik rzadko ma się uprawnienia do definiowania tabel, ale warto wiedzieć jak powstają. Tabela to podstawowy obiekt bazy, w niej są wiersze, ale nim w tabeli pojawia się się wiersze (dane) to tabelę definiujemy, każda tabela ma kolumny, a w kolumnie przechowywany są dane tylko jednego typu. 
Przykład definiowania tabeli, wrzucenie wierszy, pokaz kilku możliwości definiowania tabeli by zapewnić sobie dobre dane w przyszłości na obrazku i do poćwiczenia. 


Use zielony i drop… to po to by pracować na swoim schemacie i usunąć tabelkę, jeżeli już istnieje.
Najpierw definicja tabeli. Definiuje się ją przy użyciu słów kluczowych CREATE TABLE i nazwa tabeli (1).
W nawiasach następnie nazwy kolumn, każda kolumna musi mieć określony/wskazany typ danych jakie będą w danej kolumnie przechowywane.

I tak:

2 – id, tu automatycznie będzie nadawana wartość typu INT, począwszy od 100000, zwiększana o 1, jako klucz podstawowy, taki bajer jest na MS SQL Serverze,
3 – nazwa, tu będą znaki, nie może być NULL, jak nie określisz nazwy to wiersz nie zostanie zapisany,
4 – w tej kolumnie marka, ale tylko takie marki, jakie występują w obcej tabeli, w kolumnie marka, musi to być jedna z marek tam występujących,
5 – podatek, jak nic nie podasz, do DEFAULT będzie 0.23
6 – cena_netto, nie może być większa niż 2000, to tak się robi, nie zapiszesz wiersza z ceną ponad 2000,
7 – znowu znaki,
8 – kod producenta, to chodzi jaki kod został nadany części przez producenta, musi być unikalny, nie może być wierszy dwóch, które mają identyczną wartość.
No i przy pomocy INSERT zapisuję dane do tabeli.
Każdy nieudany insert zużywa wartość w ID, stąd to co widzę na obrazku teraz, po wrzuceniu trzech wierszy, to ma ID nie po kolei.
Były nieudane próby zapisania danych do tabelki :-)

 tu kod do poćwiczenia: 


 

Na szkolenie w grudniu 2018

Na szkolenie w grudniu 2018:
Po linką poniżej są wersje instalacyjne MS SQL Server 2014 i z tego okresu MS STUDIO, trzeba zainstalować oba programy, osobno najczęściej. Jest prezentacja jak to robić oraz jest ilustracja z problemami najczęstszymi.


Problemy jakie odnotowano przy instalacjach to: pomimo funkcjonującej usługi MSSQLSERVER, to MS STUDIO nie widzi żadnego serwera. Spróbuj zmienić sposób uruchamiania usługi MSSQLSERVER na: z lokalnego konta systemowego.

Bywa, że trzeba poszukać w MS Studio serwera po uruchomieniu MS STUDIA.

Ilustracja ww. problemów jest na obrazkach poniżej.

Są osoby co wolą wziąć komputer pod pachę, uzgodnić czas i miejsce, jestem na Pałubickiego i wspólnie zainstalowaliśmy to co trzeba i działa. To taki wariant też jest możliwy, daj znać, polecam, ja to pomocny, miły, sympatyczny, do rany przyłóż .... jestem :-)


----------------------

Pod linką pliki:

WIDOK ZMATERIALIZOWANY na MS SQL Serwerze



Na bazie produkcji ORACLE można utworzyć tak zwany zmaterializowane widoki, jest to o niebo czytelniejsze mym zdaniem :-)

A na MS SQL Serwerze, to zacytuję za książką SQL Serwer 2005 autorstwa Igora Kruka i Artura Mościckiego.

Perspektywa (widok) to rodzaj tabeli wirtualnej zdefiniowanej przez zapytanie SQL. Jednak w przeciwieństwie do zwykłych tabel perspektywa nie ma fizycznej reprezentacji danych aż do momentu, gdy użytkownik zdefiniuje dla niej indeks.

No to mamy sytuacją taką, że widok to po prostu zapytanie zapisane na bazie, które można wywołać jak zwykła tabelę, ale de facto serwer korzysta z danych w tabelach, a utworzenie do widoku indeksu powoduje materializację widoku, to już zajmuje miejsce na dysku, ale też dużo szybciej działa wywoływanie danych z takiego widoku.

Używanie widoków w biznesie jest powszechne bo ułatwia rozwiązywanie złożonych zadań metodą pojedynczych kroków,  ale jak utworzy  się na MS SQL Serwerze indeks do takiego widoku, to są zapisywane dane i najczęściej podnosi się istotnie wydajność z punktu widzenia aplikacji biznesowych, które korzystają z danych.

A na obrazku przykład, a ten przykład można przećwiczyć na bazie testowej ZIELONY.

A baza testowa przypomnę, to jest tu:


Formatuj tak jak wszyscy :-)

Podglądaj jak formatują swoje zapytania inni i rób tak samo. 
Na przykład:
- zaczynaj wiersze od przecinków, separatory listy nie na końcu linii, ale na początku, 
- rób wcięcia
etc. 
W. 



Gruby czy chudy?



Święta tuż tuż… Wszystkiego najlepszego!

Tu pozwolę sobie nieco odjechać… na luzie, że tak powiem post, ale czy na pewno? Będzie odzyskiwanie wagi po poście (bo, że nie pościliście, to takiej wersji nie przyjmuję do wiadomości), zatem problem : czy jestem gruby czy chudy…  A tu spojrzenia mogą być różne, bo to zależy od kontekstu,  dla kogo ten wywiad :-)

Swego czasu z kolegą z pracy, który był mego wzrostu i w zasadzie tej samej wagi spierałem się, czy jesteśmy grubi, a może ja chudy, kolega gruby, albo na odwrót.  Na pierwszy rzut oka, to bez sensu, ale, ale… Metodą prób i błędów ustaliliśmy, że można moją i kolegi wagę opisać funkcją w zależności od wieku:

Waga A = 25,5 LN(WIEK) +1
Waga B = 22,0 LN(WIEK) +1

I już wszystko jasne :-) Dla kogo ten wywiad? To różne odpowiedzi.

Dla Taniej Linii Lotniczej jesteśmy jednakowo grubi, koszt paliwa w celu przewiezienia 1 kg jest dla nas obu jednakowy, koszt transportu nie zależy od wieku kilograma.

Jednak dla Funduszu Zdrowia to sprawa przedstawia się inaczej, nadwaga, to ryzyko zwiększone chorób, stawy puszczają… inne dolegliwości przy dużej wadze się szybciej przyklejają… Wyraźnie widać, że kolega najprawdopodobniej będzie większym obciążeniem dna Funduszu Zdrowia, niż ja. Co prawda dzisiaj ważymy tyle samo, ale kolega idzie na 100 kg w moim wieku. Bo pewno się domyślacie, że B, to ja. 

Tania Linia widzi nas niejako poziomo, a Fundusz Zdrowia w pionie. 


CTE i ROW_NUMBER() czyli jak wybrać co siódmą umowę?



Bywa, że trzeba wyprodukować „obiektywizm”. Na przykład mamy pulę trudnych umów, chcemy części z nich zaproponować niższą ratę przez pewien okres, w ten sposób chcemy zorientować się czy taka forma pomocy ma sens, czy umowy dzięki temu naprawiają się czy jest to po prostu zbędny ruch. 

Innymi słowy robimy test, ale które umowy będą nim objęte. Tu warto zadbać by algorytm był „ślepy”. 

Zatem pomysł jest następujący: układamy umowy według wartości przedmiotu oraz klient_id. Po takim ułożeniu oferta trafia do co siódmej umowy. 
To znaczy trafi do: 1, 8, 15 i tak dalej.

Jak to wyprodukować kwerendą prezentuje obrazek i kod do poćwiczenia.

Używam CTE i UNION ALL, to dzięki temu wyprodukuję pożądany ciąg numerów, a dzięki użyciu ROW_NUMBER() nadam wierszom numery.

Złączenie dwóch tabel daje mi finalny wykaz i jedziemy.
Do poćwiczenia tutaj.