
Witajcie w kolejnej części wpisu o SQLu.
Jest to kontynuacja wpisu numer 1 czyli :
https://gregkaqa.pl/index.php/2020/04/02/sql01-wstep-informacje-o-bazach-oraz-o-sql-proste-przyklady/
Potraktujcie ten wpis jako zajawkę, a nie pełnoprawny tutorial odnośnie SQLa, zastosowałem tu skróty myślowe albo mniejsze lub większe niedoprecyzowania. Myślę, że we wpisie numer 3, jako, że będziecie mieli serwer SQLa, będziecie móc realnie ćwiczyć przykłady.
(Zakładam, że na razie go nie macie.)
Przypominam dwa dobre miejsca do nauki SQLa to :
https://www.hackerrank.com/ – bawiąc uczy, ucząc bawiąc oraz
https://www.w3schools.com/sql/

Instalacja MSSQL Server edycja express czyli darmowa
Do użytku dla siebie wystarczy nam darmowa edycja serwa.
Należy pamiętać o jednej rzeczy, to wasz prywatny sprzęt czyt. dysk SSD, więc zalecam i później pokażę jak startować serwer ręcznie a nie automatycznie co start systemu.
Dlaczego jest to ważne ? Po wgraniu przykładowego zestawu do bazy, możecie zbytnio ‘orać’ swój prywatny dysk.
A jak wiadomo jedyne czym powinniśmy ‘orać’ SSD to gry :D.

Jesli wybierasz basic, trudno twoja sprawa ja wybiore custom.
Jeśli już się wahasz znaczy, że jesteś niewolnikiem !

Przejście dalej, dostajemy informacje o niewspieraniu języka polskiego, który aktualnie mam w systemie.

Jest to instalator online i wszystko pobiera w locie.

Jak nie masz to możesz pobrać management studio skrótowo znane jako SSMS lub jak mało miejsca to heidisql, ale z nim jak coś Ci nie będzie działać radź sobie sam.
Link SSMS : https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15
Osobiście wolę wersje 17, 18 mimo stable była czasami ‘średnio’ stabilna.
Jednak przekonasz się sam.
Link heidi : https://www.heidisql.com/download.php
No dobra instaluj serwer ale na co mi te programy, z tych linków ?
Bo instalujesz serwer a musisz mieć klienta. 😀
Klient od MS, dla mssql najlepiej działa ale i odpowiednio zajmuje trochę miejsca na dysku i zjada trochę więcej pamięci ram niż inne programy.
Klient









Tu jedyne co zmieniam to mixed mode i będę się logować na su hasłem 🙂





Sprawdzenie połączenia i próba połączenia się z serwerem

Łatwo jest w managment studio rozpoznać gdzie jest nasz lokalny serwer.
Wybieramy file – > connection object … – > rozwijamy server name i tam mamy browser for more, następnie w oknie wskazujemy nasz lokalnie wykryty serwer w kategorii databases engine w oknie local servers.
Jeśli ogarniasz bardziej to w możesz mieć ten serwer w sieci domowej, fimowej i wtedy paczasz na drugą kartą o nazwie network services.
Loguje się zależnie od tego co wybrałeś w instalacji, albo autoryzacja Windows lub hasłem do domyślnego użytkownika czyli sa.
Ja wybrałem opcję numer dwa i wtedy authentication zmieniasz na SQL sever auth…
Jeśli masz jakieś timeouty itp. pierwsze sprawdź zaporę i link.
Najszybsza droga rozwiązania problemu z zaporą przy korzystaniu z bezpiecznej sieci jest wyłączenie zapory.
Nie rób tego, w miejscach WiFi bez hasłowych i niezaufanych.

Struktura wygląda następująco po zalogowaniu się.
No się naczekaliśmy i umordowaliśmy by postawić serwer na laptopie.
Żartuje, tak naprawdę to dalej, dalej, dalej. 😀
Ok co dostaliśmy ?
No prawie, że nic tabele systemową, tymczasową.
Tu nie ma się co rozpisywać.
Klikając prawym na databases możemy zrobić nową bazkę.


Możemy ustawić ustawienia ale raczej niewiele z tego wykorzystacie.
Na początek zostawiacie domyślne.


Domyślnie bazy tworzą się w schemacie dbo.
Takie coś jest dobre na początek, kiedy już nie będziecie mieli do tego siły.
Najlepiej pobrać przykładowy zestaw danych przygotowany przez Mikrosyf.
https://docs.microsoft.com/pl-pl/dotnet/framework/data/adonet/sql/linq/downloading-sample-databases
https://github.com/Microsoft/sql-server-samples/tree/master/samples/databases/northwind-pubs

Trzeba odświeżyć sekcję serwerów i pojawi nam się nowy serwer o nazwie Northwind

Drugi skrypt jaki dostaliśmy do dyspozycji to Pubs.

Jeśli nie znacie bazy i macie trochę czasu, nie polecam na wielkich bazach tego robić, ale kilka tabelek możecie podejrzeć w sposób diagramowy.


Za pomocą tego łatwego tricku wiemy jak wygląda schemat bazy aby pisać zapytania.
Bawiąc uczy, ucząc bawi

Połączyłem dwie tabele i trzecią z innej bazy jest to bardzo proste jak widzicie. Ale dobra na zapytania przyjdzie czas później.
Zobaczyliście jak w prosty sposób postawić Serwer bazy MSSQL.
Skąd wziąć przykładowe dane.
Czas na szybkiego mysqla i na koniec coś ciekawego pokażę.
Mysql docenią ludzie, którzy nie mają zasobów by trzymać taką kobyłe jak serwer MSSQLa. Jednak na potrzeby tego co chciałem pokazać będzie baza MariaDB taki oddzielny nurt w kontrze do Oraclowego MySQLa.
https://hostclub.pl/mariadb-vs-mysql-porownanie-baz-danych/
Nie zweryfikowałem tych informacji, więc jak coś szukajcie na własną rękę.
Zatrzymujemy oraz wyłączamy automatycznie włączanie usługi MS Server


Przestawiamy spis SQL Server az Automatic na Manual i tyle
MariaDB najszybsza droga na postawienie normalnego serwera SQL – instalacja XAMPP
Najszybszą metodą jest ściągnięcie fajnego pakietu o nazwie XAMPP.
XAMPP to nic innego jak uproszczony pakiet serwera WWW czy aplikacji opakowany w niezbędne narzędzia.
Ten kto próbował kiedyś przygodę ze storonami WWW, na pewno kojarzy program.
Program to składowa ‘apaszkowych przyjaciół’ 😀
https://www.apachefriends.org/pl/index.html
https://www.apachefriends.org/pl/add-ons.html
Oprócz tego program oferuje także wsparcie np. aby wyprobówać pakiet blogowy WordPress czy liczne cmsy jak np. Joomla!
W skład XAMPP wchodzi serwer Apache, zawiera pożądaną przez nas MariaDB, do tego php, phpmyadmin, perl, xampp control panel, open ssl, tomcat w wersji 7 oraz mercury mail transport.






Link – > https://dev.mysql.com/downloads/workbench/




W PhpMyAdmin zróbcie sobie nowego użytkownika i dajcie mu prawa do wszystkiego.









W ramach ćwiczeń możecie korzystać z której tam chcecie, mi pasuje MSSQL, tak więc dalsza część wpisu będzie właśnie na podstawie tego co tam będę pokazywać.
Wyłączenie automatycznego odpalania MYSQL

Zatrzymujemy tylko usługi klikając stop, jak jest X w kolumnie service znaczy, że zatrzymana.
SQL czym jest widok ?
Wracamy do SQLa, widok czyli view czym jest widok ?
W sekcje zapytania czyli query możemy sobie dawać zapytania i je wykonywać.
Jednak z pewnych dla siebie potrzeb lub potrzeb raportu, programu robimy to tak, że do ciała widoku zapisujemy nasze zapytanie i odwołujemy się prostą składnią lub np. jakąś metodą w kodach aby przetwarzać owy widok.

Lub po prostu wołanie na widok jeśli aktualnie jesteśmy na danmej bazie / używamy use i nasz obiekt jest w domyślnym schemacie dbo.

Widoki najlepiej tworzyć z prefiksami, ale co firma itp. to inne prefiksy.
Np. Vauthors, authorsV, v_authors, authors_v
Najlepsza opcja moim daniem to taka z v_.
Funkcje w SQL – wstęp
Wstęp dlatego, że temat jest dość rozległy i tutaj postaram się powiedzieć w jak największym skrócie co to funkcje w SQL oraz co nieco o nich.
Funkcje mogą być tabelaryczne i skalane.
Ważną cechą jest to, że funkcja musi coś zwracać a procedura nie.
Funkcje można wywołać z procedury ale odwrotnie już nie.
Funkcje posiadają parametry tylko jako wejściowe.
Zaś procedury mogą posiadać i wejściowe i wyjściowe.
Zaczniemy od skalarnych czyli tych łatwiejszych.
create function dbo.gelo()
returns varchar(8000) as
begin
return 1+2;
endSELECT [dbo].[gelo] ()
alter function dbo.gelo()
returns varchar(8000) as
begin
return 'mojapierwszafunkcjasql';
end



SELECT [dbo].gelo
alter function dbo.gelo(@ebeebe varchar(8000))
returns varchar(8000) as
begin
declare @gelo varchar(8000)
set @gelo = (select top 1 advance from dbo.grzegorzowy);
return 'wartosc ' + @gelo + ' ' + @ebeebe + 'mamy godzine : ' + convert(varchar, getdate(), 20);
end
Ulepszyłem nieco funkcje i pokazałem też, że oprócz przekazywania dowolnej ilości funkcji, można w środku też deklarować dowolne zmienne.
Raczej bym powiedział, że te parametry to zmienne a te w ciele funkcji to stałe, dopóki nie zalterujesz funkcji i coś w nich nie zmienisz.
Funkcje zwracające tabele
No i tamto było skalarne, a teraz zwracamy tabele w funkcji.

Ważne aby typy się zgadzały no i wiadomo ilość kolumn.
Tzn. z niezgodnymi typami da się czasami założyć funkcje ale przy jej wywołaniu dostaniecie error.
Jako, że po scrollu widzę, że wpis będzie przeogromny przejdę do procedur i reszta SQLowej wiedzy w kolejnym wpisie
Procedury co to a na co to
Niejako obiekt w którym przechowywać można powtarzalny kod taki jak inserty, updaty albo selecty. Procedury mają taką właściwość że mają typy parametrów wejściowych i wyjściowych. Kompilowane są w czasie ich wywoływania exec.
Procedury proste bez parametrów



Można też robić procedury tymczasowe przed nazwą dajemy #
np. create procedure #proceduratymczasowa bla bla kod …
Generalnie to luźna zajawka dot. funkcji i procedur nie ma np. informacji, że w procedurach używamy WITH czyli opcji procedur.
A także parametru dwukierunkowego czyli parametr jako wejściowy, może być jednocześnie wyjściowym.
Ale o tym w następnym wpisie, pamiętajcie tu dostajecie zajawkę i najlepiej byłoby douzupełnić to co przeczytacie tutaj o wiedzę z innych miejsc, może jakieś książki, wykłady ? Oraz musi no musi być praktyka.
Dlatego zainstalujcie sobie ten serwer i trenujcie sami.
W następnym wpisie chce także poruszy temat triggerów bazodanowych, uzupełnić bardziej spójnie to co tutaj napisałem.
No i oczywiście do tego postawionego serwera przećwiczcie sobie przykłady z w3school sekcja SQL.
Pozdro i #zostanwdomu
Świetnie szukałam czegoś o SQL, super wielkie dzięki!