Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8



Podobne dokumenty
Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Relacyjne bazy danych. Podstawy SQL

Wykład 5. SQL praca z tabelami 2

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Wykład 05 Bazy danych

Relacyjne bazy danych. Podstawy SQL

Język SQL, zajęcia nr 1

SQL (ang. Structured Query Language)

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Bazy danych 7. SQL podstawy

Bazy danych. dr inż. Arkadiusz Mirakowski

Bazy danych. dr Radosław Matusik. radmat

Kurs. Podstawy MySQL

Wykład 6. SQL praca z tabelami 3

Język SQL podstawy zapytań

Bazy Danych i Usługi Sieciowe

Bazy danych SQL Server 2005

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę:

Bazy danych i usługi sieciowe

Zajęcia 13 wykorzystanie MySQL w PHP cz. 2

Systemy internetowe. Wykład 4 mysql. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Widok Connections po utworzeniu połączenia. Obszar roboczy

Zadania z SQLa (MS SQL Server)

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Przestrzenne bazy danych Podstawy języka SQL

Instalacja MySQL.

ACESS- zadania z wykorzystaniem poleceń SQL

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2.

Język SQL, zajęcia nr 2

Oracle11g: Wprowadzenie do SQL

Grupowanie i funkcje agregujące

Struktura drzewa w MySQL. Michał Tyszczenko

Bazy danych. Polecenia SQL

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Ref. 7 - Język SQL - polecenia DDL i DML

Systemy GIS Tworzenie zapytań w bazach danych

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

ZAAWANSOWANE BAZY DANYCH I HURTOWNIE DANYCH MySQL, PHP

Bazy danych 5. Samozłaczenie SQL podstawy

P o d s t a w y j ę z y k a S Q L

Wykład 8. SQL praca z tabelami 5

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji

Informatyka (5) SQL. dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro

Bazy danych. Dr inż. Paweł Kasprowski

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Paweł Rajba

1. Sprawdzenie ustawień konfiguracyjnych. Uruchomienie wiersza poleceń:..\ścieżka\bin>mysqladmin variables

Podstawy języka SQL. standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi. Bazy danych s.5-1

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

Przykładowa baza danych BIBLIOTEKA

Po prawidłowym podłączeniu do serwera MySQL należy wybrać bazę, na której będziesz pracować:

Ćwiczenie zapytań języka bazy danych PostgreSQL

SIECI KOMPUTEROWE I BAZY DANYCH

Autor: Joanna Karwowska

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski.

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

1. Połączenie z bazą danych. W wybranym edytorze tworzymy plik sqltest.py i umieszczamy w nim poniższy kod. #!/usr/bin/python3 import sqlite3

1. Tworzenie tabeli. 2. Umieszczanie danych w tabeli

Bazy danych 10. SQL Widoki

Baza danych do przechowywania użytkowników

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

Projekt jest finansowany ze środków Unii Europejskiej, Europejskiego Funduszu Społecznego i budŝetu państwa. Studia Podyplomowe dla Nauczycieli

Wybór wszystkich danych: SELECT * FROM employee Wybór określonych kolumn lub wyrażeń: SELECT first_name, last_name, salary FROM employee

a) ile wynosiła populacja najbardziej i najmniej ludnego z województw (oraz jakie były ich nazwy)

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław r.

CREATE TABLE logika (p BOOLEAN); INSERT INTO logika VALUES(true); INSERT INTO logika VALUES(false); INSERT INTO logika VALUES(NULL);

Bazy danych 4. SQL podstawy. P. F. Góra

Odnawialne Źródła Energii I rok. Tutorial PostgreSQL

SELECT * FROM tabela WHERE warunek wybiera dane spełniające podany warunek

Jerzy Nawrocki, Wprowadzenie do informatyki

Dostęp do baz danych z serwisu www - PHP. Wydział Fizyki i Informatyki Stosowanej Joanna Paszkowska, 4 rok FK

BAZY DANYCH JĘZYK ZAPYTAŃ BAZ DANYCH SQL. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

Wprowadzenie do JDBC z wykorzystaniem bazy H2

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki

Projektowanie systemów baz danych

BAZA DANYCH SIECI HOTELI

Bazy danych Ćwiczenia projektowe

41. Zmienne lokalne muszą mieć nazwę, którą poprzedza (maksymalnie 128 znaków) oraz typ (każdy z wyjątkiem: text, ntext oraz image)

Wstęp do SQL. copyright: KGiIS WGGiOŚ AGH

Autor: Joanna Karwowska

Tworzenie tabeli przez select CREATE TABLE PRAC2 AS SELECT P.NAZWISKO, Z.NAZWA FROM PRAC P NATURAL JOIN ZESP Z

Podstawowe zapytania SELECT (na jednej tabeli)

Przykład 3 Zdefiniuj w bazie danych hurtownia_nazwisko przykładową funkcję użytkownika fn_rok;

Zajęcia 11 wykorzystanie MySQL w PHP

Część 1: OLAP. Raport z zajęć laboratoryjnych w ramach przedmiotu Hurtownie i eksploracja danych

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr Prosta obsługa Bazy w PHP

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy)

Wykład 5: PHP: praca z bazą danych MySQL

Transkrypt:

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8 Bazowy skrypt PHP do ćwiczeń z bazą MySQL: Utwórz skrypt o nazwie cw7.php zawierający następującą treść (uzupełniając go o właściwą nazwę uŝytkownika i hasło): <html> <head> </head> <body> <?php $user = "tu_wpisz_twój_login"; $haslo = "tu_wpisz_twoje_haslo"; mysql_connect("localhost",$user,$haslo) or die ("nie moge połaczyć się z serwerem"); $baza = "tu_wpisz_twoją_bazę"; mysql_select_db($baza) or die ("nie moge połaczyć się z bazą"); $blad=false; $pomoc; if (strlen($zapytanie)>0) $pomoc = stripslashes ($zapytanie); $wynik=mysql_query($pomoc) or $blad=true; if ($blad == false) if (is_bool($wynik)!=true) $ilosc_pol = mysql_num_fields($wynik); echo "<hr><center><table BORDER=1>\n<tr>"; for ($i=0; $i < $ilosc_pol; $i++) print "<th>".mysql_field_name($wynik, $i)."</th>"; echo "</tr>\n"; while ($rekord = mysql_fetch_array($wynik)) //Table body echo "<tr>"; for ($f=0; $f < $ilosc_pol; $f++) echo "<td>$rekord[$f] &nbsp</td>"; echo "</tr>\n"; echo "</table></center><hr>"; else $ilosc_rek = mysql_affected_rows(); echo "<font color=green>"; echo "<hr><center> w wyniku zapytania:<br> $zapytanie <br>"; echo "zmianie uległo $ilosc_rek rekordów </center><hr>"; echo "<font color=black>"; else echo "<hr><center> <font color=red>"; echo "Podane Zapytanie SQL ($zapytanie) jest niepoprawne!"; echo "</center><hr><font color=black>"; $blad=false; print '<center><form METHOD="POST">Zapytanie:'; print '<INPUT TYPE="hidden" NAME="co" VALUE="wykonaj">'; print '<table><tr><td>'; print '<TEXTAREA NAME="zapytanie" cols=70 rows=10>'.$zapytanie.'</textarea>'; print '</td></tr></table>'; print '<INPUT TYPE="submit" VALUE="Wykonaj"></FORM></center>';?> </body> </html>

Przygotowanie Tabel do zajęć z SQL: Proszę wydać następujące polecenia tworzące struktury tabel wykorzystywanych do zajęć z SQL: a) utworzenie tabeli SPRZEDAWCY: CREATE TABLE IF NOT EXISTS SPRZEDAWCY (NrSprzedawcy BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, Imie TEXT, Nazwisko TEXT, NrSamochodu BIGINT, PRIMARY KEY (NrSprzedawcy)); b) utworzenie tabeli PRACOWNICY CREATE TABLE IF NOT EXISTS PRACOWNICY (NrPracownika BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, Imie TEXT, Nazwisko TEXT, DataUrodzenia DATE, DataZatrudnienia DATE, NrSamochodu BIGINT, PRIMARY KEY (NrPracownika) ); c) utworzenie tabeli SPRZEDAZ CREATE TABLE IF NOT EXISTS SPRZEDAZ (NrSprzedazy BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, NrPracownika BIGINT, Klient TEXT, Towar TEXT, Dostawca TEXT, Wartosc FLOAT, PRIMARY KEY (NrSprzedazy) ); d) utworzenie tabeli SAMOCHODY CREATE TABLE IF NOT EXISTS SAMOCHODY (NrSamochodu BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, Marka TEXT, Model TEXT, PRIMARY KEY (NrSamochodu) ); e) utworzenie tabeli LISTA CREATE TABLE IF NOT EXISTS LISTA (NrPozycji BIGINT UNSIGNED NOT NULL, Nazwa TEXT, PRIMARY KEY(NrPozycji)); Podstawowe polecenia języka SQL: 1. instrukcja INSERT instrukcja słuŝąca do dopisywania nowych rekordów do tabeli: INSERT INTO nazwa_tabeli (lista pól modyfikowanych) VALUES (lista wartości wprowadzanych); W przygotowania stworzonych tabel do dalszej części pracy przećwicz instrukcję INSERT wydając następujący ciąg poleceń.!uwaga! Po kaŝdym Poleceniu sprawdź efekt za pomocą instrukcji SELECT * FROM adekwatna nazwa tabeli. wprowadzenie danych do tabeli SPRZEDAWCY: (1,'Franciszek','Drewniany',1); (2,'Sara','Wiśniewska',4); (3,'Janusz','Kozłowski',6); (4,'Szymon','Pajęczak',''); (5,'Alina','Mróz',''); (6,'Marcin','Bokser',''); (7,'Tomasz','Prawy',7); wprowadzenie danych do tabeli PACOWNICY: INSERT INTO PRACOWNICY (Imie, Nazwisko, DataUrodzenia, DataZatrudnienia, NrSamochodu) VALUES ('Zofia','Czarnecka','1966-04-12','1999-05-01',2);

INSERT INTO PRACOWNICY (Imie, Nazwisko, DataUrodzenia, DataZatrudnienia) VALUES ('Stefan','Czarnecki','1977-03-21','2000-01-01'); INSERT INTO PRACOWNICY (Imie, Nazwisko, DataUrodzenia, DataZatrudnienia, NrSamochodu) VALUES ('Maria','Nowak','1977-05-01','2002-04-01',5); INSERT INTO PRACOWNICY (Imie, Nazwisko, DataUrodzenia, DataZatrudnienia, NrSamochodu) VALUES ('Franciszek','Jankowski','1996-08-03','2004-05-01','3'); wprowadzenie danych do tabeli SRZEDAZ: VALUES(1,1,'Krawczyk','Kanapa','Fab. Mebli',235.67); VALUES(2,1,'Jasiński','Krzesło','Fab. Mebli',453.78); VALUES(3,2,'Kowalski','Taboret','Jan Strug',82.78); VALUES(4,2,'Jankowski','Komplet','Fab. Mebli',3421.00); VALUES(5,3,'Kowalski','Kanapa','Fab. Mebli',235.67); VALUES(6,1,'Krawczyk','Kanapa','Fab. Mebli',235.67); VALUES(7,1,'Jankowski','ŁóŜko','Jan Strug',453.00); wprowadzenie danych do tabeli SAMOCHODY: INSERT INTO SAMOCHODY (NrSamochodu, Marka, Model) VALUES (1,'Fiat','Uno'); INSERT INTO SAMOCHODY (NrSamochodu, Marka, Model) VALUES(2,'Peugeot','206'); INSERT INTO SAMOCHODY (NrSamochodu, Marka, Model) VALUES(3,'Renault','Twingo'); INSERT INTO SAMOCHODY (NrSamochodu, Marka, Model) VALUES(4,'Ford','Mondeo'); INSERT INTO SAMOCHODY (NrSamochodu, Marka, Model) VALUES(5,'Daewoo','Lanos'); INSERT INTO SAMOCHODY (NrSamochodu, Marka, Model) VALUES(6,'Ford','Escort'); INSERT INTO SAMOCHODY (NrSamochodu, Marka, Model) VALUES(7,'Citroen','Xsara'); INSERT INTO SAMOCHODY (NrSamochodu, Marka, Model) VALUES(8,'Volkswagen','Polo'); wprowadzenie danych do tabeli LISTA: INSERT INTO LISTA (NrPozycji, Nazwa) VALUES(1,'Król'); INSERT INTO LISTA (NrPozycji, Nazwa) VALUES(2,'Maciuś'); INSERT INTO LISTA (NrPozycji, Nazwa) VALUES(3,'Koronny'); INSERT INTO LISTA (NrPozycji, Nazwa) VALUES(2,'Wyściełany'); INSERT INTO LISTA (NrPozycji, Nazwa) VALUES(5,'Paź'); INSERT INTO LISTA (NrPozycji, Nazwa) VALUES(2,'Berło'); 2. instrukcja SELECT instrukcja słuŝąca do pobrania serii pól z wybranej tabeli lub tabel: SELECT lista pol FROM nazwa tabel WHERE warunki selekcji ORDER BY lista pól do sortowania SELECT lista pol FROM nazwa tabel GROUP BY warunki grupowania HAVING warunki selekcji grup ORDER BY lista pól do sortowania Wykonaj i sprawdź efekt działań następującego szeregu zapytań testujących poszczególne słowa kluczowe dla instrukcji SELECT: słowo kluczowe FROM słuŝy do określenia nazwy tabeli lub tabel skąd mają być pobierane dane SELECT * SELECT NrSprzedazy, Towar, Wartosc słowo kluczowe AS słuŝy do nadania nowej nazwy prezentacji dla określonych kolumn pobranych danych z tabeli SELECT NrSprzedazy AS Numer_Sprzedazy, Towar AS Nazwa_Towaru, Wartosc AS Cena_Sprzedazy

słowo kluczowe DISTINCT słuŝy do usunięcia z otrzymanego wyniku zapytania powtarzających się rekordów. SELECT Towar AS Nazwa_Towaru, Wartosc AS Cena_Sprzedazy SELECT DISTINCT Towar AS Nazwa_Towaru, Wartosc AS Cena_Sprzedazy słowo kluczowe WHERE słuŝy do określenia warunku wyboru wierszy ujętych w wyniku realizacji zapytania. SELECT Towar AS Nazwa_Towaru, Wartosc AS Cena_Sprzedazy FROM SPRZEDAZ WHERE Towar = 'Kanapa'; SELECT Towar AS Nazwa_Towaru, Wartosc AS Cena_Sprzedazy FROM SPRZEDAZ WHERE NrSprzedazy > 6; SELECT Towar AS Nazwa_Towaru, Wartosc AS Cena_Sprzedazy FROM SPRZEDAZ WHERE Towar = 'Kanapa' AND Klient = 'Kowalski'; SELECT NrPracownika, Imie, Nazwisko, DataUrodzenia, DataZatrudnienia FROM PRACOWNICY WHERE NrPracownika = 2; SELECT Towar AS Nazwa_Towaru, Wartosc AS Cena_Sprzedazy FROM SPRZEDAZ WHERE Towar = 'Kanapa' AND NrSprzedazy > 6; SELECT Towar AS Nazwa_Towaru, Wartosc AS Cena_Sprzedazy FROM SPRZEDAZ WHERE Towar IN ('Kanapa', 'Komplet', 'ŁóŜko'); SELECT Towar AS Nazwa_Towaru, Wartosc AS Cena_Sprzedazy FROM SPRZEDAZ WHERE Towar IN ('Kanapa', 'Komplet', 'ŁóŜko') AND NrSprzedazy > 6; SELECT Towar AS Nazwa_Towaru, Wartosc AS Cena_Sprzedazy FROM SPRZEDAZ WHERE Towar IN ('Kanapa', 'Komplet', 'ŁóŜko') OR NrSprzedazy > 6; słowo kluczowe ORDER BY słuŝy do określenia kolejności pojawiania się rekordów w wyniku realizacji zapytania (sortowanie danych) ASC -> sortowanie rosnąco, DESC -> sortowanie malejąco. SELECT Towar AS Nazwa_Towaru, Wartosc AS Cena_Sprzedazy NrSprzedazy AS Numer_Tranzakcji FROM SPRZEDAZ WHERE Towar = 'Kanapa' ORDER BY NrSprzedazy; SELECT Towar AS Nazwa_Towaru, Wartosc AS Cena_Sprzedazy NrSprzedazy AS Numer_Tranzakcji FROM SPRZEDAZ WHERE NrSprzedazy > 2 ORDER BY Towar ASC; SELECT Towar AS Nazwa_Towaru, Wartosc AS Cena_Sprzedazy NrSprzedazy AS Numer_Tranzakcji FROM SPRZEDAZ WHERE NrSprzedazy > 2 ORDER BY Towar DESC; SELECT Towar AS Nazwa_Towaru, Klient AS Nazwa_Klienta, Wartosc AS Cena_Sprzedazy NrSprzedazy AS Numer_Tranzakcji FROM SPRZEDAZ WHERE NrSprzedazy > 0 ORDER BY Klient ASC, Wartosc DESC; SELECT * FROM SPRZEDAZ WHERE NrSprzedazy > 1 ORDER BY Klient ASC, Wartosc DESC; PODZAPYTANIE słuŝy do wybrania zbioru wartości otrzymanego wyniku innego zapytania selekcyjnego. SELECT Klient AS Nazwa_Klienta FROM SPRZEDAZ WHERE NrPracownika IN (SELECT NrPracownika FROM PRACOWNICY WHERE DataZatrudnienia > '1999-05-05'); FUNKCJE WBUDOWANE język SQL oferuje kilka podstawowych funkcji statystycznych do analizy danych w tabeli. SELECT SUM(Wartosc) AS Suma_Wartosci SELECT Sum(Wartosc) AS Suma_Wartosci, Count(Wartosc) AS Liczba_Wartosci, Avg(Wartosc) AS Srednia_Wartosc, Min(Wartosc) AS Minimalna_Wartosc, Max(Wartosc) AS Maksymalna_Wartosc

SELECT Count(Klient) AS Liczba_Klientow, Avg(Wartosc) AS Srednia_Wartosc FROM SPRZEDAZ; SELECT Avg(Wartosc) AS Srednia_Wartosci FROM SPRZEDAZ WHERE Klient='Krawczyk'; słowo kluczowe GROUP BY słuŝy do wstępnego zgrupowania zbioru rekordów zgodnie z nadanym kryterium (moŝna postrzegać działanie GROUP BY jako tworzenie podtabel) SELECT Klient, Avg(Wartosc) AS Srednia_Wartosci FROM SPRZEDAZ GROUP BY Klient ORDER BY Klient ASC; SELECT Klient FROM SPRZEDAZ GROUP BY Klient ORDER BY Klient ASC; Klient, Dostawca; SELECT Count(*) AS Liczba_Rekordow_w_Grupie, Klient, Dostawca, Avg(Wartosc) AS Srednia_Wartosci FROM SPRZEDAZ GROUP BY Klient, Dostawca; Klient, Dostawca ORDER BY Avg(Wartosc); słowo kluczowe HAVING jest uzupełnieniem do słowa GROUP BY pozwalającym na wybór rekordów spełniających określone kryterium. Klient, Dostawca HAVING Avg(Wartosc)>=250; Klient, Dostawca HAVING Avg(Wartosc)>=250 ORDER BY Avg(Wartosc); PRACA Z WIELOMA TABELAMI pozwala na wykonanie zapytania selekcyjnego obejmującego dane pochodzące z więcej niŝ jednej tabeli. W celu wyróŝnienia tabeli źródłowej stosuje się formatkę: NAZWATABELI.Nazwapola SELECT SPRZEDAZ.Klient, PRACOWNICY.Nazwisko, SPRZEDAZ.NrPracownika, PRACOWNICY.NrPracownika FROM SPRZEDAZ, PRACOWNICY; SELECT T1.Klient, T1.Wartosc, T3.Imie, T3.Nazwisko, T1.NrPracownika, T3.NrPracownika FROM SPRZEDAZ AS T1, PRACOWNICY AS T3; SELECT T1.Klient, T1.Wartosc, T3.Imie, T3.Nazwisko, T1.NrPracownika, T3.NrPracownika FROM SPRZEDAZ AS T1, PRACOWNICY AS T3 WHERE T1.NrPracownika = T3.NrPracownika; SELECT T1.Klient, T1.Wartosc, T3.Imie, T3.Nazwisko FROM SPRZEDAZ AS T1, PRACOWNICY AS T3 WHERE T1.NrPracownika = T3.NrPracownika; SELECT T1.Klient, T3.Imie, T3.Nazwisko, T4.Marka, T4.Model FROM SPRZEDAZ AS T1, PRACOWNICY AS T3, SAMOCHODY AS T4 WHERE T1.NrPracownika = T3.NrPracownika AND T3.NrSamochodu = T4.NrSamochodu; słowo kluczowe JOIN słuŝy do łączenia ze sobą dwóch tabel w celu generacji wyniku zapytania operującego na obu tabelach według określonej zaleŝności równości pomiędzy określonymi polami z obu tabel. SELECT SPRZEDAZ.Klient, PRACOWNICY.Imie, SPRZEDAZ.Wartosc FROM SPRZEDAZ JOIN PRACOWNICY ON SPRZEDAZ.NrPracownika = PRACOWNICY.NrPracwnika; SAMOCHODY JOIN PRACOWNICY ON SAMOCHODY.NrSamochodu = PRACOWNICY.NrSamochodu; SAMOCHODY LEFT JOIN PRACOWNICY ON SAMOCHODY.NrSamochodu = PRACOWNICY.NrSamochodu; SAMOCHODY RIGHT JOIN PRACOWNICY ON SAMOCHODY.NrSamochodu = PRACOWNICY.NrSamochodu;

PRACOWNICY LEFT JOIN SAMOCHODY ON SAMOCHODY.NrSamochodu = PRACOWNICY.NrSamochodu; PRACOWNICY RIGHT JOIN SAMOCHODY ON SAMOCHODY.NrSamochodu = PRACOWNICY.NrSamochodu; słowo kluczowe UNION słuŝy do sumowania ze sobą tabel wynikowych dwóch zapytań selekcyjnych. SAMOCHODY LEFT JOIN PRACOWNICY ON SAMOCHODY.NrSamochodu = PRACOWNICY.NrSamochodu UNION SAMOCHODY RIGHT JOIN PRACOWNICY ON SAMOCHODY.NrSamochodu = PRACOWNICY.NrSamochodu; SELECT Imie, Nazwisko FROM PRACOWNICY UNION SELECT Imie, Nazwisko FROM SPRZEDAWCY WHERE SPRZEDAWCY.NrSamochodu IS NOT NULL; SELECT SPRZEDAWCY.Imie, SPRZEDAWCY.Nazwisko, SAMOCHODY.Marka, SAMOCHODY,Model FROM (SAMOCHODY JOIN SPRZEDAWCY ON SAMOCHODY.NrSamochodu = SPRZEDAWCY.NrSamochodu) UNION SELECT PRACOWNICY.Imie, PRACOWNICY.Nazwisko, SAMOCHODY.Marka, SAMOCHODY,Model FROM (SAMOCHODY JOIN PRACOWNICY ON SAMOCHODY.NrSamochodu = PRACOWNICY.NrSamochodu) 3. instrukcja UPDATE instrukcja słuŝąca do modyfikacji istniejących rekordów do tabeli: UPDATE nazwa_tabeli SET nazwa_pola=wartość WHERE nazwa_pola=wartość;!uwaga! Po kaŝdym Poleceniu sprawdź efekt za pomocą instrukcji SELECT * FROM adekwatna nazwa tabeli. INSERT INTO SRZEDAZ (NrSprzedazy, NrPracownika, Klient) VALUES (8,1,'Jankowski'); UPDATE SPRZEDAZ SET Towar = 'Kanapa', Dostawca = 'Fab. Mebli', Wartosc = 236.67 WHERE NrSprzedazy = 8; przykład 2: CREATE TABLE SPRZEDAZ2 (NrSprzedazy BIGINT UNSIGNED NOT NULL, NrPracownika BIGINT, Klient TEXT, Towar TEXT, Dostawca TEXT, Wartosc FLOAT, PRIMARY_KEY(NrSprzedazy)); INSERT INTO SPRZEDAZ2 VALUES (SELECT * FROM SPRZEDAZ); UPDATE SPRZEDAZ2 SET NrSprzedazy = NrSprzedarzy+199; UPDATE SPRZEDAZ2 SET Klient ='Kowalski' WHERE Klient = 'Krawczyk'; UPDATE SPRZEDAZ2 SET Klient ='Jankowski' WHERE NrSprzedazy < 200; UPDATE SPRZEDAZ2 SET Wartosc = Wartosc * 1.22; 4. instrukcja DELETE instrukcja słuŝąca do usuwania rekordów z tabeli: DELETE nazwy_pol FROM nazwa_tabeli WHERE nazwa_pola=wartość;!uwaga! Po kaŝdym Poleceniu sprawdź efekt za pomocą instrukcji SELECT * FROM adekwatna nazwa tabeli. przykład: DELETE * FROM SPRZEDAZ WHERE NrPracownika = 2; 5. CIEKAWE ZAPYTANIA przykładowe zapytania SQL które mogą się przydać. Przykład poszukiwania i zliczenia powtarzających się wartości pól w tabeli:

SELECT NrPozycji, Count(NrPozycji) AS Liczba_Powtorzen FROM LISTA GROUP BY NrPozycji HAVING Count(NrPozycji)>1; Przykład uzupełnienia tabeli o wybraną serię danych z drugiej tabeli: INSERT INTO SPRZEDAZ VALUES (SELECT * FROM SPRZEDAZ2 WHERE NrSprzedazy >200); Przykład usunięcia z tabeli pracownika, który zawarł mniej niŝ 2 tranzakcje sprzedaŝy: DELETE * FROM PRACOWNICY WHERE NrPracownika IN (SELECT NrPracownika FROM SPRZEDAZ GROUP BY NrPracownika HAVING Count(*) <2); DODATKOWE FUNKCJE oferowane przez MySQL: Operacje na łańcuchach tekstowych typ bazowy pól = TEXT, VARCHAR itp. SELECT NrPracownika, CONCAT(Imie,' ',Nazwisko) AS Imie_Nazwisko FROM PRACOWNICY; SELECT NrSprzedazy, UPPER(Klient), Wartosc FROM SPRZEDAZ ORDER BY NrPracowika; Operacje na liczbach typ bazowy pól = INT, FLOAT itp. SELECT NrSprzedazy, Klient, Towar, CONCAT( FORMAT(Wartosc,2),' zł') ) AS Cena_Zl SELECT NrSprzedazy, Klient, Towar, CONCAT( CEILING(Wartosc),' zł') ) AS Cena_w_Gore SELECT NrSprzedazy, Klient, Towar, CONCAT( FLOOR(Wartosc),' zł') ) AS Cena_w_Dol SELECT NrSprzedazy, Klient, Towar, CONCAT( ROUND(Wartosc,1),' zł') ) AS Cena_Zaokr Operacje na datach i czasie typ bazowy pól = DATE, TIME. Przykład: SELECT CONCAT('Urodzony:',DAYNAME(DataUrodzenia),',',DAYOFMONTH(DataUrodzenia),' ', MONTHNAME(DataUrodzenia),' ',YEAR(DataUrodzenia)) AS Urodzony FROM PRACOWNICY;