ACESS- zadania z wykorzystaniem poleceń SQL

Podobne dokumenty
Ćwiczenie zapytań języka bazy danych PostgreSQL

Widok Connections po utworzeniu połączenia. Obszar roboczy

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Wykład 05 Bazy danych

Język SQL, zajęcia nr 1

Język SQL. Rozdział 6. Podzapytania Podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, operatory ANY, ALL i EXISTS.

Relacyjne bazy danych. Podstawy SQL

Język SQL. Rozdział 8. Język manipulowania danymi DML

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

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

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

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

Baza danych Uczniowie.mdb

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

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

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

Paweł Rajba

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Bazy Danych i Usługi Sieciowe

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Relacyjne bazy danych. Podstawy SQL

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

Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane.

Wprowadzenie do języka SQL

Bazy Danych. SQL Podstawy języka III: powtórzenie. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

Wykład 8. SQL praca z tabelami 5

Język SQL. Rozdział 2. Proste zapytania

Grupowanie i funkcje agregujące

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

Laboratorium Bazy danych SQL 3 1

Struktura bazy danych

Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1

Bazy Danych i Usługi Sieciowe

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

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Wykład 5. SQL praca z tabelami 2

Bazy danych. dr inż. Arkadiusz Mirakowski

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

Laboratorium Bazy danych SQL 2

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

Bazy danych i usługi sieciowe

WPROWADZENIE DO JĘZYKA SQL

Bazy danych 10. SQL Widoki

Język SQL, zajęcia nr 2

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

Bazy danych Ćwiczenia projektowe

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

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

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

Relacji między tabelami klucze obce. Schemat bazy danych, wczytanej z pliku create_tables.sql. Klucz obcy jako ograniczenie dla kolumny

Wykład 6. SQL praca z tabelami 3

SQL do zaawansowanych analiz danych część 1.

bazy danych - heterogeniczność producenci funkcjonalność modele danych protokoły komunikacyjne

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

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

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

Język SQL. Rozdział 5. Połączenia i operatory zbiorowe

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

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678');

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2.

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

Bazy danych. Dr inż. Paweł Kasprowski

SQL (ang. Structured Query Language)

Język SQL. Rozdział 8. Język manipulowania danymi DML zadania

LAB 3 (część 1 Projektu)

Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle

SQL w praktyce. Miłej i owocnej nauki!!!

Hurtownia Świętego Mikołaja projekt bazy danych

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

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Przestrzenne bazy danych Podstawy języka SQL

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

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

Komunikacja z bazą danych psql

Jerzy Nawrocki, Wprowadzenie do informatyki

Bazy danych. Wykład V Kwerendy. Copyrights by Arkadiusz Rzucidło 1

1. Język T SQL wprowadzenie do tworzenia zapytań i modyfikowania bazy danych

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

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

Systemy GIS Tworzenie zapytań w bazach danych

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

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

Język SQL podstawy zapytań

Bazy danych Język SQL część 1 Wykład dla studentów matem

Wykład IV Modelowanie danych, projektowanie systemu informatycznego Modelowanie konceptualne implementacyjne Modelowanie pojęciowe na encjach

Bazy danych 7. SQL podstawy

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

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

Wybór EUROPEAN będzie rozpoznawał dzień przed miesiącem, natomiast US miesiąc przed dniem.

Optymalizacja poleceń SQL Metody dostępu do danych

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Zadania z SQLa (MS SQL Server)

kończy wysyłanie danych do pliku tworzy strukturę tabeli wyświetla opis struktury tabeli zmiana nazwy tabeli usuwanie tabeli

Przykładowa baza danych BIBLIOTEKA

Bazy danych. Polecenia SQL

SQL DDL DML TECHNOLOGIE BAZ DANYCH. Wykład 5: Język DDL i DML. Małgorzata Krętowska

Bazy danych i usługi sieciowe

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

Transkrypt:

ACESS- zadania z wykorzystaniem poleceń SQL Dane są relacje o schematach: Pracownik ( (nr integer, nazwisko text(12), etat text(10), szef integer, pracuje_od date, placa_pod Currency, placa_dod Currency, id_zesp integer, constraint klucz primary key (nr) ); Zespol (id_zesp integer, nazwa text(20), adres text(13)) Etat (etat text(10, placa_min single, placa_max currency) Schemat relacji Zadania: Skopiować i rozpakować plik Prac_dane.zip, skopiować plik pod nazwą Prac_Nazwisko.mdb. Zmodyfikować szerokości pól tekstowych: nazwisko na 20, etat na 15. Sprawdzić i ewentualnie zmodyfikować powiazania miedzy tabelami Otworzyć tabele, dopisać kilka pozycji Założyć formularze różnego typu (kreator, autoformularz). Utworzyć proste kwerendy z wykorzystaniem kreatora a następnie dodać tabele do tych kweend Wykonać zadania zgodnie z poniższym opisem, wykorzystując kwerendy i SQL I. Zapytania tworzące i modyfikujące dane 1. Tworzenie tabeli - komenda CREATE i SELECT FROM Utworzenie tabeli Pracownik1(nr integer, nazwisko text(12), etat text(10), szef integer, pracuje_od date, placa_pod Currency, placa_dod Currency, id_zesp integer, Zapytania SQL Strona 1

z kluczem głównym nr create table Pracownik1 (nr integer, nazwisko text(12), etat text(10), szef integer, pracuje_od date, placa_pod Currency, placa_dod Currency, id_zesp integer, constraint klucz primary key (nr) ); Utworzenie tabeli etat2 CREATE TABLE etat2 ( etat text(10), placa_min single, placa_max double ); Utworzenie tabeli Pracownicy(nr integer, nazwisko text(30), data_zatr date) z kluczem głównym nr stanowisko text(20), CREATE TABLE Pracownicy (nr integer, nazwisko text(30), stanowisko text(20), data_zatr date, constraint klucz primary key (nr) ); Utworzenie tabeli Worker create table worker (nr integer, nazwisko text, constraint indeks foreign key (nr) references Pracownicy(Nr)); Utworzenie nowej tabeli Etat40 z wprowadzeniem danych z tabeli źródłowej Etat INTO ETAT40 FROM ETAT; INTO ETAT10 FROM ETAT where etat like "a*"; SELECT ETAT, PLACA_MIN INTO ETAT66 FROM ETAT Zapytania SQL Strona 2

WHERE placa_max >=1600; 2. Dołączenie danych: INSERT, SELECT INTO Wprowadzenie do wyżej utworzonej tabeli Pracownicy danych z tabeli Pracownik dla pól o etatach: adiunkt, asystent, profesor INSERT INTO Pracownicy ( nr, nazwisko, stanowisko, data_zatr ) SELECT numer, nazwisko, etat, pracuje_od WHERE etat IN ("ADIUNKT", "ASYSTENT", "Profesor"); Wprowadzenie do tabeli Etat1 wszystkich etatów z tabeli Etat na literę s INSERT INTO ETAT1 FROM ETAT WHERE etat LIKE "s*"; Wprowadzenie 2 pól z tabeli Pracownik do tabeli Dodatki SELECT Numer, Placa_dod INTO Dodatki FROM Pracownik; Wprowadzenie do tabeli Pracownicy jednego pracownika (Mleczko) o podanych wartościach INSERT INTO Pracownicy ( nr, nazwisko, stanowisko, data_zatr ) VALUES ("3001", "Mleczko", "portier", "1997-01-01"); lub INSERT INTO Pracownicy ( nr, nazwisko, stanowisko, data_zatr ) SELECT "3001", "Mleczko", "portier", "1997-01-01"; 3. Modyfikacja struktury tabeli istniejącej - ALTER TABLE Dodanie kolumny (pola) PlacaPod typu liczba podwójnej precyzji Alter Table Pracownicy ADD COLUMN PlacaPod float; 4. Kasowanie danych - Delete Skasować z tabeli Pracownicy pracowników o nazwisku zaczynającym się na Ml (np. Mleczko, Mlaska) DELETE * FROM Pracownicy Zapytania SQL Strona 3

WHERE nazwisko like "Ml*"; Usunięcie wszystkich danych z tabeli Personel DELETE * ; 5. Aktualizacja danych - UPDATE Wstawić wszystkim pracownikom płacę 700.25 UPDATE Pracownicy SET PlacaPod = 700.25; Zmodyfikować płacę adiunktom i profesorom UPDATE Pracownicy SET Pracownicy.PlacaPod = PlacaPod*1.25 WHERE (stanowisko="profesor" Or stanowisko="adiunkt") AND Year(Data_zatr)<1980; Ustawienie płacy dod. na 0 dla pola Numer równego 1050 UPDATE Pracownik SET PLACA_DOD = 0 WHERE Numer=1050; 6. DROP Usunięcie całej tabeli DROP TABLE [Wykładowcy1]; Usunięcie pola ALTER TABLE Etat4 DROP COLUMN Salary; II. ZAPYTANIA WYBIERAJĄCE - przykłady SELECT nazwisko, imię, dział FROM personel WHERE Stanowisko = 'Kierownik'; WHERE placa_pod > 1500 AND (etat='adiunkt' OR etat = 'ASYSTENT'); SELECT nazwisko, etat, placa_pod WHERE etat='adiunkt' or placa_pod between 1000 and 2000; SELECT [Imię] AS [First Name (Imię)], [Nazwisko] AS [Last Name - Nazwisko], Year(Date())-Year([urodzony]) AS Wiek AS [Staff - Personel]; Zapytania SQL Strona 4

SELECT [Imię], [Nazwisko], Year(Date())-Year([Urodzony]) AS Wiek WHERE Right([Imię],1)="a"; Porządkowanie - ORDER BY ORDER BY id_zesp, placa_pod DESC; SELECT personel.imię, nazwisko, year(date())-year([urodzony]) AS Wiek ORDER BY year(date())-year([urodzony]) DESC, [Nazwisko]; SELECT Nazwisko, Imię WHERE [Dane żony/męża] is not null; SELECT TOP 3 * ORDER BY [Zatrudniony od]; SELECT nazwisko, imię FROM personel WHERE nazwisko not like "D*"; SELECT nazwisko, imię FROM personel WHERE nazwisko <> "Dąbek"; SELECT Nazwisko, Imię WHERE nazwisko >= 'K%'; SELECT nazwisko, imię WHERE nazwisko not in ('Barska','[Śliwa]'); Parametry PARAMETERS [Podaj nazwisko:] Text; WHERE [Nazwisko]=[Podaj nazwisko:]; ALL, DISTINCT SELECT [Zamieszkały] WHERE [Zamieszkały] <> "Wrocław"; Zapytania SQL Strona 5

SELECT DISTINCT [Zamieszkały] WHERE [Zamieszkały] <> "Wrocław"; GROUP BY...HAVING SELECT etat, avg(placa_pod) FROM Pracownik WHERE etat <> 'DYREKTOR' GROUP BY etat; SELECT id_zesp, etat, ccur(avg(placa_pod+placa_dod)) AS [Płaca średnia] FROM Pracownik GROUP BY id_zesp, etat; PARAMETERS [(K)obieta czy (M)ężczyzna?] Text; SELECT [Dział], [Płeć], Count([Nazwisko]) AS [Ilość zatrudnionych] GROUP BY [Dział], [Płeć] HAVING [Płeć]=[(K)obieta czy (M)ężczyzna?] ORDER BY [Dział]; SELECT id_zesp, avg(placa_pod) GROUP BY id_zesp HAVING count(*) >3; Połączenia w SQL (INNER, LEFT, RIGHT), zespol; SELECT [ID Pracownika], Personel.Nazwisko, Personel.Imię, [Zasadnicza] FROM Płace, Personel WHERE Płace.[ID Pracownika]=Personel.[ID] and Płace.Zasadnicza in (700, 1200, 1400, 1500); SELECT [ID Pracownika], Personel.Nazwisko, Personel.Imię, [Zasadnicza] FROM Płace, Personel WHERE Płace.[ID Pracownika]=Personel.[ID] and Zasadnicza between 800 and 1500; SELECT p.[id Pracownika], o.nazwisko, o.imię, p.[zasadnicza] FROM Płace AS p, Personel AS o WHERE p.[id Pracownika]=o.[ID] and Zasadnicza between 800 and 1500; SELECT [ID Pracownika], Personel.Nazwisko, Personel.Imię, [Zasadnicza] FROM Płace, Personel WHERE Płace.[ID Pracownika]=Personel.[ID] Zapytania SQL Strona 6

and Personel.Nazwisko like 'B*'; SELECT pracownik.nazwisko, zespol.nazwa FROM Pracownik, Zespol WHERE Pracownik.id_zesp=zespol.id_zesp; SELECT pracownik.nazwisko, zespol.nazwa FROM Pracownik INNER JOIN zespol ON pracownik.id_zesp=zespol.id_zesp; SELECT pracownik.nazwisko, zespol.nazwa FROM Pracownik RIGHT JOIN zespol ON pracownik.id_zesp=zespol.id_zesp; SELECT [ID Pracownika], Personel.Nazwisko, Personel.Imię, [Zasadnicza] FROM Płace, Personel WHERE Płace.[ID Pracownika]=Personel.[ID] and Zasadnicza not BETWEEN 800 and 1500; SELECT Personel.Nazwisko, Personel.Imię, Płace.Zasadnicza, Personel.ID INNER JOIN Płace ON Personel.ID = Płace.[ID Pracownika] WHERE (((Personel.Nazwisko) Like 'B*') AND ((Personel.ID)=[ID Pracownika])); Aliasy SELECT nazwisko, nazwa FROM Pracownik AS p, Zespol AS z WHERE p.id_zesp=z.id_zesp; SELECT nazwisko, nazwa FROM Pracownik AS p INNER JOIN zespol AS z ON p.id_zesp = z.id_zesp ORDER BY nazwisko; SELECT nazwisko, nazwa FROM Pracownik AS p LEFT JOIN zespol AS z ON p.id_zesp = z.id_zesp ORDER BY nazwisko; SELECT nazwisko, nazwa, z.id_zesp FROM Pracownik AS p RIGHT JOIN zespol AS z ON p.id_zesp = z.id_zesp; SELECT Personel.Nazwisko, Oferta.[Nazwa kursu] INNER JOIN (Wykładowcy INNER JOIN Oferta ON Wykładowcy.[ID Kursu] = Oferta.[ID kursu]) ON Personel.ID = Wykładowcy.[ID Pracownika] ORDER BY Personel.Nazwisko; Zapytania zagnieżdżone SELECT NAZWISKO, PLACA_POD, ETAT, ID_ZESP FROM PRACOWNIK WHERE PLACA_POD > ANY Zapytania SQL Strona 7

(select distinct placa_pod from Pracownik where id_zesp=30); SELECT Personel.Dział, Format(Count([Nazwisko])/ (SELECT Count([Nazwisko]) FROM [Personel]), "0%") AS [Odsetek zatrudnionych] GROUP BY Personel.Dział; SELECT NAZWISKO, PLACA_POD, ETAT, ID_ZESP FROM PRACOWNIK WHERE PLACA_POD >= ANY (select distinct placa_pod as placa_min from Pracownik m where id_zesp=[podaj dział]); SELECT Nazwisko, numer, szef, etat, id_zesp FROM Pracownik AS p WHERE exists ( select numer from Pracownik where Pracownik.szef=p.numer); Zapytania SQL-właściwe UNION SELECT etat from Pracownik where id_zesp=10 UNION select etat from pracownik where id_zesp=30; Zapytania SQL Strona 8