podst języka SQL

background image

Relacyjne bazy danych

Podstawy SQL

background image

J

ę

zyk SQL

SQL

(

S

tructured

Q

uery

L

anguage)

j

ę

zyk umo

ż

liwiaj

ą

cy

dost

ę

p i przetwarzanie danych w bazie danych na poziomie

obiektów modelu relacyjnego tj. tabel i perspektyw.

Po co si

ę

uczy

ć

?



SQL umo

ż

liwia odczyt informacji z ka

ż

dej relacyjnej bazy

danych



zrozumienie mechanizmów rz

ą

dz

ą

cych graficznymi

interfejsami u

ż

ytkownika



mo

ż

liwo

ść

tworzenia zło

ż

onych zapyta

ń



wiedza przydatna na wielu platformach sprz

ę

towych

background image

Funkcje realizowane przez SQL



definicja struktury bazy danych



odczyt danych



modyfikacja danych



kontrola dost

ę

pu



współu

ż

ytkowanie danych



współu

ż

ytkowanie danych



integralno

ść

danych

Mo

ż

na u

ż

ywa

ć

go jako:



element aplikacji i narz

ę

dzi programowych



interakcyjny j

ę

zyk zapyta

ń



j

ę

zyk komunikacji pomi

ę

dzy ró

ż

nymi SZRBD

background image

Składnia SQL - SELECT

SELECT

FROM

nazwa kolumny

nazwa tabeli

WHERE

GROUP BY

warunek wyszukiwania

nazwa kolumny

background image

Składnia SQL - SELECT

SELECT

FROM

nazwa kolumny

nazwa tabeli

Przykłady:

Przykłady:



SELECT

nazwisko

FROM

TSedziowie;



SELECT

nazwa, id

FROM

TKluby

;



SELECT

gol1, gol2, gol3, gol4

FROM

TMecze

;



SELECT

*

FROM

TKluby;

background image

SELECT – eliminowanie duplikatów

SELECT

FROM

nazwa tabeli

nazwa kolumny

DISTINCT

Przykłady:

Przykłady:



SELECT

DISTINCT

kolejka

FROM

TMecze

;

background image

Sortowanie rekordów

SELECT

FROM

nazwa tabeli

nazwa kolumny

ORDER BY

nazwa kolumny

ASC

DESC

Przykłady:



SELECT

imie, nazwisko

FROM

TSedziowie

ORDER BY

nazwisko, imie

ASC

;



SELECT

imie, nazwisko

FROM

TSedziowie

ORDER BY

nazwisko, imie

DESC

;



SELECT

imie, nazwisko

FROM

TSedziowie

ORDER BY

nazwisko

ASC

, imie

DESC

;



SELECT

DISTINCT

kolejka

FROM

TMecze

ORDER BY

kolejka

DESC

;

background image

Proste wyra

ż

enia

Mo

ż

na u

ż

ywa

ć

operatorów do wykonywania działa

ń

na polach, np.

+, -, *, /,

Przykłady:

SELECT

domin-odmin

FROM

tsklady

;

background image

Nadawanie nazw

SELECT

AS

nazwa kolumny - nowa

wyrażenie

Przykłady:

SELECT

domin-odmin

AS

CzasGryPiłkarza

FROM

tsklady;

SELECT

domin-odmin

AS

CzasGryPiłkarza

FROM

tsklady;

SELECT

m.id, k1.nazwa, k2.nazwa

FROM

TMecze

AS

m, TKluby

AS

k1, TKLuby

AS

k2

;

background image

Filtrowanie danych

Przykłady:

SELECT

FROM

nazwa tabeli

wyrażenie

WHERE

warunek wyszukiwania

AS

alias

DISTINCT

Przykłady:

SELECT

*

FROM

tKartkiGole

WHERE

rodzaj =

"

K

";

SELECT

imie, nazwisko

FROM

TPilkarze

WHERE

klubid = 3;;

SELECT

nazwa

FROM

TKluby

WHERE

id = 999

SELECT

p.imie, p.nazwisko, k.nazwa

FROM

TPilkarze as p,

TKluby as k

WHERE

p.klubid = k.id

AND

k.id = 4

ORDER BY

p.nazwisko;

background image

Filtrowanie danych – warunki wyszukiwania

Podstawowe warunki:



porównanie (operatory: =, <>, <, >, <=, >=)



zakres (BETWEEN … AND …)



wyst

ę

powanie (IN)



wzór (LIKE)



* - zast

ę

puje dowolny ci

ą

g znaków



? - zast

ę

puje pojedynczy znak



puste warto

ś

ci (IS NULL)



istnienie (EXISTS)

background image

Filtrowanie danych – warunki wyszukiwania

Przykłady:

SELECT

*

FROM

tsedziowie

WHERE

miasto <> "Warszawa";

SELECT

*

FROM

tmecze

WHERE

kiedy

BETWEEN

#

2003-08-16

#

AND

#

2003-09-13

#;

AND

#

2003-09-13

#;

SELECT

*

FROM

tmecze

WHERE

kolejka

IN

("2", "3", "5")

;

SELECT

*

FROM

tsedziowie

WHERE

miasto

IS NULL;

SELECT

imie, nazwisko

FROM

tsedziowie

WHERE

nazwisko

LIKE

"G*";

background image

Filtrowanie danych – ł

ą

czenie predykatów

Warunki zło

ż

one buduje si

ę

przy pomocy operatorów

logicznych

AND

,

OR

,

NOT

Przykłady:

Przykłady:



SELECT

p.imie, p.nazwisko, k.nazwa

FROM

TPilkarze as p,

TKluby as k

WHERE

p.klubid = k.id

AND

k.id = 4

ORDER BY

p.nazwisko;



SELECT

id

FROM

TMecze

WHERE

gospodarz = 5

OR

przeciwnik

= 5

;

background image

Proste funkcje agregujące

SELECT

wyrażenie

AS

alias

COUNT (*)

COUNT

SUM

AVG

FROM

nazwa tabeli

WHERE

warunek wyszukiwania

AVG

MIN

MAX

background image

Przykłady:



SELECT

SUM

(widownia)

FROM

Tmecze

;



SELECT

SUM

(gol1) +

SUM

(gol2)

FROM

TMecze

;

Proste funkcje agregujące



SELECT

COUNT(*)

FROM

TPilkarze, TKluby

;



SELECT

COUNT(*)

FROM

tKartkiGole

WHERE

rodzaj =

"

S

";



SELECT

COUNT(*)

as ilegoli

FROM

tKartkiGole

WHERE

rodzaj =

"

N

"

OR

rodzaj =

"

K

"

OR

rodzaj =

"

S

";

background image

Zapytania wielotabelowe

Wa

ż

ne:



nale

ż

y poda

ć

wszystkie nazwy tablic w klazuzuli FROM



w celu unikni

ę

cia niejednoznaczno

ś

ci nale

ż

y stosowa

ć

nazwy

kwalifikowane pól (poprzedzone nazw

ą

tabeli lub alias)



we frazie WHERE nale

ż

y umie

ś

ci

ć

warunek wi

ążą

cy zbiory

Nazwa kwalifikowana:

np. GoleKartki.rodzaj, TKluby.nazwa

Alias tablicy umieszcza si

ę

we frazie FROM np.

FROM

TMecze

AS

m, TKluby

AS

k1, TKLuby

AS

k2

background image

Zapytanie

SELECT

imie, nazwisko, nazwa

FROM

TPilkarze, TKluby

zwraca wszystkie możliwe kombinacje rekordów tabel TPilkarze,

TKluby w ilości:

Zapytania wielotabelowe - przykłady

TKluby w ilości:

SELECT

COUNT

(*)

FROM

TPilkarze, TKluby

czyli iloczyn:

SELECT

COUNT

(*)

FROM

TPilkarze

SELECT

COUNT

(*)

FROM

TKluby

background image

Zapytania wielotabelowe - przykłady

SELECT

COUNT

(*) as liczbapilkarzy

FROM

TPilkarze

AS

p,

TKluby

AS

k

WHERE

p.klubid = k.id

AND

k.id = 4

SELECT

p.imie, p.nazwisko, k.nazwa

FROM

TPilkarze

AS

p,

TKluby

AS

k

WHERE

p.klubid = k.id

AND

p.id = 179

TKluby

AS

k

WHERE

p.klubid = k.id

AND

p.id = 179

SELECT

k1.nazwa, k2.nazwa, m.id

FROM

TKluby

AS

k1,

TKluby

AS

k2, TMecze

AS

m

WHERE

m.id = 5

AND

k1.id

= m.gospodarz

AND

k2.id = m.przeciwnik

background image

Klauzula JOIN

Klazula

JOIN

pozwala łączyć ze sobą kilka tabel

SELECT

FROM

nazwa tabeli

nazwa kolumny

JOIN

ON

nazwa tabeli

warunek wyszukiwania

Klazula

JOIN

pozwala łączyć ze sobą kilka tabel

wykorzystując do tego klucze główne i obce.

Dotyczy tylko tych wierszy, które mają swoje odpowiedniki

w tabeli komplementarnej.

background image

Klauzula INNER JOIN - przykłady

SELECT

COUNT

(*) as liczbapilkarzy

FROM

TPilkarze

AS

p

INNER JOIN

TKluby

AS

k

ON

p.klubid = k.id

AND

k.id =

4

;

SELECT

p.imie, p.nazwisko, k.nazwa

FROM

TPilkarze

AS

p

INNER JOIN

TKluby

AS

k

ON

p.klubid = k.id

AND

p.id =

INNER JOIN

TKluby

AS

k

ON

p.klubid = k.id

AND

p.id =

179;

SELECT

imie, nazwisko, nazwa

FROM

TPilkarze

INNER JOIN

TKluby

ON

TPilkarze.klubid = TKluby.id

AND

TPilkarze.id

= 179

background image

Klauzula GROUP BY

SELECT

FROM

nazwa tabeli

nazwa kolumny

WHERE

warunek wyszukiwania

GROUP BY

nazwa kolumny

Przykłady:



liczba goli i kartek zdobytych przez każdego z piłkarzy



liczba goli i kartek zdobytych przez każdego z piłkarzy

SELECT

pilkarzid,

COUNT

(*)

AS

ile

FROM

tKartkiGole

GROUP

BY

pilkarzid

ORDER BY

ile

DESC



liczba goli zdobyta przez każdego z piłkarzy

SELECT

pilkarzid,

COUNT

(*)

AS

ile

FROM

tKartkiGole

WHERE

(rodzaj = "N"

OR

rodzaj = "K")

GROUP BY

pilkarzid

ORDER BY

ile

DESC

background image

Klauzula GROUP BY - c.d.

Co z nazwiskami piłkarzy, jak je uzyskać?

SELECT

p.imie, p.nazwisko, pilkarzid,

COUNT

(*)

AS

ile

FROM

tKartkiGole, TPilkarze

AS

p

WHERE

WHERE

(rodzaj = "N"

OR

rodzaj = "K")

AND

p.id = pilkarzid

GROUP BY

pilkarzid

ORDER BY

ile

DESC;

background image

Klauzula GROUP BY – c. d.

Jak uzyskać listę strzelców z danego klubu?

SELECT

p.imie, p.nazwisko, kl.nazwa,

COUNT

(*)

AS

ile

FROM

tKartkiGole

AS

gol, TPilkarze

AS

p, TKluby

AS

kl

WHERE

WHERE

gol.rodzaj =

"

N

"

AND

p.id = gol.pilkarzid

AND

kl.id = gol.klubid

AND

kl.id = 2

GROUP BY

gol.pilkarzid

ORDER BY

ile

DESC

;

background image

Ograniczenie liczby rekordów - LIMIT

Klauzula LIMIT ogranicza liczbę jednocześnie wyświetlanych

rekordów

SELECT

*

FROM

"tmecze"

LIMIT

15

zwraca 15 pierwszych rekordów

zwraca 15 pierwszych rekordów

SELECT

*

FROM

"tsklady"

LIMIT

105, 15

zwraca 15 kolejnych rekordów pomijając pierwsze 105

background image

Instrukcje modyfikacji tablic



INSERT – pozwala dopisywać nowe wiersze do

tablicy



UPDATE - pozwala modyfikować istniejące dane



DELETE – pozwala usunąć wiersze z tablicy

background image

Instrukcja INSERT

INSERT

nazwa tabeli,

ew. nazwy kolumn

VALUES

wartości

INTO

Przykłady:



INSERT

INTO

tKartkiGole

VALUES

( "1", "1", "266", "7",

"28", "K");



INSERT

INTO

TPilkarze

VALUES

( "114", "Piotr",

"Soczewka", "2");



INSERT

INTO

TPilkarze (id, imie, nazwisko)

VALUES

(

"350", "Grzegorz", "Kowalski");

background image

Instrukcja UPDATE

UPDATE

nazwa tabeli

WHERE

wartości

SET

warunek

wyszukiwania

SET – podaje nazwy kolumn i przypisane im nowe wartości

WHERE – określa, które rekordy mają być modyfikowane

Przykłady:



UPDATE

TPilkarze

SET

nazwisko = "Gruszka"

WHERE

id

= 114;



UPDATE

TPilkarze

SET

imie = "Jan", nazwisko =

"Gruszka"

WHERE

id = 114;

background image

Instrukcja DELETE

DELETE

nazwa tabeli

WHERE

warunek

wyszukiwania

FROM

Przykłady:



DELETE FROM

TPilkarze

WHERE

id = 350;



DELETE FROM

TPilkarze

WHERE

klubid

IN

(

SELECT

id

FROM

tkluby

WHERE

nazwa

LIKE

"

*

Warszawa

*

");

background image

Tworzenie tabel

CREATE

nazwa tabeli

WHERE

nazwa kolumny=typ

TABLE

Przykłady:

CREATE TABLE

TPilkarze (

id int(11) NOT NULL auto_increment,

imie varchar(75) NOT NULL,

nazwisko varchar(75) NOT NULL,

klubid int(11),

PRIMARY KEY (id),

UNIQUE id_2 (id),

KEY id (id, imie, nazwisko, klubid)

);

background image

Usuwanie tabel

DROP

nazwa tabeli

TABLE

Przykłady:

DROP TABLE

TPilkarze;

DROP TABLE

TMecze;

DROP TABLE

tKartkiGole;

background image

Klauzula UNION

Klauzula

UNION

– służy do łączenia rezultatów dwóch lub

więcej instrukcji SELECT w jedną tablicę

Łączone instrukcje SELECT muszą spełniać określone

warunki:



muszą zawierać tę samą liczbe kolumn



muszą zawierać tę samą liczbe kolumn



odpowiednie kolumny ze wszystkich instrukcji SELECT
muszą mieć zgodne typy



klauzula ORDER BY może wystąpić tylko w ostatniej
instrukcji SELECT

background image

Klauzula UNION

SELECT

*

FROM

tKartkiGole

WHERE

rodzaj = "N"

UNION

UNION

SELECT

*

FROM

tKartkiGole

WHERE

rodzaj = "S"

;


Wyszukiwarka

Podobne podstrony:
Podstawy języka SQL, TYTAN 5
Podstawy języka SQL Kuśnierz
bd ii cw1 podstawy jezyka sql
Podstawy języka SQL
Bazy Danych Elementy Jezyka SQL cz I
SQL3 Nowy standard jezyka SQL 1998 (1)
rozkazy jezyka sql
Bazy Danych Elementy Jezyka SQL cz II
Podstawy języka SQL
Podstawy Jezyka SQL
kurs języka sql 4V63FQE2BQUQV6W7NGMCCMNMQIGPG6WCRKIPWMI
Antywzorce jezyka SQL Jak unikac pulapek podczas programowania baz danych
ABC jezyka SQL abcsql
Antywzorce jezyka SQL Jak unikac pulapek podczas programowania baz danych
ABC jezyka SQL abcsql

więcej podobnych podstron