Bazy danych i systemy zarzadzania

Podobne dokumenty
Konstruowanie Baz Danych

Przestrzenne bazy danych Podstawy języka SQL

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

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

Wprowadzenie do języka SQL

Systemy GIS Tworzenie zapytań w bazach danych

Język SQL. Rozdział 2. Proste zapytania

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL

Bazy danych. Dr inż. Paweł Kasprowski

SQL Structured Query Language

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Relacyjne bazy danych. Podstawy SQL

Relacyjne bazy danych. Podstawy SQL

Autor: Joanna Karwowska

Język SQL podstawy zapytań

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

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

BAZY DANYCH wprowadzenie do języka SQL. Opracował: dr inż. Piotr Suchomski

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

Język SQL. instrukcja laboratoryjna. Politechnika Śląska Instytut Informatyki. laboratorium Bazy Danych

Wykład 5. SQL praca z tabelami 2

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

Wprowadzenie do baz danych

SQL (ang. Structured Query Language)

Konstruowanie Baz Danych DQL agregacja danych

Podstawowe zapytania SELECT (na jednej tabeli)

Autor: Joanna Karwowska

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

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu:

Agregacja i Grupowanie Danych. Funkcje Agregacji. Opcje GROUP BY oraz HAVING

SQL - Structured Query Language. strukturalny język zapytań

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

BAZY DANYCH. Wykład 1: Wprowadzenie do baz danych. Marcin Czajkowski. Przygotowanie wykładu: Małgorzata Krętowska

Paweł Rajba

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Widok Connections po utworzeniu połączenia. Obszar roboczy

Wyświetl imie i nazwisko ucznia, nazwę przedmiotu z którego otrzymał ocenę niedostateczną. Nazwij tę kwerendę oceny niedostateczne.

forma studiów: studia stacjonarne Liczba godzin/tydzień: 1, 0, 2, 0, 0

Bazy danych 2. Wykład 4 Structured Query Language (SQL)

Oracle11g: Wprowadzenie do SQL

Zadania z SQLa (MS SQL Server)

SQL Structured Query Language

040 STRUCTURED QUERY LANGUAGE. Prof. dr hab. Marek Wisła

Wstęp Wprowadzenie do BD Podstawy SQL. Bazy Danych i Systemy informacyjne Wykład 1. Piotr Syga

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

LITERATURA. Wprowadzenie do systemów baz danych C.J.Date; WNT Warszawa 2000

Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania.

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

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Zaawansowane bazy danych i hurtownie danych studia zaoczne II stopnia, sem. I

Jerzy Nawrocki, Wprowadzenie do informatyki

Microsoft SQL Server Podstawy T-SQL

Bazy danych. Polecenia SQL

Instrukcje DQL: SELECT. Zastosowanie SELECT, opcje i warianty

Sylabus do programu kształcenia obowiązującego od roku akademickiego 2014/15

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

Szkolenie autoryzowane. MS Tworzenie zapytań do Microsoft SQL Server Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje

Podstawowe informacje o bazach danych. Technologie Informacyjne

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

LITERATURA. C. J. Date; Wprowadzenie do systemów baz danych WNT Warszawa 2000 ( seria Klasyka Informatyki )

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

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

Język SQL, zajęcia nr 1

PRZEWODNIK PO PRZEDMIOCIE

Szkolenie Oracle SQL podstawy. Terminy lutego 2010 First Minute! 1100zł!

SQL praca z tabelami 4. Wykład 7

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

Tworzenie zapytań do Microsoft SQL Server

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

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

SQL Structured Query Language

Projektowanie systemów baz danych

Wykład 2. SQL 1 Structured Query Lenguage

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE

Instrukcje DML INSERT, UPDATE, DELETE. COPY

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

Podstawy języka SQL Co to jest SQL? Możliwości SQL SQL*Plus

Technologie baz danych

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.

Kwerendy (zapytania) wybierające

Wykład 05 Bazy danych

Bazy Danych. SQL Podstawy języka II: zapytania. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści

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

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

Marek Rakowski Podstawy zdania SELECT Strona 1 z 12

Cel przedmiotu. Wymagania wstępne w zakresie wiedzy, umiejętności i innych kompetencji 1 Język angielski 2 Inżynieria oprogramowania

Wykład XII. optymalizacja w relacyjnych bazach danych

Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Język SQL. Rozdział 4. Funkcje grupowe Funkcje grupowe, podział relacji na grupy, klauzule GROUP BY i HAVING.

Wykład :45 BD-1 W_3

PRZEWODNIK PO PRZEDMIOCIE

Bazy danych SQL Server 2005

Komunikacja z bazą danych psql

Wykład 6. SQL praca z tabelami 3

Język SQL, zajęcia nr 2

Transkrypt:

Bazy danych: Podstawy języka SQL 1 Bazy danych i systemy zarzadzania Wykład VII Elementy języka SQL Część I

Bazy danych: Podstawy języka SQL 2 Wykaz literatury 1. Jakubowski A.: Podstawy SQL. Ćwiczenia praktyczne. Helion, Gliwice, 2001. 2. SQL Język relacyjnych baz danych. Wellesley Software. WNT, W-wa, 1992/95. ISBN 83-204-1806-2. 3. Harrington, J.L.: SQL dla każdego. EDU-MIKOM, Warszawa, 1998. ISBN 83-87102-55-5. 4. Ullman J.D. i J. Widom: Podstawowy wykład z systemów baz danych. WN-T, Warszawa, 2000 (Rozdziały 5,6,7). 5. Bowman J.S., S.L. Emerson i M. Darnovsky: Podręcznik jezyka SQL. WN- T, Warszawa, 2001. 6. Ladanyi H.: SQL. Księga eksperta. Helion, Gliwice, 2000 (Oracle 7.3). 7. Celko, J.: SQL Zaawansowane techniki programowania. Mikom, Warszawa, 1999. ISBN 83-7158-221-8. 8. Stephens, R.K. et al.: SQL w 3 tygodnie. LT&P, Warszawa, 1999. ISBN 83-7158-221-8. 9. Gruber, M.: SQL. Znakomity podręcznik opisujący najnowszy standard SQL-a. Wydawnictwo Helion, Gliwice, 1996. ISBN 83-86718-32-3. 10. Connan, S.J., G.A.M. Otten: SQL The Standard Handbook. (based on the new SQL standard (ISO 9075:1992(E)). McGraw-Hill Book Company, London, 1993.

Bazy danych: Podstawy języka SQL 3 Strony internetowe Wybrane strony internetowe poświęcone SQL http://en.wikipedia.org/wiki/sql http://pl.wikipedia.org/wiki/s http://www.bazydanych.prv.pl http://galaxy.uci.agh.edu.pl/ chwastek/lectures/db/dbtitle.html http://www.ia.pw.edu.pl/%7ettraczyk/ http://baszta.iie.ae.wroc.pl/index.html http://www.cs.put.poznan.pl/kjankiewicz/oracle/sql/index.htm http://www.cs.put.poznan.pl/rwrembel/courses/sbd.htm Inne: http://www.sqlcourse.com/ http://www.microsoft.com/sql/ http://www.mysql.com/ http://www.postresql.org/ http://w3schools.com/sql/default.asp http://sqlzoo.net/ http://www.sqlmag.com/ http://www.superiorsql.com/ http://www.1keydata.com/sql/sql.html http://philip.greenspun.com

Bazy danych: Podstawy języka SQL 4 Czym jest SQL Definicja SQL := Structured Query Language; database sub-language (niepełny język obsługi baz danych (bez kontroli sterowania)). SQL jest językiem obsługi baz danych (RBD) zaimplementowanym w systemach zarządzania bazami danych (SZDB), przeznaczonym do definiowania struktur danych, wyszukiwania danych oraz operacji na danych. Posiada on akceptację ANSI oraz standard ISO. W praktyce jest standardowym językiem zapytań dla relacyjnych baz danych. Cechy języka SQL jest językiem wysokiego poziomu (4GL), opartym na słownictwie języka angielskiego; jego wyrażenia mają określoną strukturę, jest językiem deklaratywnym (nieproceduralnym); zorientowanym na wynik (użytkownik definiuje co chce otrzymać, ale nie pisze jak), jest oparty na algebrze relacji, nie posiada instrukcji sterujących wykonaniem programu, nie dopuszcza rekurencji, zawiera logikę trójwartościową, umożliwia definiowanie struktur danych, wyszukiwanie danych, oraz opracje na danych.

Bazy danych: Podstawy języka SQL 5 Historia SQL-a Etapy powstawania SQL-a 1970: E.F. Codd, IBM Relacyjne Bazy Danych, 1974: Chamberlain, IBM, San Jose Structured English Query Language SEQUEL (prototyp SQL), 1976-7: SEQUEL/2, koniec lat 70-tych: ORACLE (Relational Software Inc.) pierwsza implementacja praktyczna (komercyjna), 1981: IBM SQL/DS (SZBD), poprzednik DB/2 (1983), 1982: ANSI: RDL (Relationla Data Language), 1983: ISO definicja SQL, 1986: ANSI pierwszy standard SQL (SQL-86), 1987: ISO pierwszy standard SQL: ISO 9075: 1987 (E), 1989: ISO następny standard SQL: ISO 9076: 1989 (E) (SQL-89), 1992: ISO kolejna, wzbogacona wersja: ISO 9075: 1992 (E) (SQL 2), 1999: SQL 3 (wdrożenie?), OQL (?)

Bazy danych: Podstawy języka SQL 6 Struktura i wykorzystanie języka SQL Komponenty języka SQL DDL (Data Definition Language) język definiowania struktur danych (CREATE), DQL (Data Query Language) język definiowania zapytań dla wyszukiwania danych, (SELECT), DML (Data Manipulation Language język operacji na danych (SE- LECT, INSERT, UPDATE, DELETE), Instrukcje sterowania danymi kontrola uprawnień użytkowników (GRANT, REVOKE). Wykorzystanie SQL-a Interaktywny SQL bezpośredni dostęp do danych za pomocą interepretera SQL (np. z terminala ASCII), Statyczny SQL stały (predefiniowany) kod w SQL; może to być zanurzony SQL (tzw. embedded SQL) czyli kod znajdujący się wewnątrz innego języka programowania lub modułowy SQL, tzn. samodzielne moduły w języku SQL, które mogą być łączone z modułami innych języków, Dynamiczny SQL kod SQL generowany dynamicznie przez programy użytkowe; często generowany jest za pomocą interfejsów graficznych lub z poziomu WWW (np. za pomocą PHP), Definicyjny SQL kod w SQL-u generowany przy pomocy narzędzi CASE.

Bazy danych: Podstawy języka SQL 7 Elementy języka SQL alfabet i język Alfabet SQL Alfabet SQL obejmuje: zestaw znaków SQL_TEXT (chrakterystyczny dla implementacji); A,B,C,...,Z,a,b,c,...,z,0,1,2,...,9 oraz znaki specjalne:. ; ( ), : % _? "+ - * / < > = & i spacja, literały (stałe), identyfikatory (nazwy), np. nazwy tabel, kolumn (atrybutów) widoków, schematów, etc., elementy semantyczne języka: nazwy poleceń i funkcji. Zasady konstrukcji wyrażeń nazwy umożliwiają dostęp do obiektów z różnych poziomów; realizuje się to za pomocą tzw. wyrażeń ścieżkowych, np. CATA- LOG.Company.Department, separatorem poziomów jest kropka, możliwe jest konstruowanie i operacje porównania na wierszach, np. (A1, B1, C1) < (A2, B2, C2) (SQL 2?), każda instrukcja zaczyna się słowem kluczowym, może zawierać modyfikatory i kończy się średnikiem, * oznacza wszystkie kolumny (atrybuty) tabeli, stałe tekstowe zapisywane są w cudzysłowach, np. Warszawa.

Bazy danych: Podstawy języka SQL 8 Struktura i przykłady typowych zapytań Struktura typowego zapytania SELECT Attribute1, Attribute2,...,Attributen FROM Table1 [, Table2,...,Tablek] WHERE Condition; Typowe zapytanie pozwala odczytać wartości zadanych atrybutów z wybranej tabeli (lub tabel) wykonywana jest więc projekcja na wyspecyfikowane atrybuty; warunek zadany po słowie WHERE ma charakter formuły logicznej i stanowi kryterium wyboru rekordów dokonywana jest więc równocześnie selekcja. W przypadku podania więcej niż jednej tabeli wykonywana jest na tych tabelach operacja iloczynu kartezjańskiego. Klauzula WHERE nie jest obowiązkowa. Przykłady prostych typowych zapytań Wyświetlania zawartości tabeli (wszystkie kolumny): SELECT * FROM Dostawcy; Wyświetlania zawartości tabeli (wybrane kolumny): SELECT NazwaDostawcy, TelefonDostawcy FROM Dostawcy; Wyświetlanie zawartości tabeli (wybrane kolumny) z usunięciem duplikatów: SELECT DISTINCT NazwaDostawcy FROM Dostawcy;

Bazy danych: Podstawy języka SQL 9 Przykłady typowych zapytań Sortowanie tabeli wynikowej SELECT * FROM Dostawcy ORDER BY NazwaDostawcy; SELECT NazwaDostawcy, NazwaTowaru FROM Dostawcy ORDER BY NazwaTowaru, NazwaDostawcy; Sortowanie tabeli wynikowej w odwrotnej kolejności SELECT Wiek, Nazwisko ORDER BY Wiek DESC; Sortowanie tabeli wynikowej wg wybranych kryteriów SELECT Wiek, Nazwisko ORDER BY Wiek DESC, Pracownik ASC; Sortowanie z użyciem numerów kolumn SELECT Nazwisko, Wiek, Pobory*12 + Premia ORDER BY 3 DESC, 1 ASC;

Bazy danych: Podstawy języka SQL 10 Przykład operacji selekcji ID_prac Nazwisko Imię DataUr Stanowisko Dział Stawka MT101 Abacki Adam 61-01-01 robotnik P10 550,00 zł MT102 Abakowski Alojzy 61-01-02 robotnik P10 574, 00 zł MT103 Adamski Antoni 61-01-03 robotnik P20 1275,00 zł MT104 Adamski Arnold 61-01-03 robotnik P20 1280,00 zł MT105 Adamski Arnold 61-01-03 robotnik P20 1295,00 zł KT101 Aron Antonina 61-01-03 robotnik P10 575,00 zł MU101 Batman Bogusław 67-02-13 kierownik P30 1224,00 zł KU101 Celińska Mirosława 69-03-08 analityk F10 975,00 zł MV101 Dioniziak Dariusz 71-10-17 v-prezes V 3000,00 zł SELECT Nazwisko, Imię, DataUr, Stanowisko, Dział, Stawka WHERE Nazwisko= Adamski ; ID_prac Nazwisko Imię DataUr Stanowisko Dział Stawka MT103 Adamski Antoni 61-01-03 robotnik P20 1275,00 zł MT104 Adamski Arnold 61-01-03 robotnik P20 1280,00 zł MT105 Adamski Arnold 61-01-03 robotnik P20 1295,00 zł SELECT Nazwisko, Imię, DataUr, Stanowisko, Dział, Stawka WHERE (Stanowisko= robotnik AND Stawka < 1000) OR (Stanowisko= analityk AND Stawka < 1000); ID_prac Nazwisko Imię DataUr Stanowisko Dział Stawka MT101 Abacki Adam 61-01-01 robotnik P10 550,00 zł MT102 Abakowski Alojzy 61-01-02 robotnik P10 574, 00 zł KT101 Aron Antonina 61-01-03 robotnik P10 575,00 zł KU101 Celińska Mirosława 69-03-08 analityk F10 975,00 zł

Bazy danych: Podstawy języka SQL 11 Realizacja selekcji wybór rekordów Typowe przykłady operacji selekcji SELECT Nazwisko, Wiek WHERE Wiek = 65; SELECT Nazwisko, Wiek WHERE Nazwisko = Kowalski ; SELECT Nazwisko, Wiek WHERE Nazwisko = Kowalski AND Wiek > 60; SELECT Nazwisko, Wiek, Stanowisko WHERE Stanowisko = analityk OR Stanowisko = programista ; SELECT Nazwisko, Wiek, Stanowisko WHERE (Stanowisko = analityk OR stanowisko = programista ) AND Wiek < 25; SELECT Nazwisko WHERE (Stanowisko = analityk OR stanowisko = programista ) AND Wiek < 25 AND Jezyk2 IN ( francuski, niemiecki ORDER BY Wiek DESC;

Bazy danych: Podstawy języka SQL 12 Konstruowanie warunku w klauzuli WHERE Operatory relacyjne =, <, >, <=, >=,!= (<>) służą do porównywania liczb, dat, napisów; napisy muszą być zapisane z użyciem apostrofów. Zapis dat i godzin musi być zgodny z formatem stosowanym w SZBD. Operatory logiczne AND, OR, NOT wraz z nawiasami służą do konstrukcji złożonych warunków logicznych (algebraicznie odpowiadających iloczynowi, sumie i dopełnieniu). Wyznaczanie wartości logiczne przebiega od lewej do prawej, z uwzględnieniem priorytetów i nawiasów. Operatory specjalne BETWEEN... AND..., LIKE, IN, IS NULL służą do definiowania warunków złożonych selekcji. Operator LIKE pozwala na porównywanie łańcuchów z użyciem symboli specjalnych % (dowolny ciąg znaków) oraz _ (pojedynczy symbol). Wszystkie te operatory mogą być negowane (NOT). Przykłady: DataZatrudnienia BETWEEN 10/12/99 AND 17/01/00 Nazwisko LIKE Kowal% StawkaVAT IN (0, 7, 22) Grzech IN ( pycha, chciwość, nieczystość, zadrość, nieumiarkowanie w jedzeniu i piciu, gniew, lenistwo ) Telefon IS NULL, Telefon IS NOT NULL

Bazy danych: Podstawy języka SQL 13 Zastosowanie obliczeń w zapytaniach W zapytaniach można umieścić wyrażenia definiujące standardowe operacje arytmetyczne oraz wykorzystujące funkcje. SELECT NumerZam, ISBN, Ilosc, CenaJednost, (CenaJednost * Ilosc) FROM ZamowioneKsiazki WHERE NumerZam = 3; SELECT Pracownik, (Zarobki * 12 + Prowizja) / 12 WHERE Stanowisko = Sprzedawca ; SELECT Pracownik, Zarobki, Prowizja WHERE Prowizja <.25 * Zarobki; SELECT Pracownik, Zarobki, 0.75 * (Zarobki + 550) WHERE Stanowisko = kierownik AND (Zarobki + 550) * 0.75 > 2500 ORDER BY 3; SELECT Nazwisko, Imie FROM Osoby ORDER BY Nazwisko, Imie; SELECT SUBSTRING (Imie FROM 1 FOR 1). Nazwisko FROM Osoby; SELECT CURRENT_DATE - DataZamowienia AS OkresOczekiwania FROM Zamowienia WHERE Klient = Kowalski ;

Bazy danych: Podstawy języka SQL 14 Operacje grupowania Opcje GROUP BY oraz HAVING umożliwiają grupowanie wybranych rekordów (tzw. agregację). Możliwe jest użycie typowych funkcji agregujących: SUM, AVG, MIN, MAX, COUNT. SELECT Stanowisko, AVG(Zarobki), COUNT(*) WHERE Stanowisko!= prezes GROUP BY Stanowisko; SELECT Stanowisko, AVG(Zarobki), = Srednia zarob, COUNT(*), = # prac_na_stan WHERE Stanowisko!= prezes GROUP BY Stanowisko HAVING AVG(Zarobki) < 2500; SELECT Stanowisko, NumerDzialu, Count(*) WHERE Stanowisko!= prezes GROUP BY Stanowisko, NumerDzialu HAVING Count(*) >1; SELECT Klient, COUNT(*), SUM(Kwota) FROM Zamowienia GROUP BY Klient HAVING SUM(Kwota) > 1000; SELECT CenaJednostkowa, COUNT(*) FROM Zamowienia WHERE CenaJednostkowa > 17 GROUP BY CenaJednostkowa;

Bazy danych: Podstawy języka SQL 15 Operacje grupowania W klauzuli SELECT grupującej dane można używać tylko nazw atrybutów dla których następuje grupowanie. W zależności od struktury tabeli oraz zawartych w niej danych i spodziewanego wyniku zapytania, istnieje możliwość wykorzystania WHERE lub HAVING; WHERE działa przed sformowaniem grup a HAVING po predykat tej opcji musi więc odnosić się do kryteriów wykorzystanych przy tworzeniu grup. SELECT CenaJednostkowa, COUNT(*) FROM Zamowienia WHERE CenaJednostkowa > 17 GROUP BY CenaJednostkowa; SELECT CenaJednostkowa, COUNT(*) FROM Zamowienia GROUP BY CenaJednostkowa HAVING CenaJednostkowa > 17; Możliwe jest także jednoczesne użycie WHERE oraz HAVING, np.: SELECT CenaJednostkowa, COUNT(*) FROM Zamowienia WHERE RokWydania > 1980 GROUP BY CenaJednostkowa HAVING CenaJednostkowa > 17; Wyniki operacji grupujących mogą być zapamiętywane do dalszego przetwarzania, np.: INSERT INTO DzialSrednia (NumerDzialu, DzialSrednieZarobki) SELECT NumerDzialu, AVG(Zarobki) GROUP BY NumerDzialu;