• Nie Znaleziono Wyników

lista kolumn>

N/A
N/A
Protected

Academic year: 2021

Share "lista kolumn>"

Copied!
23
0
0

Pełen tekst

(1)

Autor: Joanna Karwowska

(2)

SELECT [DISTINCT] <

lista kolumn/wyrażeń

>

FROM

<lista tablic>

[WHERE <

warunek>

]

[GROUP BY <

lista kolumn>

] [HAVING <

warunek>

]

[ORDER BY <

lista kolumn/numerów>

]

[ ]

instrukcja może wystąpić, ale nie musi.

(3)

SELECT - określa, które kolumny z tablic

podanych we frazie FROM mają zostać włączone do wyniku (projekcja). Dodatkowo, mogą zostać włączone wyrażenia.

DISTINCT - powoduje wyeliminowanie duplikatów (wierszy powtarzających się).

FROM - określa tablice, na jakich działa instrukcja SELECT. Jeśli jest kilka tablic,

dokonywany jest produkt kartezjański tych tablic.

WHERE - określa warunki wyboru wierszy z

tablic wymienionych we frazie FROM (selekcja).

(4)

GROUP BY - powoduje wiązanie wierszy wynikowych w grupy o jednakowych

wartościach we wskazanych kolumnach, a następnie redukowanie tych grup do

pojedynczych wierszy.

HAVING - określa warunki wyboru dla wierszy powstałych w wyniku działania frazy GROUP BY.

ORDER BY - porządkuje wiersze wynikowe rosnąco lub malejąco według wartości

wskazanych kolumn:

ASC – rosnąco DESC - malejąco

(5)

SELECT [DISTINCT] <

lista kolumn/wyrażeń>

FROM <

nazwa tablicy>

[ WHERE <

warunek> ]

Uwaga: <

lista kolumn> może przybrać formę *

(co oznacza wybór wszystkich kolumn).

(6)

Przykład 1

Pokaż identyfikatory i nazwiska wszystkich pracowników.

SELECT nazwisko, pesel

FROM pracownicy;

Przykład 2

Pokaż nazwy wszystkich miast, skąd pochodzą pracownicy.

SELECT DISTINCT miasto

FROM pracownicy;

Uwaga:

Bez słowa DISTINCT nazwy miast mogłyby się powtarzać.

(7)

Przykład 3

Pokaż imiona i nazwiska pracowników, którzy pochodzą z Sopotu.

SELECT imie, nazwisko FROM pracownicy

WHERE miasto = ‘Sopot’;

(8)

Przykład 4

Pokaż imiona i nazwiska i pensje wszystkich pracowników.

SELECT imie, nazwisko, pensja FROM pracownicy, stanowiska

WHERE stanowisko=stanowiska.id_stanowiska;

Relacja:

{klucz_obcy=nazwa_tabeli.klucz_podstawowy}

(9)

Operatory języka SQL występujące w wyrażeniach we frazie SELECT, WHERE i in.:

Operatory arytmetyczne:

** ^ potęgowanie

* / mnożenie, dzielenie

+ - dodawanie, odejmowanie

Operatory logiczne:

NOT AND OR

Operatory porównania:

= > < >= <= <>

Operatory specjalne:

IN BETWEEN LIKE MATCHES

Operatory porównania z wartością pustą:

IS NULL IS NOT NULL

(10)

COUNT()-zwraca liczbę wierszy wybranych w zapytaniu.

AVG()-oblicza średnią arytmetyczną w kolumnie numerycznej.

SUM()-sumuje wartości kolumn numerycznych.

MIN()-znajduje wartość minimalną w kolumnie znakowej, numerycznej lub daty.

MAX()-znajduje wartość maksymalną w kolumnie znakowej, numerycznej lub daty.

(11)

COUNT(*) - zwraca liczbę wierszy w tablicy wynikowej.

COUNT(DISTINCT <

nazwa kolumny>)

- zwraca liczbę różnych wartości we wskazanej kolumnie.

Przykład 1

Ilu pracowników pochodzi z Sopotu?

SELECT COUNT(*) FROM pracownicy WHERE miasto = ‘Sopot’;

Przykład 2

Z ilu różnych miast pochodzą pracownicy?

SELECT COUNT(DISTINCT miasto) FROM pracownicy;

(12)

Przykład 1

Podaj sumę zarobków wszystkich pracowników.

SELECT SUM(pensja) FROM pracownicy, stanowiska WHERE stanowisko=stanowiska.id_stanowiska;

Przykład 2

Zmodyfikuj poprzednie zapytanie. Zmień nazwę kolumny zawierającej efekt działania funkcji.

SELECT SUM(pensja) AS „Suma zarobków”

FROM pracownicy, stanowiska

WHERE stanowisko=stanowiska.id_stanowiska;

(13)

Przykład 1

Podaj średnie wynagrodzenie wszystkich pracowników.

SELECT AVG(pensja) FROM pracownicy, stanowiska WHERE stanowisko=stanowiska.id_stanowiska;

Przykład 2

Zmodyfikuj poprzednie zapytanie. Zmień nazwę kolumny zawierającej efekt działania funkcji.

SELECT AVG(pensja) AS „Średnie wynagrodzenie”

FROM pracownicy, stanowiska

WHERE stanowisko=stanowiska.id_stanowiska;

(14)

Przykład 1

Znajdź największą pensję pracownika.

SELECT MAX(pensja) FROM pracownicy, stanowiska WHERE stanowisko=stanowiska.id_stanowiska;

Przykład 2

Zmodyfikuj poprzednie zapytanie. Zmień nazwę kolumny zawierającej efekt działania funkcji.

SELECT MAX(pensja) AS „Najwyższe wynagrodzenie”

FROM pracownicy, stanowiska

WHERE stanowisko=stanowiska.id_stanowiska;

(15)

Przykład 1

Znajdź najmniejszą pensję pracownika.

SELECT MIN(pensja) FROM pracownicy, stanowiska WHERE stanowisko=stanowiska.id_stanowiska;

Przykład 2

Zmodyfikuj poprzednie zapytanie. Zmień nazwę kolumny zawierającej efekt działania funkcji.

SELECT MIN(pensja) AS „Minimalne wynagrodzenie”

FROM pracownicy, stanowiska

WHERE stanowisko=stanowiska.id_stanowiska;

(16)

IN - sprawdza, czy wartość w kolumnie jest równa jednej z wartości określonej na liście wartości lub będących wynikiem instrukcji SELECT.

Przykład:

WHERE miasto = ‘Gdansk’ OR miasto =

‘Gdynia’ OR miasto = ‘Sopot’

jest równoważne:

WHERE miasto IN (‘Gdansk’, ‘Gdynia’, ‘Sopot’)

(17)

BETWEEN - sprawdza, czy wartość w kolumnie jest zawarta w przedziale wartości.

Przykład:

WHERE pensja>=3000 AND pensja<=5000

jest równoważne:

WHERE pensja BETWEEN 3000 AND 5000

(18)

LIKE - porównuje zawartość kolumny znakowej z łańcuchem znaków, który może zawierać symbole wieloznaczne.

Symbole wieloznaczne:

_ (podkreślenie) - pasuje do dowolnego pojedynczego znaku,

% (procent) - pasuje do dowolnej liczby dowolnych znaków.

Przykład

Pokaż wszystkich pracowników o nazwiskach zaczynających się na literę B.

SELECT nazwisko FROM pracownicy WHERE nazwisko LIKE ‘B%’;

(19)

CONTAINS - sprawdza, czy wartość w kolumnie znakowej zawiera wskazany łańcuch.

Przykład:

Pokaż wszystkich pracowników, których nazwisko zawiera łańcuch ‘ore’:

SELECT nazwisko FROM pracownicy

WHERE nazwisko CONTAINS ‘ore’;

Uwaga: Łańcuch użyty w operatorze CONTAINS

może zawierać znaki specjalne oznaczające OR i AND.

(20)

Bez frazy ORDER BY wyniki zapytania ukazują się w

porządku nieokreślonym (w porządku wstawienia ich do tablicy).

ORDER BY <nazwa kolumny/numer> [ASC/DESC]

Uwagi:

1.Numer kolumny we frazie ORDER BY oznacza pozycję kolumny na liście wyboru instrukcji SELECT. Trzeba go użyć, jeśli porządkujemy wg wartości wyrażenia.

2. Domyślnie przyjmowany jest porządek rosnący (ASC).

Przykład 1

Pokaż alfabetycznie dane o pracownikach (nazwisko, imie, pesel).

SELECT nazwisko, imie, pesel FROM pracownicy ORDER BY nazwisko ASC;

(21)

GROUP BY <

nazwa kolumny>

[HAVING <

warunek>]

Fraza ta powoduje powiązanie ze sobą

wierszy wynikowych z instrukcji SELECT w grupy wierszy, w których wskazane we frazie GROUP BY kolumny mają tę samą wartość. Następnie każda grupa jest

redukowana do pojedynczego wiersza.

W tym wierszu występują kolumny z frazy GROUP BY oraz ew. kolumny będące

wynikiem funkcji agregujących. Funkcje te wówczas działają na każdej grupie osobno.

Następnie eliminowane są wiersze nie spełniające warunku HAVING.

(22)

Uwaga 1!

Każda kolumna występująca we frazie GROUP BY

musi wystąpić na liście wyboru instrukcji SELECT, i na odwrót.

Uwaga 2!

W warunku HAVING może wystąpić funkcja agregująca (ale nie w warunku WHERE!).

Przykład

Policz ilość pracowników w każdym mieście.

SELECT miasto, COUNT(*) FROM pracownicy GROUP BY miasto;

(23)

Cytaty

Powiązane dokumenty

„Koszyk pełen wierszy”- wyboru dokonała Natalia Usenko, wydawnictwo KAMA, Warszawa 1999 oraz wierszy ze zbioru „Kapelusz pełen bajek” Haliny Szayerowej, Wydawnictwo

szu odsłania się tajemnica ciągłości poezji, bo wiersz jest zawsze fragmentem

Podobnie jak pod- czas pierwszej edycji w Bramie Grodzkiej i Ośrodku NN będzie się odbywała większość wyda- rzeń, codziennie mniej więcej od godziny 16.00 - mówi Adam

Zaprzyj¿0 mnie się, Boże, w niebie, I Mario, polskich serc Królowo ! K rew moich braci, krew ofiarna,!. Która im rzekę trza przelewać, Użyźnia role pod te ziarna, Które ja

Nad Zamkiem pierwsze słońce krwawo tli, Bernardyn rannym dzwonem się rozgadał, Idę przez miasto .postąp/ Kleszcza witam - Mickiewicz głowę jeszcze wyżej wznosi, Może o

Zmień nazwę kolumny zawierającej efekt działania funkcji. SELECT SUM(pensja) AS

Utwórz widok TSrednia, który obliczy średnią pensję w każdym mieście. Wyniki

Jak mogło się zdarzyć, Że ja, który znałem dotychczas rodzinny dom, Ja, otwierający oczy przed liściem płynącym, Ja, otoczony czułością oczu rodziców,.. Odszedłem na