Odnowa blog’a…. informatyk.pro

Od kilku dni pracuję nad odnową i przywróceniem do życia bloga: informatyk.pro.

Planuję docelowo przenieść stąd wszystkie wpisy w nowe miejsce, sprawdzając przy okazji czy przedstawione rozwiązania nadal są aktualne.

Tym czasem zapraszam do korzystania z it.dth.pl oraz zapoznania się z odświeżonym: informatyk.pro

Zmiana adresu MAC – Windows programy (MacMake Up, MAC Address Changer)

Wielu z was pewnie próbowało dokonać zmiany adresu MAC z poziomu systemu Windows. Można zrobić to na kilka sposobów.

Pierwszy z nich to zmiana adresu we właściwościach karty sieciowej w zakładce Zaawansowane (Network Address).

Drugi już nieco trudniejszy dla mniej zaawansowanych użytkowników, poprzez edycje odpowiedniego wpisu w rejestrze (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\…).

Trzecia opcja to użycie programu do zmiany adresu MAC. Poniżej zamieściłem dwa programy:

MacMakeUp 1.95d

Rozmiar: 558 KB
Download: www.it.dth.pl/files/MacMakeUp1.95d.zip


MAC Address Changer 1.0

Rozmiar: 153 KB
Download: www.it.dth.pl/files/MACAddressChanger.zip

Funkcje znakowe: LOWER, UPPER, INITCAP, PAD – Kurs języka SQL (mySQL) cz. 8a

W ósmej już części kursu języka SQL przedstawię dwanaście funkcji znakowych. Ta część kursu będzie podzielona na trzy części: a, b, c. W tej części skupię się na funkcjach: lower, upper, initcap, lpad i rpad.

Poniżej znajduje się przykładowa tabela pracownicy, która posłuży mi do wyjaśnienia wspomnianych poleceń (select * from pracownicy).

id pracownik godzin stawka stranowisko
234 Jan Kowalski 164 10 pracownik socjalny
  • LOWER – zamienia wielkie litery na małe. W wyniku wykonania zapytania:
    select lower(pracownik) from pracownicy otrzymamy: jan kowalski

  • UPPER – zamienia małe litery na wielkie. W wyniku wykonania zapytania:
    select upper(pracownik) from pracownicy otrzymamy: JAN KOWALSKI

  • INITCAP – zamienia pierwszą litere w każdym słowie na dużą. W wyniku wykonania zapytania:
    select initcap(stanowisko) from pracownicy otrzymamy: Pracownik Socjalny

  • LPAD(wartość, n, ‘ciąg’) – uzupełnia komórkę z lewej strony podanym ciągiem aż do długości n. W wyniku wykonania zapytania:
    select lpad(godzin, 5, ‘0’) from pracownicy otrzymamy: 00164, czyli uzupełniliśmy ciąg zerami ‘0’ z lewej strony do długości ciągu 5.
  • RPAD(wartość, n, ‘ciąg’) – uzupełnia komórkę z prawej strony podanym ciągiem aż do długości n. W wyniku wykonania zapytania:
    select rpad(godzin, 5, ‘0’) from pracownicy otrzymamy: 16400, czyli uzupełniliśmy ciąg zerami ‘0’ z prawej strony do długości ciągu 5.

UPDATE, INNER JOIN – Kurs języka SQL (mySQL) cz. 5a

W przypadku polecenia UPDATE nie omówiłem jednego zagadnienia, otóż jakim poleceniem wykonać operacje modyfikacji rekordów w jednej tabeli korzystając z danych drugiej tabeli. Wiadomo już, iż do modyfikacji rekordów służy polecenie UPDATE, zaś do łączenia tabel INNER JOIN.

W tym przypadku jednak nie możemy łączyć UPDATE i INNER JOIN.

Poniżej przedstawię przykład. Mamy dwie tabele. Jedną: zarobki_nowe drugą: zarobki_stare.

zarobki_stare:

id_pracownika

kod_dzialu

pensja_brutto

12008

It-1

1000

22008

Marketing-2

2000

32008

It-1

3000

zarobki_nowe:

id_pracownika

kod_dzialu

pensja_brutto

12008

It-1

22008

Marketing-2

32008

It-1

Teraz na podstawie tabeli zarobki_stare chcemy uzupełnić pole pensja_brutto w tabeli zarobki_nowe jednocześnie podwyższając je o 20%.

Polecenie wyglądać będzie następująco:

UPDATE zarobki_stare, zarobki_nowe SET zarobki_nowe.pensja_brutto=zarobki_stare.pensja_brutto*1.2 WHERE zarobki_stare.id_pracownika=zarobki_nowe.id_pracownika

i w rezultacie otrzymamy tabele:

id_pracownika

kod_dzialu

pensja_brutto

12008

It-1

1200

22008

Marketing-2

2400

32008

It-1

3600

DROP TABLE, DROP DATABASE – Kurs języka SQL (mySQL) cz. 7

 

Ten wpis został podzielony na dwa i przeniesiony pod adresy:

DROP TABLE – usuwanie tabel z bazy danych – Kurs SQL

DROP DATABASE – usuwanie całej bazy danych – Kurs SQL

 

DELETE – Kurs języka SQL (mySQL) cz. 6

Ten wpis został przeniesiony pod adres:

https://informatyk.pro/delete-from-usuwanie-rekordow-z-bazy-danych-kurs-sql/

DELETE FROM – usuwanie rekordów z bazy danych – Kurs SQL

UPDATE – Kurs języka SQL (mySQL) cz. 5

Piąta część kursu języka SQL poświęcona poleceniu UPDATE. Korzystając z UPDATE można modyfikować rekordy w bazie danych.

Nauczyliśmy się już jak wstawiać rekordy oraz jak je wyświetlać. Co jednak w przypadku kiedy okaże się, iż chcemy poprawić jakieś dane ? Możemy to uczynić używając do tego celu polecenia UPDATE, którego składnia jest następująca:

UPDATE nazwa_tabeli SET kolumna1=nowa_wartość WHERE warunek

Za jego pomocą możemy modyfikować zarówno wszystkie rekordy, jak i tylko pojedyncze, które spełniają określony warunek. Warunek WHERE może być połączony z jednym z operatorów omówionych podczas poprzedniej lekcji (LIKE, IN, BETWEEN, >, <, <=, >=, <>, =).

Przykład 1:

W przypadku kiedy chcielibyśmy zwiększyć pracownikom wynagrodzenie o 10% nie musimy zmieniać każdego rekordu oddzielnie. Możemy to zrobić poniższym poleceniem:

UPDATE pracownik SET pensja=pensja*1.1

Przykład 2:

Jeżeli chcemy zmienić wartość tylko w jednym rekordzie, bądź konkretnie wskazanych konieczne jest użycie dodatkowo operatora WHERE, którego parametry oraz możliwości poznaliśmy w poprzedniej lekcji. Poniższy przykład zmodyfikuje nazwisko z Nowak na Nowakowski dla pracownika o „id_pracownika” równym 22008.

UPDATE pracownik SET nazwisko=’Nowakowski’ WHERE id_pracownika=22008

SELECT FROM, INNER JOIN, RIGHT, LEFT OUTER JOIN – Kurs języka SQL (mySQL) cz. 4c

Ciąg dalszy czwartej C części kursu języka SQL. Tym razem omówię polecenie SELECT, tym razem z : INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN. Przy ich pomocy możemy łączyć ze sobą kilka tabel.

INNER JOIN – łączenie tabel przy wyświetlaniu

W naszych tabelach przechowujemy różne dane, takie jak: pensje, adresy, czy stanowiska. Co w przypadku kiedy chcielibyśmy wyświetlić te dane w jednej tabeli ? Możemy tego dokonać stosując operator INNER JOIN (złączenie wewnętrzne tabel) razem z poleceniem SELECT, które złączy wskazane przez nas tabele i kolumny. Polecenie będzie miało wtedy następującą składnie:

SELECT lista_kolumn FROM nazwa_tabeli INNER JOIN nazwa_tabeli_2 ON warunek_złączenia

Przykład:

Zadaniem naszym jest wyświetlenie w jednej tabeli następujących danych: „id_pracownika”, „imie”, „nazwisko” oraz „adres_email”. Trzy pierwsze dane znajdują się w tabeli „pracownik”, zaś adres e-mail w tabeli „adresy”. Wspólnym polem dla obu tabel jest „id_pracownika” i to ono posłuży nam do złączenia tabel następującym poleceniem:

SELECT pracownik.id_pracownika, imie, nazwisko, adres_email FROM pracownik INNER JOIN adresy ON pracownik.id_pracownika = adresy.id_pracownika

Tab. 4.6 Złączenie tabel pracownik oraz adresy

id_pracownika

imie

nazwisko

adres_email

12008

Jan

Kowalski

jkowalski@msql.pl

22008

Adam

Nowakowski

anowak@msql.pl

32008

Kasia

Kowalska

NULL

 
W trzecim rzędzie pole adresu ma wartość NULL, ponieważ nie zawierało w bazie danych adresu e-mail. Warunek złączenia: pracownik.id_pracownika = adresy.id_pracownika składa się z nazwy_pierwszej_tabeli.wspolna_kolumna = nazwa_drugiej_tabeli.wspolna_kolumna.

Jeżeli chcielibyśmy do tej tabeli dołączyć jeszcze informacje na temat stanowiska pracownika przechowywane w polu „stanowisko” w tabeli „stanowiska” polecenie miałoby następującą formę:

SELECT pracownik.id_pracownika, imie, nazwisko, adres_email, stanowisko FROM pracownik INNER JOIN adresy ON pracownik.id_pracownika = adresy.id_pracownika INNER JOIN stanowiska ON pracownik.id_pracownika = stanowiska.id_pracownika

Tab. 4.7 Złączenie tabel pracownik, adresy oraz stanowiska

 

id_pracownika

imie

nazwisko

adres_email

stanowisko

12008

Jan Kowalski jkowalski@msql.pl przedstawiciel handlowy

22008

Adam Nowakowski anowak@msql.pl księgowa

32008

Kasia Kowalska NULL kasjer

W języku SQL mamy jeszcze następujące rodzaje złączeń:

o LEFT OUTER JOIN – lewostronne złączenie zewnętrzne, które zwraca wszystkie wiersze po lewej stronie klauzuli JOIN, zaś z tabeli po prawej stronie tylko wiersze dla których warunek złączenia jest prawdziwy. W przypadku kiedy wiersz z lewej tabeli nie ma odpowiadającego mu wiersza z prawej tabeli to odpowiednie pola zostają wypełniane wartością NULL.

o RIGHT OUTER JOIN – prawostronne złączenie zewnętrzne funkcjonuje w analogiczny sposób.

SELECT, FROM, WHERE, LIKE, BETWEEN, IN – Kurs języka SQL (mySQL) cz. 4b

Część czwarta B kursu języka SQL. Ciąg dalszy polecenia: SELECT, tym razem z parametrami: WHERE, LIKE, BETWEEN oraz IN. Przy ich pomocy możemy wyświetlać konkretne zbiory danych, zawartych w określonych przedziałach.

WHERE – wybór wierszy spełniających określone warunki, np.

SELECT * FROM pracownik WHERE pensja > 1500

Pokaże rekordy pracowników którzy zarabiają powyżej 1500 zł. Istnieje możliwość łączenia warunków za pomocą operatorów OR i AND, np.

SELECT * FROM nazwa_tabeli WHERE ((warunek1) OR (warunek2)) AND (warunek3)

Zostaną wyświetlone rekordy które spełniają warunek3 oraz warunek1, lub warunek2.

Przykład:

SELECT * FROM pracownik WHERE (pensja >= 1000) AND (pensja < 1500)

Powyższe polecenie wyświetli pracowników zarabiających 1000 zł i powyżej, nie więcej jednak niż 1499 zł.

W zapytaniach możliwe jest stosowanie następujących operatorów:

Tab. 4.4 Lista operatorów

Operator:

Znaczenie:

=

równy

<

mniejszy niż

>

większy niż

<=

mniejszy lub równy

>=

większy lub równy

<>

różny od

LIKE – wybór wierszy spełniających określone wyrażenie znakowe, np.

SELECT * FROM nazwa_tabeli WHERE nazwa_kolumny LIKE wyrażenie

Przykład 1:

Dla tabeli pracownik możemy wyświetlić wszystkie rekordy pracowników których nazwiska zaczynają się na „Kow”. Polecenie będzie miało następującą postać:

SELECT * FROM pracownik WHERE nazwisko LIKE ‘Kow%’

Przykład 2:

Aby wyświetlić pracowników których numer id (id_pracownika) kończy się frazą 2008 możemy także skorzystać z operatora LIKE.

SELECT * FROM pracownik WHERE id_pracownika LIKE ‘%2008’

Przykład 3:

Jeżeli chcielibyśmy wyświetlić listę pracowników których druga litera imienia to „a” także jest to możliwe:

SELECT * FROM pracownik WHERE imie LIKE ‘_a%’

Poniżej przedstawiona została tabela ze wszelkimi możliwymi znakami specjalnymi, wraz ze znaczeniem i przykładem.

Tab. 4.5 Tabela znaków specjalnych

Znak specjalny:

Znaczenie:

Przykład:

_

Dowolny pojedynczy znak LIKE ‘_c_’ – oznacza wszystkie trzy literowe wyrazy, których środkowa litera to c

%

Dowolny ciąg znaków o dowolnej długości, także zerowej LIKE ‘c%’ – oznacza wszystkie wyrazy o dowolnej długości rozpoczynające się od litery c

[]

Dowolny ciąg znaków z podanego zakresu LIKE ‘[a-g]%’ – oznacza wszystkie wyrazy o dowolnej długości których pierwsza litera należy do zakresu a–g.

[^]

Dowolny ciąg znaków nie pasujący do zakresu LIKE ‘[^a-g]%’ – oznacza wszystkie wyrazy o dowolnej długości których pierwsza litera jest z poza zakresu a–g.

BETWEEN – pozwala przy wykorzystaniu operatora WHERE określić zakresy, np.

SELECT * FROM nazwa_tabeli WHERE (nazwa_kolumny BETWEEN x AND y)

Dla tabeli pracownik przykład wyświetlający rekordy z zakresu gdzie id pracownika jest pomiędzy 12008 a 32008 wyglądać będzie następująco:

SELECT * FROM pracownik WHERE (id_pracownika BETWEEN 12008 AND 32008)

IN – pozwala na wskazanie rekordów należących do określonego zbioru. Poniższe polecenie:

SELECT * FROM pracownik WHERE (id_pracownika IN (12008, 22008))

Wyświetli pracowników których “id_pracownika” to: 12008 oraz 22008.

SELECT, FROM, TOP, COUNT, ORDER BY – Kurs języka SQL (mySQL) cz. 4a

Część czwarta A kursu języka SQL. Omówione zostało polecenie: SELECT (wraz z parametrami: TOP, LIMIT, COUNT oraz ORDER BY) służące do wyświetlania danych.

W poprzednich lekcjach nauczyliśmy się już tworzyć bazy i tabele, a także wstawiać do nich dane. Teraz czas abyśmy nauczyli się pobierać z bazy dane. Do tego służy polecenie SELECT, którego składnia jest następująca:

SELECT nazwy_kolumn FROM nazwa_tabeli

W polu „nazwy_kolumn” podajemy jak sam opis wskazuje nazwy kolumn, zaś w „nazwa_tabeli” określa tabelę z której chcemy dane pobrać. Możemy też pobrać dane ze wszystkich kolumn tabeli podając w polu „nazwy_kolumn” znak *.

Przykład:

Aby pobrać wszystkie dane z tabeli „pracownik” posłużymy się poleceniem:

SELECT * FROM pracownik

Jeżeli potrzebujemy tylko pobrać trzy kolumny: „id_pracownika”, „imie” oraz „nazwisko” pracownika składnia polecenia wygląda następująco:

SELECT id_pracownika, imie, nazwisko FROM pracownik

Wraz z poleceniem SELECT stosować możemy kilka parametrów które z pewnością ułatwią nam wyświetlanie rekordów. Oto niektóre z nich:

LIMIT n – gdzie n określa ilość wyświetlanych wierszy, np:

SELECT * FROM pracownik LIMIT 2

wyświetli dwa pierwsze rekordy z tabeli pracownik.

TOP n – gdzie n określa ilość wyświetlanych wierszy, np:

SELECT TOP 2 * FROM pracownik

wyświetli dwa pierwsze rekordy z tabeli pracownik. Parametr TOP ma zastosowanie tylko w przypadku MS SQL.

COUNT – zlicza ilość rekordów, np.:

SELECT COUNT(*) FROM pracownik

wyświetli ilość wszystkich rekordów w tabeli pracownik

ORDER BY – umożliwia sortowanie wyników. Składnia polecenia SELECT z klauzulą ORDER BY jest następująca:

SELECT * FROM nazwa_tabeli ORDER BY kryterium_sortowania

Rekordy domyślnie wyświetlane są w porządku rosnącym. Aby z góry zdefiniować kryterium sortowania w porządku malejącym należy dodać słówko DESC, zaś w rosnącym ASC, np.

SELECT * FROM pracownik ORDER BY pensja DESC
SELECT * FROM pracownik ORDER BY pensja ASC

Pierwsze polecenie posortuje rekordy w kolejności w porządku malejącym względem kolumny pensja, zaś drugie w odwrotnej kolejności.