Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth … · 2021. 3. 17. · Tytuł...

24

Transcript of Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth … · 2021. 3. 17. · Tytuł...

Page 1: Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth … · 2021. 3. 17. · Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth Edition Tłumaczenie: Rafał
Page 2: Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth … · 2021. 3. 17. · Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth Edition Tłumaczenie: Rafał

Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth Edition

Tłumaczenie: Rafał Jońca

ISBN: 978-83-283-1089-6

Authorized translation from the English language edition: SAMS TEACH YOURSELF SQL IN 10 MINUTES, Fourth Edition; ISBN 0672336073; by Ben Forta; published by Pearson Education, Inc; publishing as SAMS Publishing.Copyright © 2013 by Pearson Education, Inc.

All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from Pearson Education Inc.Polish language edition published by HELION S.A. Copyright © 2015.

Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji.

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.

Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie,ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce.

Wydawnictwo HELIONul. Kościuszki 1c, 44-100 GLIWICEtel. 32 231 22 19, 32 230 98 63e-mail: [email protected]: http://helion.pl (księgarnia internetowa, katalog książek)

Pliki z przykładami omawianymi w książce można znaleźć pod adresem: ftp://ftp.helion.pl/przyklady/sqldko.zip

Drogi Czytelniku!Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/user/opinie/sqldkoMożesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.

Printed in Poland.

• Kup książkę• Poleć książkę • Oceń książkę

• Księgarnia internetowa• Lubię to! » Nasza społeczność

Page 3: Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth … · 2021. 3. 17. · Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth Edition Tłumaczenie: Rafał

Spis tre ci

Wprowadzenie .......................................................................... 11

Rozdzia 1. Podstawy j zyka SQL ................................................................. 15

Rozdzia 2. Pobieranie danych .................................................................... 23

Rozdzia 3. Sortowanie otrzymywanych danych .......................................... 35

Rozdzia 4. Filtrowanie danych .................................................................... 41

Poleć książkęKup książkę

Page 4: Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth … · 2021. 3. 17. · Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth Edition Tłumaczenie: Rafał

4 Spis tre ci

Rozdzia 5. Zaawansowane filtrowanie danych ........................................... 49

Rozdzia 6. Filtrowanie za pomoc znaków wieloznacznych ....................... 57

Rozdzia 7. Tworzenie pól obliczanych ........................................................ 65

Rozdzia 8. Modyfikacja danych za pomoc funkcji .................................... 73

Rozdzia 9. Funkcje agreguj ce ................................................................... 81

Rozdzia 10. Grupowanie danych .................................................................. 91

Rozdzia 11. Zapytania zagnie d one ........................................................... 99

Poleć książkęKup książkę

Page 5: Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth … · 2021. 3. 17. · Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth Edition Tłumaczenie: Rafał

Spis tre ci 5

Rozdzia 12. czenie tabel ......................................................................... 107

Rozdzia 13. Tworzenie rozbudowanych z cze ........................................ 117

Rozdzia 14. czenie zapyta ..................................................................... 127

Rozdzia 15. Wstawianie danych ................................................................. 133

Rozdzia 16. Aktualizacja i usuwanie danych .............................................. 141

Rozdzia 17. Tworzenie i modyfikacja tabel ................................................. 147

Rozdzia 18. Stosowanie perspektyw .......................................................... 155

Poleć książkęKup książkę

Page 6: Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth … · 2021. 3. 17. · Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth Edition Tłumaczenie: Rafał

6 Spis tre ci

Rozdzia 19. Korzystanie z zapami tanych procedur ................................... 165

Rozdzia 20. Zarz dzanie transakcjami ........................................................ 173

Rozdzia 21. Kursory ................................................................................... 181

Rozdzia 22. Zaawansowane funkcje j zyka SQL ......................................... 187

Dodatek A Skrypty przyk adowych tabel .................................................. 199

Dodatek B Praca z popularnymi aplikacjami ............................................. 205

Poleć książkęKup książkę

Page 7: Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth … · 2021. 3. 17. · Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth Edition Tłumaczenie: Rafał

Spis tre ci 7

Dodatek C Sk adnia instrukcji SQL ............................................................ 215

Dodatek D Typy danych j zyka SQL .......................................................... 221

Dodatek E S owa kluczowe j zyka SQL ..................................................... 227

Skorowidz ............................................................................... 231

Poleć książkęKup książkę

Page 8: Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth … · 2021. 3. 17. · Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth Edition Tłumaczenie: Rafał

8 Spis tre ci

Poleć książkęKup książkę

Page 9: Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth … · 2021. 3. 17. · Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth Edition Tłumaczenie: Rafał

Rozdzia 10Grupowanie danych

W tym rozdziale opisana jest funkcja grupowania danych, która umo liwiapodsumowywanie podzbiorów tabeli. Wprowadzone s te dwie nowe frazy in-strukcji SELECT: GROUP BY i HAVING.

Omówienie grupowania danych

WHERE

DLL01

Wej cie

SELECT COUNT(*) AS liczba_prodFROM ProduktyWHERE dost_id = 'DLL01';

Wyj cie

liczba_prod------------4

Poleć książkęKup książkę

Page 10: Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth … · 2021. 3. 17. · Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth Edition Tłumaczenie: Rafał

92 Rozdzia 10. Grupowanie danych

Tworzenie grupGROUP BY SELECT

Wej cie

SELECT dost_id, COUNT(*) AS liczba_prodFROM ProduktyGROUP BY dost_id;

Wyj cie

dost_id liczba_prod------- -----------BRS01 3DLL01 4FNG01 2

Analiza

SELECT dost_idliczba_prod

COUNT(*) GROUP BYdost_id liczba_prod

dost_idBRS01

DLL01 FNG01

GROUP BY

GROUP BY

GROUP BY

GROUP BY

Poleć książkęKup książkę

Page 11: Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth … · 2021. 3. 17. · Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth Edition Tłumaczenie: Rafał

Filtrowanie grup 93

GROUP BY

SELECTGROUP BY

GROUP BY

SELECTGROUP BY

NULLNULL NULL

GROUP BYWHERE ORDER BY

Fraza ALLPewne implementacje SQL (na przyk ad Microsoft SQL Server) obs ugujopcjonaln fraz ALL dla GROUP BY. Fraza ta mo e pos u y do zwróceniawszystkich grup, nawet tych, dla których agregacja spowodowa aby zwró-cenie warto ci NULL. Szczegó ów nale y szuka w dokumentacji SZBD.

Okre lanie kolumn za pomoc po o e wzgl dnychNiektóre implementacje SQL umo liwiaj podanie we frazie GROUP BYpo o e kolumn z listy SELECT. Mo na wtedy na przyk ad napisa GROUPBY 2, 1, aby grupowanie najpierw odby o si wzgl dem drugiej kolumny,a nast pnie pierwszej. Cho ten skrótowy zapis jest bardzo kusz cy, nieobs uguj go wszystkie implementacje, a dodatkowo niesie ze sob ryzykopojawienia si b dów po zmianie kolejno ci kolumn.

Filtrowanie grup

WHERE

WHERE

Poleć książkęKup książkę

Page 12: Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth … · 2021. 3. 17. · Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth Edition Tłumaczenie: Rafał

94 Rozdzia 10. Grupowanie danych

WHEREHAVING WHERE

WHEREHAVING WHERE

HAVING

Fraza HAVING obs uguje wszystkie operatory frazy WHERERozdzia y 4. i 5. opisywa y proste i zaawansowane filtrowanie danych(w czaj c w to znaki wieloznaczne i u ycie wielu operatorów). Wszystkieopisane tam operatory mo na z powodzeniem stosowa we frazie HAVING.Sk adnia jest identyczna, zmienia si tylko s owo kluczowe.

Wej cie

SELECT kl_id, COUNT(*) AS zamowieniaFROM ZamowieniaGROUP BY kl_idHAVING COUNT(*) >= 2;

Wyj cie

kl_id zamowienia----------- ----------1000000001 2

Analiza

HAVINGCOUNT(*) >= 2

WHERE

Ró nica mi dzy HAVING i WHEREMo na na to zagadnienie spojrze inaczej. Fraza WHERE filtruje dane przedgrupowaniem, natomiast HAVING po. Jest to wa na ró nica — wierszewyeliminowane przez fraz WHERE w ogóle nie zostan wzi te pod uwa-g przy tworzeniu grup. Powoduje to zmian warto ci pól obliczanych,a tym samym zmian wy wietlanych grup, gdy przeprowadzane jest fil-trowanie.

Poleć książkęKup książkę

Page 13: Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth … · 2021. 3. 17. · Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth Edition Tłumaczenie: Rafał

Filtrowanie grup 95

WHERE HAVING

WHEREHAVING

Wej cie

SELECT dost_id, COUNT(*) AS liczba_prodFROM ProduktyWHERE prod_cena >= 10GROUP BY dost_idHAVING COUNT(*) >= 2;

Wyj cie

dost_id liczba_prod------- -----------BRS01 3FNG01 2

Analiza

SELECTWHERE prod_cena

dost_idHAVING

WHEREDLL01

Wej cie

SELECT dost_id, COUNT(*) AS liczba_prodFROM ProduktyGROUP BY dost_idHAVING COUNT(*) >= 2;

Poleć książkęKup książkę

Page 14: Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth … · 2021. 3. 17. · Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth Edition Tłumaczenie: Rafał

96 Rozdzia 10. Grupowanie danych

Wyj cie

dost_id liczba_prod------- -----------BRS01 3DLL01 4FNG01 2

Stosowanie HAVING i WHEREFraza HAVING jest tak podobna do frazy WHERE, e wi kszo SZBD trak-tuje je identycznie, je li nie okre lono frazy GROUP BY. Mimo to wartosamemu jasno rozdziela obie frazy, czyli HAVING stosowa tylko z GROUPBY, a WHERE u ywa do filtrowania na ni szym poziomie.

Grupowanie i sortowanieGROUP BY ORDER BY

Tabela 10.1. Frazy ORDER BY i GROUP BY

ORDER BY GROUP BY

Sortuje wygenerowane wyj cie. Grupuje wiersze. Wyj cie nie musi byjednak posortowane wzgl dem grup.

Mo na stosowa dla dowolnychkolumn (tak e tych, które nie szwracane).

Mo na zastosowa tylko wobeczwracanych kolumn lub wyra e .Wyst pi musz wszystkie zwracanekolumny lub wyra enia.

Stosowanie frazy nie jestzawsze wymagane.

Stosowanie frazy jest konieczne,je li u ywa si kolumn (lub wyra e )z funkcjami agreguj cymi.

GROUP BY

ORDER BY

GROUP BY

Poleć książkęKup książkę

Page 15: Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth … · 2021. 3. 17. · Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth Edition Tłumaczenie: Rafał

Grupowanie i sortowanie 97

Nie zapominaj o frazie ORDER BYOgólnie rzecz ujmuj c, za ka dym razem, gdy stosuje si fraz GROUP BY,powinno si tak e stosowa fraz ORDER BY, gdy jest to jedyny sposóbzapewnienia odpowiedniego sortowania danych. Nigdy nie nale y pole-ga na sortowaniu za pomoc GROUP BY.

GROUP BY ORDER BYSELECT

Wej cie

SELECT zam_numer, COUNT(*) AS elementyFROM ElementyZamowieniaGROUP BY zam_numerHAVING COUNT(*) >=3;

Wyj cie

zam_numer elementy--------- -------- 20006 3 20007 5 20008 5 20009 3

ORDER BY

Wej cie

SELECT zam_numer, COUNT(*) AS elementyFROM ElementyZamowieniaGROUP BY zam_numerHAVING COUNT(*) >=3ORDER BY elementy, zam_numer;

Niezgodno z baz AccessBaza Danych Microsoft Access nie obs uguje sortowania na podstawiealiasów, wi c przedstawiony przyk ad nie zadzia a. Rozwi zaniem jestzast pienie nazwy elementu (z frazy ORDER BY) rzeczywistym wylicze-niem lub pozycj pola, na przyk ad ORDER BY COUNT(*), zam_numer lubORDER BY 2, zam_numer.

Poleć książkęKup książkę

Page 16: Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth … · 2021. 3. 17. · Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth Edition Tłumaczenie: Rafał

98 Rozdzia 10. Grupowanie danych

Wyj cie

zam_numer elementy--------- -------- 20006 3 20009 3 20007 5 20008 5

Analiza

GROUP BYzam_numer COUNT(*)

HAVING

ORDER BY

Kolejno fraz instrukcji SELECT

SELECT

Tabela 10.2. Frazy instrukcji SELECT i ich kolejno

Fraza Opis Wymagane

SELECT zwracanie kolumnlub wyra e

tak

FROM pobranie danych zawartychw tabelach

tylko gdy wymagane s danez tabel

WHERE filtrowanie wierszy nie

GROUP BY tworzenie grup tylko do obliczania funkcjiagreguj cych na grupach

HAVING filtrowanie grup nie

ORDER BY sortowanie wyj cia nie

Podsumowanie

GROUP BYHAVING

GROUP BY ORDER BY WHERE HAVING

Poleć książkęKup książkę

Page 17: Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth … · 2021. 3. 17. · Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth Edition Tłumaczenie: Rafał

Skorowidz

A

BPatrz te :

Patrz:

Patrz:

C

DPatrz te :

Patrz:

Poleć książkęKup książkę

Page 18: Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth … · 2021. 3. 17. · Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth Edition Tłumaczenie: Rafał

232 Skorowidz

Patrz:

Patrz:

FPatrz te :

I

Patrz:

Patrz te :

Poleć książkęKup książkę

Page 19: Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth … · 2021. 3. 17. · Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth Edition Tłumaczenie: Rafał

Skorowidz 233

J

K

Patrz:

M

O

Patrz:

P

Patrz:

Poleć książkęKup książkę

Page 20: Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth … · 2021. 3. 17. · Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth Edition Tłumaczenie: Rafał

234 Skorowidz

Patrz:

Q

R

S

Patrz:

Patrz:

T

Patrz:

U

Poleć książkęKup książkę

Page 21: Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth … · 2021. 3. 17. · Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth Edition Tłumaczenie: Rafał

Skorowidz 235

WPatrz:

ZPatrz te :

Patrz:

Poleć książkęKup książkę

Page 22: Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth … · 2021. 3. 17. · Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth Edition Tłumaczenie: Rafał

232 Skorowidz

Poleć książkęKup książkę

Page 24: Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth … · 2021. 3. 17. · Tytuł oryginału: Sams Teach Yourself SQL in 10 Minutes, Fourth Edition Tłumaczenie: Rafał