Witaj na SKI! Witryna prowadzona przez entuzjastów informatyki ☺

Kwalifikacja E.14


MySql: polecenie INNER JOIN (łączenie wewnętrzne)

Prawdopodobnie każdy z nas pracując z bazami danych miał szansę napotkać problem, gdy dane, które aktualnie są nam potrzebne miesczą się w kilku osobnych tabelach co nie jest komfortowe do ich przeglądania.

Do wybrania danych rozstrzelonych po całej bazie danych w przeróżnych tabelach służy polecenie JOIN, która występuje w połączeniu z frazami LEFT, RIGHT, INNER i innymi.

W tym wpisie zajmiemy się głównie komendą INNER JOIN.

Efektem jest kombinacja wartości z 2 tabel, które mają wspólny element wskazany jako „łącznik”. Przy wskazywaniu elementu”łącznika” należy sprecyzować również tabele z której wartość pochodzi, ponieważ polecenie inner join pozwala na łaczenie więcej niż 2 tabel.


Ogólny schemat pisania zapytań z poleceniem INNER JOIN:

SELECT pole1,pole2..poleX FROM tabela1,tabela2…tabelaX INNER JOIN poleX ON tabela1.pole_z_tej_tabeli=tabela2.pole_z_tej_tabeli WHERE warunek_logiczny;

Przykład:

SELECT nazwisko,trener,seria FROM zawodnicy INNER JOIN skoki on zawodnicy.idskoczka=skoki.idskoczka where seria>2;

+ zobacz więcej

MySql: Funkcje agregujące

Dane można podsumować wykorzystując funkcje agregujące, do których zaliczają się:

  • zliczanie (COUNT())-pozwala na znalezienie liczby wystąpień.
  • sumowanie (SUM())-umożliwia wyliczenie sumy elementów.
  • obliczanie średniej (AVG())-pozwala na wyliczenie średniej.
  • wyznaczanie maksimum (MAX())-umożliwia znalezienie maksymalnej wartości w zbiorze.
  • wyznaczanie minimum (MIN())-umożliwia znaleznie miniminalnej wartości w zbiorze.

Każda z funkcji posiada jeden parametr, będący wyrażeniem dającym nam wartości do obliczeń.

W przypadku funkcji AVG i SUM wyrażenie musi dostarczać wartości liczbowe, pozostałe funkcje agregujące przyjmują wartości dowolnego typu podstawowego.

Przed wyrażeniem można umieścić słowo kluczowe DISTINCT i do obliczeń zostaną wzięte wartości bez powtórzeń. Umieszczenie w wywołaniu funkcji słowa ALL powoduje, że do obliczeń są wzięte wszystkie wartości.

 Funkcja COUNT zwróci liczbę niepustych wartości. Jeśli w wywołaniu funkcji wyrażenie zastąpimy gwiazdką (*), to zostanie policzona liczba rekordów należących do grupy.

Pozostałe funkcje agregujące również pomijają przy obliczeniach wartości puste, więc nie ma konieczności stosowania mechanizmów wykluczających wartości puste.

+ zobacz więcej

MySql: Klauzula Having

Klauzula HAVING w SQL według ogólnego wzoru zapytań SELECT wpisywana jest po klauzuli GROUP BY. Działa ona praktycznie tak samo jak słowo kluczowe WHERE z różnicą, że przy WHERE nie mogliśmy używać funkcji grupujących oraz operować na pogrupowanych danych. Klauzula HAVING nam to wszystko umożliwia.

W skrócie funkcja ta może zostać wykorzystana na przykład do wyeliminowania grup danych, które nie spełniają podanego po niej warunku.


Ogólny zapis klauzuli HAVING wygląda następująco:
SELECT kolumna1, kolumna2 FROM tabela GROUP BY kolumna3 HAVING kolumna4 warunek logiczny;
Przykład:
SELECT IDSkoczka,Imię FROM Zawodnicy GROUP BY IDSkoczka HAVING wzrost > 160;


Analizując wiele przykładów/zadań można ułożyc sobie pewien schemat: najpierw grupowanie, potem HAVING.
Używając WHERE zamiast HAVING zostałyby pogrupowane tylko przefiltrowane wyniki, co w rezultacie mogloby nam dać zły wynik!

 

+ zobacz więcej

MySql: Nadawanie uprawnień

Nadawanie uprawnień ma duże znaczenie bo przecież bez nich nie jesteśmy w stanie nic zrobić.

  1. Grant all on nazwa_bazy.* to nazwa_uzytkownika; (to polecenie spowoduje ze wszystkie uprawnienia zostaną przypisanego danemu użytkownikowi, a gwiazdka po kropce oznacza, ze zostały nadane do wszystkich tabel)

  2. Grant all on nazwa_bazy.* to nazwa_uzytkownika with grant option; (to polecenie spowoduje dokładnie taki sam wynik jak poprzednie ale „dodatek” with grant option doda nam uprawnienia do nadawania uprawnień.

(więcej…)

+ zobacz więcej

Polecenia: Data & czas

Polecenia daty i czasu w MySql są bardzo prostymi „składankami” słów z języka angielskiego.

  • now(); – zwraca datę i czas systemowy
  • select now() as data_i_czas;

 

  • curdate(); – zwraca bieżącą date (current date)
  • select curdate() as biezaca_data;

 

  • curtime(); -zwraca bieżący czas (current time)
  • select curtime() a biezacy_czas;

 

  • dayofweek(); – zwraca bieżący dzień tygodnia (1-7)
  • dayofmonth(); – zwraca bieżący dzień miesiąca (1-31)
  • dayofyear(); – zwraca bieżący dzień roku (1-365)

 

(current-bieżący)

+ zobacz więcej
Linus Torvalds
Linus Benedict Torvalds (ur. 28 grudnia 1969 w Helsinkach) – fiński programista, twórca jądra Linux oraz systemu kontroli wersji git. Należy do społeczności Finów szwedzkojęzycznych. Uczęszczał na Uniwersytet Helsiński. Poprzez stworzenie jądra Linux nadał impuls do gwałtownego rozwoju wolnego oprogramowania. Sam należy do zwolenników powstałego później ruchu otwartego oprogramowania... Czytaj dalej »

Kalendarz

Październik 2018
P W Ś C P S N
« wrz    
1234567
891011121314
15161718192021
22232425262728
293031  

Archiwum

Font Resize
Contrast