tytuł oryginału: sams teach yourself sql in 10 minutes, fourth … · 2021. 3. 17. · tytuł...
TRANSCRIPT
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ść
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ę
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ę
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ę
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ę
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ę
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ę
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ę
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ę
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ę
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ę
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ę
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ę
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ę
Skorowidz
A
BPatrz te :
Patrz:
Patrz:
C
DPatrz te :
Patrz:
Poleć książkęKup książkę
232 Skorowidz
Patrz:
Patrz:
FPatrz te :
I
Patrz:
Patrz te :
Poleć książkęKup książkę
Skorowidz 233
J
K
Patrz:
M
O
Patrz:
P
Patrz:
Poleć książkęKup książkę
234 Skorowidz
Patrz:
Q
R
S
Patrz:
Patrz:
T
Patrz:
U
Poleć książkęKup książkę
Skorowidz 235
WPatrz:
ZPatrz te :
Patrz:
Poleć książkęKup książkę