theMASK
v.20210228, php: 7.1.33, strona: 41

theMASK

Ulubione

SQL - select

SELECT pola FROM tabele WHERE warunki GROUP BY grupowania ORDER BY sortowania

Znaczenie:

  • pola: zawartość do wyświetlenia (pola bazy danych lub zastosowane funkcje na polach) - rozdzielnik: przecinek, np.:

    • funkcje:
      • count(*) - zliczenie ilości wierszy
      • sum(pole1) - sumowanie wartości z pola pole1 (koniecznie w sekcji grupowania należy podać grupowanie po pole1
      • distinct(pole1) - wyświetlenie unikalności (powielone wartości pola pole1 zostaną wyświetlone tylko 1 raz)
    • pola pojedynczej tabeli wybranej w sekcji FROM:
      • - zastosowanie znaku  gwiazdki spowoduje wyświetlenie wszystkich pól tabeli
      • pole1, pole2
    • pola dwóch i więcej tabeli wybranych w sekcji FROM (tabele muszą posiadać aliasy np. `a.`,`klienci`):
      • a.pole1, a.pole2, klienci.nazwa
  • tabele: źródło danych (bazy i tabele, z których wyświetlane są dane) - rozdzielnik: przecinek

    • bez aliasów: tabela1
    • z aliasami: tabela1 a, tabela2 klienci
  • warunki: połaczenia tabel lub ograniczenia (filtrowania)  zawartości do wyświetlenia - rozdzielnik: operatory logiczne (OR, AND)

    • połączenie między tabelami: a.id = klienci.id_klienta AND a.id_towaru = slownik.id_towaru
    • filtrowanie danych (dokładne wartości): klienci.rodzaj = 'podmioty'
    • filtrowanie danych (niedokładne wartości) - (znak % - zastępuje nieznane frazy): klienci.nip LIKE '%646%' OR klienci.kod_pocztowy LIKE '43-%'
  • grupowania: agregowanie zawartości do wyświetlenia - rozdzielnik: przecinek

    • pole1
    • pole1, pole2
    • a.pole1, klienci.nazwa
  • sortowania: kolejność sortowania wyświetlanych informacji (pól) - rozdzielnik: przecinek

    • alfabetycznie: pole1 ASC
    • kolejność odwrotna: pole1 DESC

Przykłady:

SELECT * FROM klienci ORDER BY miejscowosc, nazwa, data_rejestracji DESC

SELECT sl.nazwa, p.tytul, p.przepis FROM przepisy p, slownik_sekcji sl WHERE p.id_sekcja = sl.id_sekcja AND sl.nazwa LIKE 'ciasto%' ORDER BY sl.nazwa, p.tytul

SELECT count(*) FROM przepisy

SELECT SUM(o.wartosc), p.tytul, o.osoba FROM zakupy o, przepisy p WHERE o.id_przepis = p.id_przepis GROUP BY o.osoba

(SELECT nazwa FROM sekcje WHERE s.sekcja = 'perwsza') UNION (SELECT nazwa FROM sekcje WHERE s.sekcja = 'druga')

Połączenie z PHP:

Odpytanie bazy danych (tabela: przepisy - wyświetlenie rekordów zawierający wybrany fragment tytułu - instrukcja SELECT):

  • $fraza - zmienna PHP zawierająca szukaną frazę (np. przesłane metodą POST dane z formularza)
  • SELECT tytul, przepis FROM przepisy WHERE tytul LIKE '%$fraza%' ORDER BY tytul
$result = mysql_query("set names utf8");
$result = mysql_query("SELECT tytul, przepis FROM przepisy WHERE tytul LIKE '%$fraza%' ORDER BY tytul");
$wiersze = mysql_fetch_array($result, MYSQL_NUM); //jeśli tablica jest 1-wierszowa
//jeśli tablica posiada więcej wierszy:
while ($wiersze = mysql_fetch_array($result, MYSQL_NUM)) {
$zmienna_pola_z_pierwszej_kolumny_zapytania_SQL = $wiersz[0]; 
$zmienna_pola_z_drugiej_kolumny_zapytania_SQL = $wiersz[1];
}
 
Komentarze:
autor: Lesław, sekcja: IT, kategoria: SQL, publikacja: 1998-01-01 - 2099-12-31

×

Zaplecze: administratora

×

×

Szukaj

×

×Avatar



informacje

×