﻿Język SQL. Przyjazny podręcznik, wydanie 2, wydawnictwo Helion SA, 2017

.

Instrukcje SQL dla MySQL



- - - - - - — - - - - - - - - - - - - -
JAK KORZYSTAĆ Z TEGO PLIKU
- - - - - - — - - - - - - - - - - - - -



Znajdziesz tu wszystkie instrukcje SQL o składni dedykowanej dla MySQL, które zamieszczono w książce „Język SQL. Przyjazny podręcznik”. 

Wśród nich znajdziesz również takie, które umożliwią Ci utworzenie tych samych struktur danych, do których występują odwołania w tej książce. Dzięki temu będziesz mógł uruchomić każde z poniższych zapytań i zobaczyć jego wyniki.

Zanim przystąpisz do tworzenia struktur bazodanowych, wypełniania ich danymi i uruchamiania zapytań, będziesz musiał zainstalować dwa komponenty: 

1) MySQL Community Server
2) MySQL Workbench

W dodatku B do książki „Język SQL. Przyjazny podręcznik” znajdziesz instrukcje ich poprawnej instalacji, a także wskazówki odnośnie tworzenia bazy danych.

Aby zobaczyć wynik danego zapytania umieszczonego w tym pliku, wystarczy je skopiować, wkleić w oknie przeznaczonym do wpisywania zapytań w MySQL Workbench i uruchomić.

W tym pliku znajdziesz:

1) Skrypt do tworzenia tabel oraz umieszczania w nich danych, bądź ich usuwania

Skryptu należy użyć do utworzenia struktr bazodanowych oraz wstawienia do nich danych. Wówczas możliwe będzie wykonanie znajdujących się w książce zapytań. Znajdują się w nim polecenia CREATE TABLE za pomocą których zostaną utworzone tabele, instrukcje ze słowem kluczowym INSERT umożliwiające wstawienie do nich danych, a także polecenia DROP TABLE dające możliwość usunięcia tabeli z bazy danych, jeśli dana tabela już w niej istnieje i chcielibyśmy zastąpić ją inną. Jak już wspomniano, przed uruchomieniem poniższego skryptu konieczne będzie utworzenie bazy danych. Gdy już powstanie, wystarczy skopiować cały skrypt i umieścić go w oknie przeznaczonym do tworzenia zapytań i uruchomić. 

2) Instrukcje SQL z książki

W tej sekcji znajdziesz wszystkie instrukcje SQL zamieszczone w kolejnych rozdziałach książki, o składni dedykowanej dla MySQL. Jeśli dane zapytanie nie miało zastosowania w przypadku tej bazy danych, zostało pominięte. W rozdziałach 1., 19. oraz 20. nie umieszczono żadnych instrukcji SQL.



- - - - - - — - - - - - - - - - - - - -
SKRYPT DO TWORZENIA TABEL I UMIESZCZANIA W NICH DANYCH
- - - - - - — - - - - - - - - - - - - -



-- Tabela Klienci:

DROP TABLE IF EXISTS Klienci;

CREATE TABLE Klienci
(IDKlienta INT NOT NULL,
ImięKlienta VARCHAR(30) NULL,
NazwiskoKlienta VARCHAR(30) NULL);

INSERT INTO Klienci (IDKlienta, ImięKlienta, NazwiskoKlienta)
VALUES (1, 'Sylwia', 'Dudziak');

INSERT INTO Klienci (IDKlienta, ImięKlienta, NazwiskoKlienta)
VALUES (2, 'Ryszard', 'Wieczorek');

INSERT INTO Klienci (IDKlienta, ImięKlienta, NazwiskoKlienta)
VALUES (3, 'Paweł', 'Janas');

INSERT INTO Klienci (IDKlienta, ImięKlienta, NazwiskoKlienta)
VALUES (4, 'Szymon', 'Majkowski');

-- Tabela Sprzedaż:

DROP TABLE IF EXISTS Sprzedaż;

CREATE TABLE Sprzedaż
(IDSprzedaży INT NOT NULL,
ImięKlienta VARCHAR(30) NULL,
NazwiskoKlienta VARCHAR(30) NULL,
ZakupionaIlość INT NULL,
CenaZaSztukę FLOAT NULL);

INSERT INTO Sprzedaż (IDSprzedaży, ImięKlienta, NazwiskoKlienta, ZakupionaIlość, CenaZaSztukę)
VALUES (1, 'Andrzej', 'Lipkowski', 4, 2.5);

INSERT INTO Sprzedaż (IDSprzedaży, ImięKlienta, NazwiskoKlienta, ZakupionaIlość, CenaZaSztukę)
VALUES (2, 'Karolina', 'Bielska', 10, 1.25);

INSERT INTO Sprzedaż (IDSprzedaży, ImięKlienta, NazwiskoKlienta, ZakupionaIlość, CenaZaSztukę)
VALUES (3, 'Janusz', 'Solecki', 5, 4);

-- Tabela Produkty:

DROP TABLE IF EXISTS Produkty;

CREATE TABLE Produkty
(IDProduktu INT NOT NULL,
Opis VARCHAR(30) NULL,
Waga INT NULL);

INSERT INTO Produkty (IDProduktu, Opis)
VALUES (1, 'Drukarka A');

INSERT INTO Produkty (IDProduktu, Opis, Waga)
VALUES (2, 'Drukarka B', 0);

INSERT INTO Produkty (IDProduktu, Opis, Waga)
VALUES (3, 'Monitor C', 2);

INSERT INTO Produkty (IDProduktu, Opis, Waga)
VALUES (4, 'Laptop D', 4);

-- Tabela Sprzedawcy:

DROP TABLE IF EXISTS Sprzedawcy;

CREATE TABLE Sprzedawcy
(IDSprzedawcy INT NOT NULL,
ImięSprzedawcy VARCHAR(30) NULL,
NazwiskoSprzedawcy VARCHAR(30) NULL);

INSERT INTO Sprzedawcy (IDSprzedawcy, ImięSprzedawcy, NazwiskoSprzedawcy)
VALUES (1, 'Grzegorz', 'Dubiel');

INSERT INTO Sprzedawcy (IDSprzedawcy, ImięSprzedawcy, NazwiskoSprzedawcy)
VALUES (2, 'Karolina', 'Dubiel');

INSERT INTO Sprzedawcy (IDSprzedawcy, ImięSprzedawcy, NazwiskoSprzedawcy)
VALUES (3, 'Natalia', 'Lipska');

INSERT INTO Sprzedawcy (IDSprzedawcy, ImięSprzedawcy, NazwiskoSprzedawcy)
VALUES (4, 'Justyna', 'Kowalska');

-- Tabela SortowanieDanych:

DROP TABLE IF EXISTS SortowanieDanych;

CREATE TABLE SortowanieDanych
(IDTabeli INT NOT NULL,
DaneZnakowe VARCHAR(30) NULL,
DaneLiczbowe INT NULL);

INSERT INTO SortowanieDanych (IDTabeli, DaneZnakowe, DaneLiczbowe)
VALUES (1, '23', 23);

INSERT INTO SortowanieDanych (IDTabeli, DaneZnakowe, DaneLiczbowe)
VALUES (2, '5', 5);

INSERT INTO SortowanieDanych (IDTabeli, DaneZnakowe)
VALUES (3, 'Pies');

INSERT INTO SortowanieDanych (IDTabeli, DaneLiczbowe)
VALUES (4, -6);

-- Tabela Książki:

DROP TABLE IF EXISTS Książki;

CREATE TABLE Książki
(IDKsiążki INT NOT NULL,
Tytuł VARCHAR(30) NULL,
Autor VARCHAR (30) NULL,
SprzedażWBieżącymMiesiącu INT NULL);

INSERT INTO Książki (IDKsiążki, Tytuł, Autor, SprzedażWBieżącymMiesiącu) VALUES (1, 'Duma i uprzedzenie', 'Austen', 15);

INSERT INTO Książki (IDKsiążki, Tytuł, Autor, SprzedażWBieżącymMiesiącu) VALUES (2, 'Folwark zwierzęcy', 'Orwell', 7);

INSERT INTO Książki (IDKsiążki, Tytuł, Autor, SprzedażWBieżącymMiesiącu) VALUES (3, 'Kupiec wenecki', 'Szekspir', 5);

INSERT INTO Książki (IDKsiążki, Tytuł, Autor, SprzedażWBieżącymMiesiącu) VALUES (4, 'Romeo i Julia', 'Szekspir', 8);

INSERT INTO Książki (IDKsiążki, Tytuł, Autor, SprzedażWBieżącymMiesiącu) VALUES (5, 'Oliver Twist', 'DIckens', 3);

INSERT INTO Książki (IDKsiążki, Tytuł, Autor, SprzedażWBieżącymMiesiącu) VALUES (6, 'Kandyd', 'Wolter', 9);

INSERT INTO Książki (IDKsiążki, Tytuł, Autor, SprzedażWBieżącymMiesiącu) VALUES (7, 'Szkarłatna litera', 'Hawthorne', 12);

INSERT INTO Książki (IDKsiążki, Tytuł, Autor, SprzedażWBieżącymMiesiącu) VALUES (8, 'Hamlet', 'Szekspir', 2);

-- Tabela Filmy:

DROP TABLE IF EXISTS Filmy;

CREATE TABLE Filmy
(IDFilmu INT NOT NULL,
TytułFilmu VARCHAR(35) NULL,
Klasyfikacja VARCHAR(30) NULL);

INSERT INTO Filmy (IDFilmu, TytułFilmu, Klasyfikacja) VALUES (1, 'To właśnie miłość', 'R');

INSERT INTO Filmy (IDFilmu, TytułFilmu, Klasyfikacja) VALUES (2, 'Północ – północny zachód', 'brak kategorii');

INSERT INTO Filmy (IDFilmu, TytułFilmu, Klasyfikacja) VALUES (3, 'Miłość i śmierć', 'PG');

INSERT INTO Filmy (IDFilmu, TytułFilmu, Klasyfikacja) VALUES (4, 'Truman Show', 'PG');

INSERT INTO Filmy (IDFilmu, TytułFilmu, Klasyfikacja) VALUES (5, 'Taka miłość się nie zdarza', 'R');

INSERT INTO Filmy (IDFilmu, TytułFilmu, Klasyfikacja) VALUES (6, 'Do diabła z miłością', 'PG-13');

INSERT INTO Filmy (IDFilmu, TytułFilmu, Klasyfikacja) VALUES (7, 'Gdzie jest Nemo?', 'G');

-- Tabela Aktorzy:

DROP TABLE IF EXISTS Aktorzy;

CREATE TABLE Aktorzy
(IDAktora INT NOT NULL,
Imię VARCHAR(30) NULL,
Nazwisko VARCHAR(30) NULL);

INSERT INTO Aktorzy (IDAktora, Imię, Nazwisko) VALUES (1, 'Cary', 'Grant');

INSERT INTO Aktorzy (IDAktora, Imię, Nazwisko) VALUES (2, 'Mary', 'Steenburgen');

INSERT INTO Aktorzy (IDAktora, Imię, Nazwisko) VALUES (3, 'Jon', 'Voight');

INSERT INTO Aktorzy (IDAktora, Imię, Nazwisko) VALUES (4, 'Dustin', 'Hoffman');

INSERT INTO Aktorzy (IDAktora, Imię, Nazwisko) VALUES (5, 'John', 'Wayne');

INSERT INTO Aktorzy (IDAktora, Imię, Nazwisko) VALUES (6, 'Gary', 'Cooper');

-- Tabela RejestrZamówień:

DROP TABLE IF EXISTS RejestrZamówień;

CREATE TABLE RejestrZamówień
(IDZamówienia INT NOT NULL,
Klient VARCHAR(30) NULL,
Województwo VARCHAR (30) NULL,
ZakupionaIlość INT NULL,
CenaZaSztukę FLOAT NULL);

INSERT INTO RejestrZamówień (IDZamówienia, Klient, Województwo, ZakupionaIlość, CenaZaSztukę) VALUES (1, 'Andrzej Lipkowski', 'pomorskie', 4, 2.5);

INSERT INTO RejestrZamówień (IDZamówienia, Klient, Województwo, ZakupionaIlość, CenaZaSztukę) VALUES (2, 'Karolina Bielska', 'mazowieckie', 10, 1.25);

INSERT INTO RejestrZamówień (IDZamówienia, Klient, Województwo, ZakupionaIlość, CenaZaSztukę) VALUES (3, 'Janusz Solecki', 'wielkopolskie', 5, 4);

-- Tabela ArtykułySpożywcze:

DROP TABLE IF EXISTS ArtykułySpożywcze;

CREATE TABLE ArtykułySpożywcze
(IDArtykułu INT NOT NULL,
KodKategorii VARCHAR(5) NULL,
Opis VARCHAR (30) NULL);

INSERT INTO ArtykułySpożywcze (IDArtykułu, KodKategorii, Opis) VALUES (1, 'O', 'Jabłko');

INSERT INTO ArtykułySpożywcze (IDArtykułu, KodKategorii, Opis) VALUES (2, 'O', 'Pomarańcza');

INSERT INTO ArtykułySpożywcze (IDArtykułu, KodKategorii, Opis) VALUES (3, 'P', 'Musztarda');

INSERT INTO ArtykułySpożywcze (IDArtykułu, KodKategorii, Opis) VALUES (4, 'W', 'Marchew');

INSERT INTO ArtykułySpożywcze (IDArtykułu, KodKategorii, Opis) VALUES (5, 'N', 'Woda');

-- Tabela KategorieArtykułówSpożywczych:

DROP TABLE IF EXISTS KategorieArtykułówSpożywczych;

CREATE TABLE KategorieArtykułówSpożywczych
(IDArtykułu INT NOT NULL,
Owoc VARCHAR(5) NULL,
Warzywo VARCHAR (5) NULL,
Przyprawa VARCHAR (5) NULL,
Napój VARCHAR (5) NULL,
Opis VARCHAR (30) NULL);

INSERT INTO KategorieArtykułówSpożywczych (IDArtykułu, Owoc, Warzywo, Przyprawa, Napój, Opis) VALUES (1, 'X', ' ', ' ', ' ', 'Jabłko');

INSERT INTO KategorieArtykułówSpożywczych (IDArtykułu, Owoc, Warzywo, Przyprawa, Napój, Opis) VALUES (2, 'X', ' ', ' ', ' ', 'Pomarańcza');

INSERT INTO KategorieArtykułówSpożywczych (IDArtykułu, Owoc, Warzywo, Przyprawa, Napój, Opis) VALUES (3, ' ', ' ', 'X', ' ', 'Musztarda');

INSERT INTO KategorieArtykułówSpożywczych (IDArtykułu, Owoc, Warzywo, Przyprawa, Napój, Opis) VALUES (4, ' ', 'X', ' ', ' ', 'Marchew');

INSERT INTO KategorieArtykułówSpożywczych (IDArtykułu, Owoc, Warzywo, Przyprawa, Napój, Opis) VALUES (5, ' ', ' ', ' ', 'X', 'Woda');

-- Tabela AmerykaPółnocna:

DROP TABLE IF EXISTS AmerykaPółnocna;

CREATE TABLE AmerykaPółnocna
(IDMiasta INT NOT NULL,
Kraj VARCHAR(6) NULL,
Stan VARCHAR (8) NULL,
Prowincja VARCHAR (7) NULL,
Miasto VARCHAR (30) NULL);

INSERT INTO AmerykaPółnocna (IDMiasta, Kraj, Stan, Prowincja, Miasto) VALUES (1, 'USA', 'Vermont', ' ', 'Burlington');

INSERT INTO AmerykaPółnocna (IDMiasta, Kraj, Stan, Prowincja, Miasto) VALUES (2, 'Kanada', ' ', 'Quebec', 'Montreal');

INSERT INTO AmerykaPółnocna (IDMiasta, Kraj, Stan, Prowincja, Miasto) VALUES (3, 'USA', 'Kolorado', ' ', 'Denver');

INSERT INTO AmerykaPółnocna (IDMiasta, Kraj, Stan, Prowincja, Miasto) VALUES (4, 'USA', 'Kolorado', ' ', 'Boulder');

INSERT INTO AmerykaPółnocna (IDMiasta, Kraj, Stan, Prowincja, Miasto) VALUES (5, 'Kanada', ' ', 'Alberta', 'Edmonton');

-- Tabela ListaKlientów:

DROP TABLE IF EXISTS ListaKlientów;

CREATE TABLE ListaKlientów
(IDKlienta INT NOT NULL,
Płeć VARCHAR(5) NULL,
Wiek INT NULL,
Dochód INT NULL);

INSERT INTO ListaKlientów (IDKlienta, Płeć, Wiek, Dochód) VALUES (1, 'M', 55, 80000);

INSERT INTO ListaKlientów (IDKlienta, Płeć, Wiek, Dochód) VALUES (2, 'K', 25, 65000);

INSERT INTO ListaKlientów (IDKlienta, Płeć, Wiek, Dochód) VALUES (3, 'M', 35, 40000);

INSERT INTO ListaKlientów (IDKlienta, Płeć, Wiek, Dochód) VALUES (4, 'K', 42, 90000);

INSERT INTO ListaKlientów (IDKlienta, Płeć, Wiek, Dochód) VALUES (5, 'K', 27, 25000);

-- Tabela TytułyUtworów:

DROP TABLE IF EXISTS TytułyUtworów;

CREATE TABLE TytułyUtworów
(IDUtworu INT NOT NULL,
Wykonawca VARCHAR(30) NULL,
Album VARCHAR(30) NULL,
Tytuł VARCHAR(30) NULL);

INSERT INTO TytułyUtworów (IDUtworu, Wykonawca, Album, Tytuł) VALUES (1, 'The Beatles', 'Revolver', 'Yellow Submarine');

INSERT INTO TytułyUtworów (IDUtworu, Wykonawca, Album, Tytuł) VALUES (2, 'The Beatles', 'Revolver', 'Eleanor Rigby');

INSERT INTO TytułyUtworów (IDUtworu, Wykonawca, Album, Tytuł) VALUES (3, 'The Beatles', 'Abbey Road', 'Here Comes the Sun');

INSERT INTO TytułyUtworów (IDUtworu, Wykonawca, Album, Tytuł) VALUES (4, 'The Rolling Stones', 'Beggars Banquet', 'Sympathy for the Devil');

INSERT INTO TytułyUtworów (IDUtworu, Wykonawca, Album, Tytuł) VALUES (5, 'The Rolling Stones', 'Let It Bleed', 'Gimme Shelter');

INSERT INTO TytułyUtworów (IDUtworu, Wykonawca, Album, Tytuł) VALUES (6, 'Paul McCartney', 'Ram', 'Too Many People');

-- Tabela Opłaty:

DROP TABLE IF EXISTS Opłaty;

CREATE TABLE Opłaty
(IDOpłaty INT NOT NULL,
Uczeń VARCHAR(30) NULL,
RodzajOpłaty VARCHAR(30) NULL,
Opłata INT NULL);

INSERT INTO Opłaty (IDOpłaty, Uczeń, RodzajOpłaty, Opłata) VALUES (1, 'Grzegorz', 'Siłownia', 30);

INSERT INTO Opłaty (IDOpłaty, Uczeń, RodzajOpłaty, Opłata) VALUES (2, 'Grzegorz', 'Obiad', 10);

INSERT INTO Opłaty (IDOpłaty, Uczeń, RodzajOpłaty, Opłata) VALUES (3, 'Grzegorz', 'Wycieczka', 8);

INSERT INTO Opłaty (IDOpłaty, Uczeń, RodzajOpłaty, Opłata) VALUES (4, 'Joanna', 'Siłownia', 30);

INSERT INTO Opłaty (IDOpłaty, Uczeń, RodzajOpłaty, Opłata) VALUES (5, 'Julia', 'Obiad', 10);

-- Tabela Punktacja:

DROP TABLE IF EXISTS Punktacja;

CREATE TABLE Punktacja
(IDPunktacji INT NOT NULL,
Uczeń VARCHAR(30) NULL,
OcenianaPraca VARCHAR(30) NULL,
LiczbaPunktów DECIMAL NULL,
LiczbaLatNauki INT NULL);

INSERT INTO Punktacja (IDPunktacji, Uczeń, OcenianaPraca, LiczbaPunktów, LiczbaLatNauki) VALUES (1, 'Izabela', 'Sprawdzian', 92, 7);

INSERT INTO Punktacja (IDPunktacji, Uczeń, OcenianaPraca, LiczbaPunktów, LiczbaLatNauki) VALUES (2, 'Izabela', 'Sprawdzian', 95, 7);

INSERT INTO Punktacja (IDPunktacji, Uczeń, OcenianaPraca, LiczbaPunktów, LiczbaLatNauki) VALUES (3, 'Izabela', 'Praca domowa', 84, 7);

INSERT INTO Punktacja (IDPunktacji, Uczeń, OcenianaPraca, LiczbaPunktów, LiczbaLatNauki) VALUES (4, 'Hanna', 'Sprawdzian', 62, 8);

INSERT INTO Punktacja (IDPunktacji, Uczeń, OcenianaPraca, LiczbaPunktów, LiczbaLatNauki) VALUES (5, 'Hanna', 'Sprawdzian', 81, 8);

INSERT INTO Punktacja (IDPunktacji, Uczeń, OcenianaPraca, LiczbaLatNauki) VALUES (6, 'Hanna', 'Praca domowa', 8);

INSERT INTO Punktacja (IDPunktacji, Uczeń, OcenianaPraca, LiczbaPunktów, LiczbaLatNauki) VALUES (7, 'Piotr', 'Sprawdzian', 58, 7);

INSERT INTO Punktacja (IDPunktacji, Uczeń, OcenianaPraca, LiczbaPunktów, LiczbaLatNauki) VALUES (8, 'Piotr', 'Sprawdzian', 74, 7);

INSERT INTO Punktacja (IDPunktacji, Uczeń, OcenianaPraca, LiczbaPunktów, LiczbaLatNauki) VALUES (9, 'Piotr', 'Praca domowa', 88, 7);

-- Tabela WykazProduktów:

DROP TABLE IF EXISTS WykazProduktów;

CREATE TABLE WykazProduktów
(IDProduktu INT NOT NULL,
Kategoria VARCHAR(30) NULL,
Podkategoria VARCHAR(30) NULL,
Produkt VARCHAR(30) NULL,
LiczbaSztuk INT NULL);

INSERT INTO WykazProduktów (IDProduktu, Kategoria, Podkategoria, Produkt, LiczbaSztuk) VALUES (1, 'Meble', 'Krzesła', 'Czerwony fotel', 3);

INSERT INTO WykazProduktów (IDProduktu, Kategoria, Podkategoria, Produkt, LiczbaSztuk) VALUES (2, 'Meble', 'Krzesła', 'Zielony fotel', 2);

INSERT INTO WykazProduktów (IDProduktu, Kategoria, Podkategoria, Produkt, LiczbaSztuk) VALUES (3, 'Meble', 'Biurka', 'Niebieskie biurko komputerowe', 4);

INSERT INTO WykazProduktów (IDProduktu, Kategoria, Podkategoria, Produkt, LiczbaSztuk) VALUES (4, 'ArtykułyPapiernicze', 'PapieryDoDrukarki', 'Biały papier do drukarki', 5);

INSERT INTO WykazProduktów (IDProduktu, Kategoria, Podkategoria, Produkt, LiczbaSztuk) VALUES (5, 'ArtykułyPapiernicze', 'PapieryDoDrukarki', 'Różowy papier do drukarki', 2);

INSERT INTO WykazProduktów (IDProduktu, Kategoria, Podkategoria, Produkt, LiczbaSztuk) VALUES (6, 'ArtykułyPapiernicze', 'Notatniki', 'Notatnik z białymi kartkami', 4);

-- Tabela Zamówienia:

DROP TABLE IF EXISTS Zamówienia;

CREATE TABLE Zamówienia
(IDZamówienia INT NOT NULL,
IDKlienta INT NOT NULL,
DataZamówienia DATE NULL,
KwotaZamówienia FLOAT NULL);

INSERT INTO Zamówienia (IDZamówienia, IDKlienta, DataZamówienia, KwotaZamówienia) VALUES (1, 1, '2016-09-01', 10);

INSERT INTO Zamówienia (IDZamówienia, IDKlienta, DataZamówienia, KwotaZamówienia) VALUES (2, 2, '2016-09-02', 12.5);

INSERT INTO Zamówienia (IDZamówienia, IDKlienta, DataZamówienia, KwotaZamówienia) VALUES (3, 2, '2016-09-03', 18);

INSERT INTO Zamówienia (IDZamówienia, IDKlienta, DataZamówienia, KwotaZamówienia) VALUES (4, 3, '2016-09-15', 20);

-- Tabla Zwroty:

DROP TABLE IF EXISTS Zwroty;

CREATE TABLE Zwroty
(IDZwrotu INT NOT NULL,
IDZamówienia INT NULL,
DataZwrotu DATE NULL,
KwotaZwrotu FLOAT NULL);

INSERT INTO Zwroty (IDZwrotu, IDZamówienia, DataZwrotu, KwotaZwrotu) VALUES (1, 1, '2016-09-02', 5);

INSERT INTO Zwroty (IDZwrotu, IDZamówienia, DataZwrotu, KwotaZwrotu) VALUES (2, 3, '2016-09-18', 18);

-- Tabela RozmiaryKoszulek:

DROP TABLE IF EXISTS RozmiaryKoszulek;

CREATE TABLE RozmiaryKoszulek
(IDRozmiaru INT NOT NULL,
Rozmiar VARCHAR(10) NULL);

INSERT INTO RozmiaryKoszulek (IDRozmiaru, Rozmiar) VALUES (1, 'Mały');

INSERT INTO RozmiaryKoszulek (IDRozmiaru, Rozmiar) VALUES (2, 'Średni');

INSERT INTO RozmiaryKoszulek (IDRozmiaru, Rozmiar) VALUES (3, 'Duży');

-- Tabela KoloryKoszulek:

DROP TABLE IF EXISTS KoloryKoszulek;

CREATE TABLE KoloryKoszulek
(IDKoloru INT NOT NULL,
Kolor VARCHAR(10) NULL);

INSERT INTO KoloryKoszulek (IDKoloru, Kolor) VALUES (1, 'Czerwony');

INSERT INTO KoloryKoszulek (IDKoloru, Kolor) VALUES (2, 'Niebieski');

INSERT INTO KoloryKoszulek (IDKoloru, Kolor) VALUES (3, 'Zielony');

INSERT INTO KoloryKoszulek (IDKoloru, Kolor) VALUES (4, 'Żółty');

-- Tabela KluczoweDaty:

DROP TABLE IF EXISTS KluczoweDaty;

CREATE TABLE KluczoweDaty
(OstatniaDataPrzetwarzania DATE NULL,
BieżącyRokPodatkowy INT NULL,
BieżącyKwartałPodatkowy VARCHAR(10) NULL);

INSERT INTO KluczoweDaty (OstatniaDataPrzetwarzania, BieżącyRokPodatkowy, BieżącyKwartałPodatkowy) VALUES ('2016-09-15', 2016, 'Q3');

-- Tabela Kadry:

DROP TABLE IF EXISTS Kadry;

CREATE TABLE Kadry
(IDPracownika INT NOT NULL,
Pracownik VARCHAR(30) NULL,
IDPrzełożonego INT NULL);

INSERT INTO Kadry (IDPracownika, Pracownik) VALUES (1, 'Zuzanna Kowalska');

INSERT INTO Kadry (IDPracownika, Pracownik, IDPrzełożonego) VALUES (2, 'Luiza Warecka', 1);

INSERT INTO Kadry (IDPracownika, Pracownik, IDPrzełożonego) VALUES (3, 'Robert Pieczyński', 1);

INSERT INTO Kadry (IDPracownika, Pracownik, IDPrzełożonego) VALUES (4, 'Sebastian Feldman', 1);

INSERT INTO Kadry (IDPracownika, Pracownik, IDPrzełożonego) VALUES (5, 'Karolina Białek', 2);

INSERT INTO Kadry (IDPracownika, Pracownik, IDPrzełożonego) VALUES (6, 'Joanna Borecka', 2);

INSERT INTO Kadry (IDPracownika, Pracownik, IDPrzełożonego) VALUES (7, 'Juliusz Morawski', 3);

INSERT INTO Kadry (IDPracownika, Pracownik, IDPrzełożonego) VALUES (8, 'Anna Adamska', 4);

INSERT INTO Kadry (IDPracownika, Pracownik, IDPrzełożonego) VALUES (9, 'Jacek Śpiewak', 4);

INSERT INTO Kadry (IDPracownika, Pracownik, IDPrzełożonego) VALUES (10, 'Amelia Wojnacka', 5);

-- Tabela Użytkownicy:

DROP TABLE IF EXISTS Użytkownicy;

CREATE TABLE Użytkownicy
(IDUżytkownika INT NOT NULL,
NazwaUżytkownika VARCHAR(30) NULL);

INSERT INTO Użytkownicy (IDUżytkownika, NazwaUżytkownika)
VALUES (1, 'Cecylia Romanowska');

INSERT INTO Użytkownicy (IDUżytkownika, NazwaUżytkownika)
VALUES (2, 'Elżbieta Borecka');

INSERT INTO Użytkownicy (IDUżytkownika, NazwaUżytkownika)
VALUES (3, 'Romuald Gawliński');

INSERT INTO Użytkownicy (IDUżytkownika, NazwaUżytkownika)
VALUES (4, 'Anna Wodecka');

-- Tabela Transakcje:

DROP TABLE IF EXISTS Transakcje;

CREATE TABLE Transakcje
(IDTransakcji INT NOT NULL,
IDUżytkownika INT NULL,
KwotaTransakcji FLOAT NULL,
SposóbZapłaty VARCHAR(20) NULL);

INSERT INTO Transakcje (IDTransakcji, IDUżytkownika, KwotaTransakcji, SposóbZapłaty)
VALUES (1, 1, 22.25, 'Gotówka');

INSERT INTO Transakcje (IDTransakcji, IDUżytkownika, KwotaTransakcji, SposóbZapłaty)
VALUES (2, 2, 11.75, 'Karta kredytowa');

INSERT INTO Transakcje (IDTransakcji, IDUżytkownika, KwotaTransakcji, SposóbZapłaty)
VALUES (3, 2, 5, 'Karta kredytowa');

INSERT INTO Transakcje (IDTransakcji, IDUżytkownika, KwotaTransakcji, SposóbZapłaty)
VALUES (4, 2, 8, 'Gotówka');

INSERT INTO Transakcje (IDTransakcji, IDUżytkownika, KwotaTransakcji, SposóbZapłaty)
VALUES (5, 3, 9.33, 'Karta kredytowa');

INSERT INTO Transakcje (IDTransakcji, IDUżytkownika, KwotaTransakcji, SposóbZapłaty)
VALUES (6, 3, 10.11, 'Karta kredytowa');

-- Tabela ZwrotyTowarów:

DROP TABLE IF EXISTS ZwrotyTowarów;

CREATE TABLE ZwrotyTowarów
(IDZwrotu INT NOT NULL,
IDKlienta INT NOT NULL,
DataZwrotu DATE NULL,
KwotaZwrotu FLOAT NULL);

INSERT INTO ZwrotyTowarów (IDZwrotu, IDKlienta, DataZwrotu, KwotaZwrotu) VALUES (1, 1, '2016-09-10', 2);

INSERT INTO ZwrotyTowarów (IDZwrotu, IDKlienta, DataZwrotu, KwotaZwrotu) VALUES (2, 2, '2016-09-15', 15);

INSERT INTO ZwrotyTowarów (IDZwrotu, IDKlienta, DataZwrotu, KwotaZwrotu) VALUES (3, 3, '2016-09-28', 3);

-- Tabela Kontrahenci:

DROP TABLE IF EXISTS Kontrahenci;

CREATE TABLE Kontrahenci

(IDKontrahenta INT NOT NULL AUTO_INCREMENT,

ImięKontrahenta VARCHAR(30) NULL,

NazwiskoKontrahenta VARCHAR(30) NULL,

Województwo VARCHAR(10) NULL,

PRIMARY KEY (IDKontrahenta));


INSERT INTO Kontrahenci (ImięKontrahenta, NazwiskoKontrahenta, Województwo) VALUES ('Janusz', 'Bentlewski', 'POM');

INSERT INTO Kontrahenci (ImięKontrahenta, NazwiskoKontrahenta, Województwo) VALUES ('Michał', 'Rajewski', 'MAZ');

INSERT INTO Kontrahenci (ImięKontrahenta, NazwiskoKontrahenta, Województwo) VALUES ('Emilia', 'Pieczyńska', 'LBU');

-- Tabela NowiKontrahenci:

DROP TABLE IF EXISTS NowiKontrahenci;

CREATE TABLE NowiKontrahenci
(Województwo VARCHAR(10) NULL,
Nazwa1 VARCHAR(30) NULL,
Nazwa2 VARCHAR(30) NULL);

INSERT INTO NowiKontrahenci (Województwo, Nazwa1, Nazwa2) VALUES ('PKR', 'Robert', 'Hołdys');

INSERT INTO NowiKontrahenci (Województwo, Nazwa1, Nazwa2) VALUES ('MAZ', 'Beata', 'Kowalska');

INSERT INTO NowiKontrahenci (Województwo, Nazwa1, Nazwa2) VALUES ('PKR', 'Grażyna', 'Mielniczuk');

-- Tabela Dostawcy:

DROP TABLE IF EXISTS Dostawcy;

CREATE TABLE Dostawcy
(IDDostawcy INT NOT NULL,
Województwo VARCHAR(10) NULL,
KodPocztowy VARCHAR(10) NULL);

INSERT INTO Dostawcy (IDDostawcy, Województwo, KodPocztowy) VALUES (1, 'POM', '77-131');

INSERT INTO Dostawcy (IDDostawcy, Województwo, KodPocztowy) VALUES (2, 'LBL', '21-515');

INSERT INTO Dostawcy (IDDostawcy, Województwo, KodPocztowy) VALUES (3, 'MAZ', '09-166');

INSERT INTO Dostawcy (IDDostawcy, Województwo, KodPocztowy) VALUES (4, 'PKR', '36-221');

INSERT INTO Dostawcy (IDDostawcy, Województwo, KodPocztowy) VALUES (5, 'ŁDZ', '97-407');

-- Tabela ZmianaDanychDostawców:

DROP TABLE IF EXISTS ZmianaDanychDostawców;

CREATE TABLE ZmianaDanychDostawców
(IDZmiany INT NOT NULL,
IDDostawcy INT NULL,
Województwo VARCHAR(10) NULL,
KodPocztowy VARCHAR(10) NULL);

INSERT INTO ZmianaDanychDostawców (IDZmiany, IDDostawcy, Województwo, KodPocztowy) VALUES (1, 1, 'POM', '77-121');

INSERT INTO ZmianaDanychDostawców (IDZmiany, IDDostawcy, Województwo, KodPocztowy) VALUES (2, 2, 'LBL', '21-516');

INSERT INTO ZmianaDanychDostawców (IDZmiany, IDDostawcy, Województwo, KodPocztowy) VALUES (3, 5, 'ZPM', '72-427');

-- Tabela PowiązanaTabela:

DROP TABLE IF EXISTS PowiązanaTabela;

CREATE TABLE PowiązanaTabela
(PierwszaKolumna INT NOT NULL PRIMARY KEY);



- - - - - - — - - - - - - - - - - - - -
INSTRUKCJE SQL Z ROZDZIAŁU 2
- - - - - - — - - - - - - - - - - 


SELECT * FROM Klienci;

SELECT *
FROM Klienci;

SELECT
-- to jest pierwszy komentarz
ImięKlienta,
NazwiskoKlienta -- to jest drugi komentarz
FROM Klienci;

SELECT
/* to jest pierwszy komentarz */
ImięKlienta,
NazwiskoKlienta /*to jest drugi komentarz
to jest dalsza część drugiego komentarza
tutaj znajduje się koniec drugiego komentarza */
FROM Klienci;

SELECT NazwiskoKlienta
FROM Klienci;

SELECT
ImięKlienta,
NazwiskoKlienta
FROM Klienci;

- - - - - - — - - - - - - - -
INSTRUKCJE SQL Z ROZDZIAŁU 3- - - - - - — - - - - - - - -



SELECT
'Imię klienta:',
ImięKlienta
FROM Sprzedaż;

SELECT
5,
ImięKlienta
FROM Sprzedaż;

SELECT
IDSprzedaży,
ZakupionaIlość,
CenaZaSztukę,
ZakupionaIlość * CenaZaSztukę
FROM Sprzedaż;

SELECT
IDSprzedaży,
ImięKlienta,
NazwiskoKlienta,
CONCAT (ImięKlienta, ' ', NazwiskoKlienta)
FROM Sprzedaż;

SELECT
IDSprzedaży,
ImięKlienta,
NazwiskoKlienta,
CONCAT (ImięKlienta, ' ', NazwiskoKlienta) AS 'Nazwa'
FROM Sprzedaż;

SELECT
IDSprzedaży,
ImięKlienta,
NazwiskoKlienta,
CONCAT (ImięKlienta, ' ', NazwiskoKlienta) Nazwa
FROM Sprzedaż;



- - - - - - — - - - - - - - - - - - - -
INSTRUKCJE SQL Z ROZDZIAŁU 4
- - - - - - — - - - - - - - - - - - - -



SELECT 
LEFT('jasnoniebieski',5) AS 'Wynik';

SELECT 
RIGHT('jasnoniebieski',9) AS 'Wynik';

SELECT 
SUBSTRING('czarnaowca', 7, 4) AS 'Wynik';

SELECT 
LTRIM('          dwa jabłka') AS 'Wynik';

SELECT 
UPPER('Abraham Lincoln') AS 'Konwersja na wielkie litery',
LOWER('ABRAHAM LINCOLN') AS 'Konwersja na małe litery';

SELECT NOW();

SELECT DATE_FORMAT('2017-05-06', '%m');

SELECT DATE_FORMAT('2017-05-06', '%d');

SELECT DATE_FORMAT('2017-05-06', '%u');

SELECT DATE_FORMAT('2017-05-06', '%w') + 1;

SELECT DATEDIFF('2017-08-14', '2017-07-08');

SELECT ROUND(712.863, 3);

SELECT ROUND(712.863, 2);

SELECT ROUND(712.863, 1);

SELECT ROUND(712.863, 0);

SELECT ROUND(712.863, -1);

SELECT ROUND(712.863, -2);

SELECT PI( );

SELECT ROUND(PI( ), 2);

SELECT POWER(5,2) AS 'Liczba 5 podniesiona do kwadratu';

SELECT POWER(25,.5) AS 'Pierwiastek kwadratowy z liczby 25';

SELECT 
'2017-04-11' AS 'Data Pierwotna',
CAST('2017-04-11' AS DATETIME) AS 'Data Przekonwertowana';

SELECT
Opis,
Waga
FROM Produkty;

SELECT 
Opis,
IFNULL(CAST(Waga AS CHAR), 'Nieznana') AS 'Waga'
FROM Produkty;



- - - - - - — - - - - - - - - - - - - -
INSTRUKCJE SQL Z ROZDZIAŁU 5- - - - - - — - - - - - - - - - - - - -


SELECT
ImięSprzedawcy,
NazwiskoSprzedawcy
FROM Sprzedawcy
ORDER BY NazwiskoSprzedawcy;

SELECT
ImięSprzedawcy,
NazwiskoSprzedawcy
FROM Sprzedawcy
ORDER BY ImięSprzedawcy;

SELECT
ImięSprzedawcy,
NazwiskoSprzedawcy
FROM Sprzedawcy
ORDER BY ImięSprzedawcy ASC;

SELECT
ImięSprzedawcy,
NazwiskoSprzedawcy
FROM Sprzedawcy
ORDER BY ImięSprzedawcy DESC;

SELECT
ImięSprzedawcy,
NazwiskoSprzedawcy
FROM Sprzedawcy
ORDER BY NazwiskoSprzedawcy, ImięSprzedawcy;

SELECT 
CONCAT(NazwiskoSprzedawcy, ', ', ImięSprzedawcy) AS 'Nazwa'
FROM Sprzedawcy
ORDER BY Nazwa;

SELECT
ImięSprzedawcy,
NazwiskoSprzedawcy
FROM Sprzedawcy
ORDER BY CONCAT(NazwiskoSprzedawcy, ImięSprzedawcy);

SELECT DaneLiczbowe
FROM SortowanieDanych
ORDER BY DaneLiczbowe;

SELECT 
IFNULL(DaneLiczbowe, 0) AS 'DaneLiczbowe'
FROM SortowanieDanych
ORDER BY IFNULL(DaneLiczbowe,0);

SELECT
DaneZnakowe
FROM SortowanieDanych
ORDER BY DaneZnakowe;


- - - - - - — - - - - - - - - - - - - -
INSTRUKCJE SQL Z ROZDZIAŁU 6
- - - - - - — - - - - - - - - - - - - -


SELECT
ImięKlienta,
NazwiskoKlienta,
ZakupionaIlość
FROM Sprzedaż
WHERE NazwiskoKlienta = 'Solecki';

SELECT
ImięKlienta,
NazwiskoKlienta,
ZakupionaIlość
FROM Sprzedaż
WHERE ZakupionaIlość = 5;

SELECT
ImięKlienta,
NazwiskoKlienta,
ZakupionaIlość
FROM Sprzedaż
WHERE ZakupionaIlość > 6;

SELECT
ImięKlienta,
NazwiskoKlienta
FROM Sprzedaż
WHERE NazwiskoKlienta > 'K';

SELECT 
Tytuł AS 'Tytuł książki',
SprzedażWBieżącymMiesiącu AS 'Sprzedana ilość'	
FROM Książki
ORDER BY SprzedażWBieżącymMiesiącu DESC
LIMIT 3;

SELECT 
Tytuł AS 'Tytuł książki',
SprzedażWBieżącymMiesiącu AS 'Sprzedana ilość'
FROM Książki
WHERE Autor = 'Szekspir'
ORDER BY SprzedażWBieżącymMiesiącu DESC
LIMIT 1;

SELECT 
TytułFilmu AS 'Film'
FROM Filmy
WHERE TytułFilmu LIKE '%MIŁOŚĆ%';

SELECT
TytułFilmu AS 'Film'
FROM Filmy
WHERE TytułFilmu LIKE 'MIŁOŚĆ%';

SELECT
TytułFilmu AS 'Film'
FROM Filmy
WHERE TytułFilmu LIKE '%MIŁOŚĆ';

SELECT
TytułFilmu AS 'Film'
FROM Filmy
WHERE TytułFilmu LIKE '% MIŁOŚĆ %';

SELECT
Imię,
Nazwisko
FROM Aktorzy
WHERE Imię LIKE '_ARY';

SELECT
Imię,
Nazwisko
FROM Aktorzy
WHERE Imię LIKE 'J_N';




- - - - - - — - - - - - - - - - - - - -
INSTRUKCJE SQL Z ROZDZIAŁU 7
- - - - - - — - - - - - - - - - - - - -




SELECT
Klient,
ZakupionaIlość
FROM RejestrZamówień
WHERE ZakupionaIlość > 3
AND ZakupionaIlość < 7;

SELECT
Klient,
ZakupionaIlość,
CenaZaSztukę
FROM RejestrZamówień
WHERE ZakupionaIlość > 8
OR CenaZaSztukę > 3;

SELECT
Klient,
Województwo,
ZakupionaIlość
FROM RejestrZamówień
WHERE Województwo = 'pomorskie'
OR Województwo = 'mazowieckie'
AND ZakupionaIlość > 8;

SELECT
Klient,
Województwo,
ZakupionaIlość
FROM RejestrZamówień
WHERE (Województwo = 'pomorskie'
OR Województwo = 'mazowieckie')
AND ZakupionaIlość > 8;

SELECT
Klient,
Województwo,
ZakupionaIlość
FROM RejestrZamówień
WHERE Województwo = 'wielkopolskie'
OR (Województwo = 'pomorskie'
AND (ZakupionaIlość >= 3
AND ZakupionaIlość <= 10));

SELECT
Klient,
Województwo,
ZakupionaIlość 
FROM RejestrZamówień
WHERE NOT Województwo = 'wielkopolskie';

SELECT
Klient,
Województwo,
ZakupionaIlość
FROM RejestrZamówień
WHERE Województwo <> 'wielkopolskie';

SELECT
Klient,
Województwo,
ZakupionaIlość 
FROM RejestrZamówień
WHERE NOT (Województwo = 'pomorskie'
OR Województwo = 'wielkopolskie');

SELECT
Klient,
Województwo,
ZakupionaIlość 
FROM RejestrZamówień
WHERE Województwo <> 'pomorskie'
AND Województwo <> 'wielkopolskie';

SELECT
Klient,
Województwo,
ZakupionaIlość 
FROM RejestrZamówień
WHERE NOT (Województwo = 'pomorskie'
AND ZakupionaIlość > 3);

SELECT
Klient,
Województwo,
ZakupionaIlość 
FROM RejestrZamówień
WHERE Województwo <> 'pomorskie'
OR ZakupionaIlość <= 3;

SELECT
Klient,
ZakupionaIlość
FROM RejestrZamówień
WHERE ZakupionaIlość >= 5
AND ZakupionaIlość <= 20;

SELECT
Klient,
ZakupionaIlość
FROM RejestrZamówień
WHERE ZakupionaIlość BETWEEN 5 AND 20;

SELECT
Klient,
ZakupionaIlość
FROM RejestrZamówień
WHERE ZakupionaIlość NOT BETWEEN 5 AND 20;

SELECT
Klient,
Województwo
FROM RejestrZamówień
WHERE Województwo = 'pomorskie'
OR Województwo = 'wielkopolskie';

SELECT
Klient,
Województwo
FROM RejestrZamówień
WHERE Województwo IN ('pomorskie', 'wielkopolskie');

SELECT
Klient,
Województwo
FROM RejestrZamówień
WHERE Województwo NOT IN ('pomorskie', 'wielkopolskie');

SELECT
Opis,
Waga
FROM Produkty
WHERE Waga = 0;

SELECT
Opis,
Waga
FROM Produkty
WHERE Waga = 0
OR Waga IS NULL;

SELECT
Opis,
Waga
FROM Produkty
WHERE IFNULL(Waga, 0) = 0;

SELECT
Opis,
IFNULL(Waga, 0) AS 'Waga'
FROM Produkty
WHERE Waga = 0
OR Waga IS NULL;




- - - - - - — - - - - - - - - - - - - -
INSTRUKCJE SQL Z ROZDZIAŁU 8
- - - - - - — - - - - - - - - - - - - -



SELECT
CASE KodKategorii
WHEN 'O' THEN 'Owoc'
WHEN 'W' THEN 'Warzywo'
ELSE 'Inne'
END AS 'Kategoria',
Opis
FROM ArtykułySpożywcze;

SELECT
CASE
WHEN KodKategorii = 'O' THEN 'Owoc'
WHEN KodKategorii = 'W' THEN 'Warzywo'
ELSE 'Inne'
END AS 'Kategoria',
Opis
FROM ArtykułySpożywcze;

SELECT
CASE
WHEN Owoc = 'X' THEN 'Owoc'
WHEN Warzywo = 'X' THEN 'Warzywo'
ELSE 'Inne'
END AS 'Kategoria',
Opis
FROM KategorieArtykułówSpożywczych;

SELECT *
FROM AmerykaPółnocna
ORDER BY
Kraj,
CASE Kraj
WHEN 'USA' THEN Stan
WHEN 'Kanada' THEN Prowincja
ELSE Stan
END,
Miasto;

SELECT *
FROM ListaKlientów
WHERE Dochód >
CASE
WHEN Płeć = 'M' AND Wiek >= 50 THEN 75000
WHEN Płeć = 'K' AND Wiek >= 35 THEN 60000
ELSE 50000
END;


- - - - - - — - - - - - - - - - - - - -
INSTRUKCJE SQL Z ROZDZIAŁU 9
- - - - - - — - - - - - - - - - - - - -



SELECT
DISTINCT
Wykonawca
FROM TytułyUtworów
ORDER BY Wykonawca;

SELECT
DISTINCT
Wykonawca,
Album
FROM TytułyUtworów
ORDER BY Wykonawca, Album;

SELECT
SUM(Opłata) AS 'Sumaryczna opłata za siłownię'
FROM Opłaty
WHERE RodzajOpłaty = 'Siłownia';

SELECT
AVG(LiczbaPunktów) AS 'Średnia liczba punktów za sprawdzian'
FROM Punktacja
WHERE OcenianaPraca = 'Sprawdzian';

SELECT
AVG(LiczbaPunktów) AS 'Średnia liczba punktów za sprawdzian',
MIN(LiczbaPunktów) AS 'Minimalna liczba punktów za sprawdzian',
MAX(LiczbaPunktów) AS 'Maksymalna liczba punktów za sprawdzian'
FROM Punktacja
WHERE OcenianaPraca = 'Sprawdzian';

SELECT
COUNT(*) AS 'Liczba wierszy z ocenianą pracą domową'
FROM Punktacja
WHERE OcenianaPraca = 'Praca domowa';

SELECT
COUNT(LiczbaPunktów) AS 'Liczba wierszy z punktami za pracę domową'
FROM Punktacja
WHERE OcenianaPraca = 'Praca domowa';

SELECT
COUNT(DISTINCT RodzajOpłaty) AS 'Liczba rodzajów opłaty'
FROM Opłaty;

SELECT
OcenianaPraca AS 'Oceniana praca',
AVG(LiczbaPunktów) AS 'Średnia liczba punktów'
FROM Punktacja
GROUP BY OcenianaPraca
ORDER BY OcenianaPraca;

SELECT
OcenianaPraca AS 'Oceniana praca',
Uczeń AS 'Uczeń',
AVG(LiczbaPunktów) AS 'Średnia liczba punktów'
FROM Punktacja
GROUP BY OcenianaPraca, Uczeń
ORDER BY OcenianaPraca, Uczeń;

SELECT
OcenianaPraca AS 'Oceniana praca',
Uczeń AS 'Uczeń',
AVG(LiczbaPunktów) AS 'Średnia liczba punktów'
FROM Punktacja
GROUP BY OcenianaPraca, Uczeń
ORDER BY Uczeń, OcenianaPraca;

SELECT
Uczeń AS 'Uczeń',
OcenianaPraca AS 'Oceniana praca',
AVG(LiczbaPunktów) AS 'Średnia liczba punktów'
FROM Punktacja
GROUP BY OcenianaPraca, Uczeń
ORDER BY Uczeń, OcenianaPraca;

SELECT
Uczeń AS 'Uczeń',
OcenianaPraca AS 'Oceniana praca',
LiczbaPunktów AS 'Liczba punktów'
FROM Punktacja
WHERE OcenianaPraca = 'Sprawdzian'
AND LiczbaPunktów >= 70
ORDER BY Uczeń, LiczbaPunktów;

SELECT
Uczeń AS 'Uczeń',
AVG(LiczbaPunktów) AS 'Średnia liczba punktów za sprawdzian'
FROM Punktacja
WHERE OcenianaPraca = 'Sprawdzian'
GROUP BY Uczeń
HAVING AVG(LiczbaPunktów) >= 70
ORDER BY Uczeń;

SELECT
Uczeń AS 'Uczeń',
OcenianaPraca AS 'Oceniana praca',
AVG(LiczbaPunktów) AS 'Średnia liczba punktów'
FROM Punktacja
WHERE OcenianaPraca = 'Sprawdzian'
GROUP BY Uczeń, OcenianaPraca
HAVING AVG(LiczbaPunktów) >= 70
ORDER BY Uczeń;

SELECT
CASE KodKategorii
WHEN 'O' THEN 'Owoc'
WHEN 'W' THEN 'Warzywo'
ELSE 'Inne'
END AS 'Kategoria',
COUNT(*) AS 'LiczbaProduktów'
FROM ArtykułySpożywcze
GROUP BY
CASE KodKategorii
WHEN 'O' THEN 'Owoc'
WHEN 'W' THEN 'Warzywo'
ELSE 'Inne'
END;

SELECT
Uczeń AS 'Uczeń',
LiczbaLatNauki AS 'Liczba lat nauki',
OcenianaPraca AS 'Oceniana praca',
AVG(LiczbaPunktów) AS 'Średnia liczba punktów'
FROM Punktacja
WHERE OcenianaPraca = 'Sprawdzian'
GROUP BY Uczeń, LiczbaLatNauki, OcenianaPraca
HAVING AVG(LiczbaPunktów) >=
CASE 
WHEN LiczbaLatNauki = 7 THEN 70
WHEN LiczbaLatNauki = 8 THEN 75
ELSE 80 END
ORDER BY Uczeń;



- - - - - - — - - - - - - - - - - - - -
INSTRUKCJE SQL Z ROZDZIAŁU 10
- - - - - - — - - - - - - - - - - - - -



SELECT 
Kategoria,
Podkategoria,
SUM(LiczbaSztuk) AS 'Liczba sztuk'
FROM WykazProduktów
GROUP BY Kategoria, Podkategoria
ORDER BY Kategoria, Podkategoria;

SELECT 
Kategoria,
Podkategoria,
SUM(LiczbaSztuk) AS 'Liczba sztuk'
FROM WykazProduktów
GROUP BY Kategoria, Podkategoria WITH ROLLUP;




- - - - - - — - - - - - - - - - - - - -
INSTRUKCJE SQL Z ROZDZIAŁU 11- - - - - - — - - - - - - - - - - - - -
 -



SELECT *
FROM Klienci
INNER JOIN Zamówienia
ON Klienci.IDKlienta = Zamówienia.IDKlienta;

SELECT *
FROM Zamówienia
INNER JOIN Klienci
ON Zamówienia.IDKlienta = Klienci.IDKlienta;

SELECT *
FROM Klienci, Zamówienia
WHERE Klienci.IDKlienta = Zamówienia.IDKlienta;

SELECT
K.IDKlienta AS 'ID klienta',
K.ImięKlienta AS 'Imię klienta',
K.NazwiskoKlienta AS 'Nazwisko klienta',
Z.IDZamówienia AS 'ID zamówienia',
Z.DataZamówienia AS 'Data',
Z.KwotaZamówienia AS 'Kwota'
FROM Klienci AS K
INNER JOIN Zamówienia AS Z
ON K.IDKlienta = Z.IDKlienta;




- - - - - - — - - - - - - - - - - - - -
INSTRUKCJE SQL Z ROZDZIAŁU 12- - - - - - — - - - - - - - - - - - - -




SELECT
Klienci.ImięKlienta AS 'Imię klienta',
Klienci.NazwiskoKlienta AS 'Nazwisko klienta',
Zamówienia.DataZamówienia AS 'Data zamówienia',
Zamówienia.KwotaZamówienia AS 'Kwota zamówienia',
Zwroty.DataZwrotu AS 'Data zwrotu',
Zwroty.KwotaZwrotu AS 'Kwota zwrotu'
FROM Klienci
LEFT JOIN Zamówienia
ON Klienci.IDKlienta = Zamówienia.IDKlienta
LEFT JOIN Zwroty
ON Zamówienia.IDZamówienia = Zwroty.IDZamówienia
ORDER BY Klienci.NazwiskoKlienta, Klienci.ImięKlienta, Zamówienia.DataZamówienia;

SELECT
Klienci.ImięKlienta AS 'Imię klienta',
Klienci.NazwiskoKlienta AS 'Nazwisko klienta',
Zamówienia.DataZamówienia AS 'Data zamówienia',
Zamówienia.KwotaZamówienia AS 'Kwota zamówienia'
FROM Klienci
LEFT JOIN Zamówienia
ON Klienci.IDKlienta = Zamówienia.IDKlienta
LEFT JOIN Zwroty
ON Zamówienia.IDZamówienia = Zwroty.IDZamówienia
WHERE Zamówienia.IDZamówienia IS NOT NULL
AND Zwroty.IDZwrotu IS NULL
ORDER BY Klienci.NazwiskoKlienta, Klienci.ImięKlienta, Zamówienia.DataZamówienia;

SELECT
Rozmiar,
Kolor
FROM RozmiaryKoszulek
CROSS JOIN KoloryKoszulek;

SELECT
Rozmiar,
Kolor
FROM RozmiaryKoszulek, KoloryKoszulek;

SELECT
IDZamówienia AS 'ID zamówienia',
DataZamówienia AS 'Data zamówienia',
KwotaZamówienia AS 'Kwota zamówienia'
FROM Zamówienia
CROSS JOIN KluczoweDaty
WHERE DataZamówienia = OstatniaDataPrzetwarzania;





- - - - - - — - - - - - - - - - - - - -
INSTRUKCJE SQL Z ROZDZIAŁU 13- - - - - - — - - - - - - - - - - - - -



SELECT
Pracownicy.Pracownik AS 'Imię i nazwisko pracownika',
Przełożeni.Pracownik AS 'Imię i nazwisko przełożonego'
FROM Kadry AS Pracownicy
INNER JOIN Kadry AS Przełożeni
ON Pracownicy.IDPrzełożonego = Przełożeni.IDPracownika
ORDER BY Pracownicy.Pracownik;

SELECT
Pracownicy.Pracownik AS 'Imię i nazwisko pracownika',
Przełożeni.Pracownik AS 'Imię i nazwisko przełożonego'
FROM Kadry AS Pracownicy
LEFT JOIN Kadry AS Przełożeni
ON Pracownicy.IDPrzełożonego = Przełożeni.IDPracownika
ORDER BY Pracownicy.Pracownik;

SELECT
Klienci.ImięKlienta AS 'Imię klienta',
Klienci.NazwiskoKlienta AS 'Nazwisko klienta',
Zamówienia.DataZamówienia AS 'Data zamówienia',
Zamówienia.KwotaZamówienia AS 'Kwota zamówienia',
Zwroty.DataZwrotu AS 'Data zwrotu',
Zwroty.KwotaZwrotu AS 'Kwota zwrotu'
FROM Klienci
LEFT JOIN Zamówienia
ON Klienci.IDKlienta = Zamówienia.IDKlienta
LEFT JOIN Zwroty
ON Zamówienia.IDZamówienia = Zwroty.IDZamówienia
ORDER BY Klienci.NazwiskoKlienta, Klienci.ImięKlienta, Zamówienia.DataZamówienia;

CREATE VIEW KlienciZamówieniaZwroty AS
SELECT
Klienci.ImięKlienta AS 'Imię klienta',
Klienci.NazwiskoKlienta AS 'Nazwisko klienta',
Zamówienia.DataZamówienia AS 'Data zamówienia',
Zamówienia.KwotaZamówienia AS 'Kwota zamówienia',
Zwroty.DataZwrotu AS 'Data zwrotu',
Zwroty.KwotaZwrotu AS 'Kwota zwrotu'
FROM Klienci
LEFT JOIN Zamówienia
ON Klienci.IDKlienta = Zamówienia.IDKlienta
LEFT JOIN Zwroty
ON Zamówienia.IDZamówienia = Zwroty.IDZamówienia;

SELECT *
FROM KlienciZamówieniaZwroty;

SELECT *
FROM KlienciZamówieniaZwroty
ORDER BY `Nazwisko klienta`, `Imię klienta`, `Data zamówienia`;

SELECT
`Imię klienta`,
`Nazwisko klienta`,
`Data zamówienia`
FROM KlienciZamówieniaZwroty
WHERE `Nazwisko klienta` = 'Wieczorek';

CREATE VIEW WidokKlientów AS
SELECT
ImięKlienta AS 'Imię klienta',
NazwiskoKlienta AS 'Nazwisko klienta'
FROM Klienci;

ALTER VIEW WidokKlientów AS
SELECT
ImięKlienta AS 'Imię klienta',
NazwiskoKlienta AS 'Nazwisko klienta',
IDKlienta AS 'ID klienta'
FROM Klienci;

DROP VIEW WidokKlientów;

DROP VIEW KlienciZamówieniaZwroty;




- - - - - - — - - - - - - - - - - - - -
INSTRUKCJE SQL Z ROZDZIAŁU 14- - - - - - — - - - - - - - - - - - - -


SELECT
NazwaUżytkownika AS 'Nazwa użytkownika',
IFNULL(TransakcjeGotówka.SumaGotówka, 0) AS 'Łączna kwota zapłacona gotówką'
FROM Użytkownicy
LEFT JOIN
(SELECT
IDUżytkownika,
SUM(KwotaTransakcji) as 'SumaGotówka'
FROM Transakcje
WHERE SposóbZapłaty = 'Gotówka'
GROUP BY IDUżytkownika) AS TransakcjeGotówka
ON Użytkownicy.IDUżytkownika = TransakcjeGotówka.IDUżytkownika
ORDER BY Użytkownicy.IDUżytkownika;

SELECT
IDUżytkownika,
SUM(KwotaTransakcji) as 'SumaGotówka'
FROM Transakcje
WHERE SposóbZapłaty = 'Gotówka'
GROUP BY IDUżytkownika;

SELECT
NazwaUżytkownika AS 'Nazwa użytkownika',
SUM(KwotaTransakcji) as 'SumaGotówka'
FROM Użytkownicy
LEFT JOIN Transakcje 
ON Użytkownicy.IDUżytkownika = Transakcje.IDUżytkownika
WHERE SposóbZapłaty = 'Gotówka'
GROUP BY Użytkownicy.IDUżytkownika, Użytkownicy.NazwaUżytkownika 
ORDER BY Użytkownicy.IDUżytkownika;

SELECT NazwaUżytkownika AS 'Nazwa użytkownika'
FROM Użytkownicy
WHERE IDUżytkownika IN
(SELECT IDUżytkownika
FROM Transakcje
WHERE SposóbZapłaty = 'Gotówka');

SELECT NazwaUżytkownika AS 'Nazwa użytkownika'
FROM Użytkownicy
INNER JOIN Transakcje
ON Użytkownicy.IDUżytkownika = Transakcje.IDUżytkownika
WHERE SposóbZapłaty = 'Gotówka'
GROUP BY Użytkownicy.NazwaUżytkownika;

SELECT
NazwaUżytkownika as 'Nazwa użytkownika'
FROM Użytkownicy
WHERE
(SELECT
SUM(KwotaTransakcji) 
FROM Transakcje
WHERE Użytkownicy.IDUżytkownika = Transakcje.IDUżytkownika)
< 20;

SELECT
NazwaUżytkownika as 'Nazwa użytkownika'
FROM Użytkownicy
LEFT JOIN Transakcje
ON Użytkownicy.IDUżytkownika = Transakcje.IDUżytkownika
GROUP BY Użytkownicy.IDUżytkownika, Użytkownicy.NazwaUżytkownika
HAVING SUM(KwotaTransakcji) < 20;

SELECT
NazwaUżytkownika as 'Nazwa użytkownika'
FROM Użytkownicy
WHERE EXISTS
(SELECT *
FROM Transakcje
WHERE Użytkownicy.IDUżytkownika = Transakcje.IDUżytkownika);

SELECT
NazwaUżytkownika AS 'Nazwa użytkownika'
FROM Użytkownicy
WHERE IDUżytkownika IN
(SELECT IDUżytkownika
FROM Transakcje);

SELECT
NazwaUżytkownika AS 'Nazwa użytkownika'
FROM Użytkownicy
INNER JOIN Transakcje
ON Użytkownicy.IDUżytkownika = Transakcje.IDUżytkownika
GROUP BY NazwaUżytkownika;

SELECT
NazwaUżytkownika AS 'Nazwa użytkownika',
COUNT(IDTransakcji) AS 'Liczba transakcji'
FROM Użytkownicy
LEFT JOIN Transakcje
ON Użytkownicy.IDUżytkownika = Transakcje.IDUżytkownika 
GROUP BY Użytkownicy.IDUżytkownika, Użytkownicy.NazwaUżytkownika
ORDER BY Użytkownicy.IDUżytkownika;

SELECT
NazwaUżytkownika AS 'Nazwa użytkownika',
(SELECT
COUNT(IDTransakcji)
FROM Transakcje
WHERE Użytkownicy.IDUżytkownika = Transakcje.IDUżytkownika)
AS 'Liczba transakcji'
FROM Użytkownicy
ORDER BY Użytkownicy.IDUżytkownika;

SELECT
NazwaUżytkownika AS 'Nazwa użytkownika',
IFNULL(TransakcjeGotówka.SumaGotówka, 0) AS 'Łączna kwota zapłacona gotówką'
FROM Użytkownicy
LEFT JOIN
(SELECT
IDUżytkownika,
SUM(KwotaTransakcji) as 'SumaGotówka'
FROM Transakcje
WHERE SposóbZapłaty = 'Gotówka'
GROUP BY IDUżytkownika) AS TransakcjeGotówka
ON Użytkownicy.IDUżytkownika = TransakcjeGotówka.IDUżytkownika
ORDER BY Użytkownicy.IDUżytkownika;




- - - - - - — - - - - - - - - - - - - -
INSTRUKCJE SQL Z ROZDZIAŁU 15- - - - - - — - - - - - - - - - - - - -



SELECT
DataZamówienia AS 'Data',
'Zamówienie' AS 'Rodzaj',
KwotaZamówienia AS 'Kwota'
FROM Zamówienia
WHERE IDKlienta = 2
UNION
SELECT
DataZwrotu AS 'Data',
'Zwrot' AS 'Rodzaj',
KwotaZwrotu AS 'Kwota'
FROM ZwrotyTowarów
WHERE IDKlienta = 2
ORDER BY Data;

SELECT
DataZamówienia AS 'Data'
FROM Zamówienia
UNION
SELECT
DataZwrotu AS 'Data'
FROM ZwrotyTowarów
ORDER BY Data;

SELECT
DataZamówienia AS 'Data'
FROM Zamówienia
UNION ALL
SELECT
DataZwrotu AS 'Data'
FROM ZwrotyTowarów
ORDER BY Data;




- - - - - - — - - - - - - - - - - - - -
INSTRUKCJE SQL Z ROZDZIAŁU 16- - - - - - — - - - - - - - - - - - - -



DELIMITER $$
CREATE PROCEDURE Procedura_1 ( )
BEGIN
SELECT *
FROM Klienci;
END$$
DELIMITER ;

DELIMITER $$
CREATE PROCEDURE ProceduraKlient
(KlientID INT)
BEGIN
SELECT *
FROM Klienci
WHERE IDKlienta = KlientID;
END$$
DELIMITER ;

CALL Procedura_1

CALL ProceduraKlient (2);

DROP PROCEDURE Procedura_1

DROP PROCEDURE ProceduraKlient 




- - - - - - — - - - - - - - - - - - - -
INSTRUKCJE SQL Z ROZDZIAŁU 17- - - - - - — - - - - - - - - - - - - -



INSERT INTO Kontrahenci
(ImięKontrahenta, NazwiskoKontrahenta, Województwo)
VALUES
('Klaudia', 'Dawidowska', 'ZPM'),
('Irena', 'Krause', 'OPO');

INSERT INTO Kontrahenci
(ImięKontrahenta, NazwiskoKontrahenta)
VALUES
('Dawid', 'Grabowski');

INSERT INTO Kontrahenci
(ImięKontrahenta, NazwiskoKontrahenta, Województwo)
SELECT
Nazwa1,
Nazwa2,
Województwo
FROM NowiKontrahenci
WHERE Województwo = 'PKR';

UPDATE Kontrahenci
SET NazwiskoKontrahenta = 'Borowski',
Województwo = 'MŁP'
WHERE IDKontrahenta = 1;




- - - - - - — - - - - - - - - - - - - -
INSTRUKCJE SQL Z ROZDZIAŁU 18- - - - - - — - - - - - - - - - - - - -



CREATE TABLE MojaTabela
(Kolumna_1 INT AUTO_INCREMENT PRIMARY KEY NOT NULL,
Kolumna_2 INT NULL,
Kolumna_3 VARCHAR(25) NULL,
Kolumna_4 FLOAT NULL DEFAULT 10,
CONSTRAINT FOREIGN KEY(Kolumna_2)
REFERENCES PowiązanaTabela (PierwszaKolumna)
ON DELETE SET NULL);

ALTER TABLE MojaTabela
DROP COLUMN Kolumna_3;

CREATE INDEX Indeks2
ON MojaTabela (Kolumna_4);

DROP INDEX Indeks2
ON MojaTabela;

DROP TABLE MojaTabela;
