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

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

Komunikacja z bazą danych psql

Wykład 8. SQL praca z tabelami 5

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Wykład 05 Bazy danych

Język SQL, zajęcia nr 2

Język SQL, zajęcia nr 1

Pobieranie danych z wielu tabel i łączenie wyników zapytań

1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi

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

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Zadania SELECT do schematu EDS (EMP, DEPT, SALGRADE)

Autor: Joanna Karwowska

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

Wykład 5. SQL praca z tabelami 2

Paweł Rajba

Relacyjne bazy danych. Podstawy SQL

Bazy danych 6. Klucze obce. P. F. Góra

Bazy danych. dr inż. Arkadiusz Mirakowski

Zbiór pytań nr 2. 1 Tabela DEPARTMENTS ma następującą strukturę:

Bazy danych - Materiały do laboratoriów VIII

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

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

Wykład 6. SQL praca z tabelami 3

Bazy danych Ćwiczenia projektowe

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?

I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE

ACESS- zadania z wykorzystaniem poleceń SQL

Technologie baz danych

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

- 307 W Oracle instrukcja SELECT Ename FROM Emp WHERE Empno=4567: [ ] zakłada blokadę do odczytu dla jednego wiersza tabeli Emp [ ] zakłada blokadę

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

Przykładowa baza danych BIBLIOTEKA

Relacyjne bazy danych. Podstawy SQL

Wprowadzenie. Tworzenie widoków

Hurtownia Świętego Mikołaja projekt bazy danych

MS SQL Język definiowania danych (DDL): ćwiczenia

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

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

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

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Widok Connections po utworzeniu połączenia. Obszar roboczy

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

Jerzy Nawrocki, Wprowadzenie do informatyki

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

Aspekty aktywne baz danych

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

Grupowanie i funkcje agregujące

Instytut Mechaniki i Inżynierii Obliczeniowej fb.com/groups/bazydanychmt/

Bazy danych. Dr inż. Paweł Kasprowski

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

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

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

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

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

Modelowanie wymiarów

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

Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

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

E.14 Bazy Danych cz. 17 SQL Widoki

Bazy danych 2. Wykład 5 Structured Query Language (SQL) c.d. DDL

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

Systemy GIS Tworzenie zapytań w bazach danych

DECLARE VARIABLE zmienna1 typ danych; BEGIN

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

SQL :: Data Definition Language

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze

E.14 Bazy Danych cz. 13 SQL Grupowanie danych i funkcje grupujące

WPROWADZENIE DO JĘZYKA SQL

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

Tworzenie modelu logicznego i fizycznego danych.

Bazy danych 10. SQL Widoki

3. Podzapytania, łączenie tabel i zapytań

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

Specyfika języka SQL powoduje, że łatwiej jest najpierw wytłumaczyć, jak korzystać z funkcji grupujących, a dopiero później jak grupować dane.

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

TECHNOLOGIE BAZ DANYCH

1 Zaznacz poprawne stwierdzenia dotyczące grup plików 6 Zaznacz poprawne stwierdzenia dotyczące transakcji w MS (filegroup) SQL

Wykład 2. Relacyjny model danych

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

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki Instrukcja do zajęć laboratoryjnych

E.14 Bazy Danych cz. 14 SQL Podzapytania

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Podobnie jak wywołania funkcji w innych funkcjach, zapytania możemy zagnieżdżać w innych zapytaniach. Podzapytanie musi zostać zapisane w nawiasie.

Materiały szkoleniowe. Podstawy języka SQL

Typy Oracle atrybutów relacji Typ NUMBER (1)

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

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Typy Oracle atrybutów relacji Typ NUMBER (1)

Bazy danych Ćwiczenia projektowe

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

BAZA DANYCH SIECI HOTELI

Pakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki.

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

Transkrypt:

Typy numeryczne Typy daty i czasu. W celu uniknięcia niejasności czy zapis 11-08-2005 oznacza - 11 sierpnia 2005, czy może 8 listopada 2005, należy ustalić sposób interpretacji daty (europejski lub amerykański). SET DATESTYLE TO { US EUROPEAN } Wybór EUROPEAN będzie rozpoznawał dzień przed miesiącem, natomiast US miesiąc przed dniem. Formaty wprowadzania daty: 9 september 2006 sposób pewny, niewrażliwy na styl zapisu, 2006-09-08 rok-miesiąc-dzień, niewrażliwy na styl zapisu, 09-08-2004 - miesiąc-dzień -rok w stylu US, dzień -miesiąc-rok w stylu EUROPEAN, 9/8/2004 - miesiąc-dzień -rok w stylu US, dzień -miesiąc -rok w stylu EUROPEAN, 20130506 - rok- miesiąc-dzień, niewrażliwy na styl zapisu, 130506- rok- miesiąc-dzień, niewrażliwy na styl zapisu, 2007.056 rok i dzień roku, Formaty wprowadzania czasu: 03:02:07.122 godzina:minuta:sekunda.mikrosekunda, 04:06:34 godzina:minuta:sekunda, 07:37 godzina:minuta, 07:34 AM to samo co 07:34, 07:34 PM to samo co 19:34. 23 października 2017 Strona 1

Schemat bazy danych, wczytanej z pliku create_tables.sql (\i create_tables.sql) Wypełnienie tablic pliki pop_*.sql Relacji między tabelami klucze obce Klucz obcy jako ograniczenie dla kolumny customer_id INTEGER NOT NULL REFERENCES customer(customer_id), CONSTRAINT orderinfo_pk PRIMARY KEY(orderinfo_id)); 23 października 2017 Strona 2

Jako kolumny referencyjne mogą służyć kolumny klucza głównego, lub kolumny objęte klauzulą UNIQUE. town_id VARCHAR(32) NOT NULL REFERENCES customer(town), CONSTRAINT orderinfo_pk PRIMARY KEY(orderinfo_id)); Klucz obcy jako ograniczenie dla tabeli customer_id INTEGER NOT NULL, CONSTRAINT orderinfo_pk PRIMARY KEY(orderinfo_id), CONSTRAINT orderinfo_customer_id_fk FOREIGN KEY(customer_id) REFERENCES customer(customer_id)); Ponownie wypełniamy tabelę orderinfo (\i pop_orderinfo.sql) Zawartość tabeli orderinfo SELECT orderinfo_id, customer_id FROM orderinfo; 23 października 2017 Strona 3

Próba usunięcia rekordu customer_id = 3 z tablicy customer DELETE FROM customer WHERE customer_id =3; Próba wstawienia rekordu odnoszącego się do nieistniających wartość z tabeli customer INSERT INTO orderinfo(customer_id, date_placed, shipping) VALUES (250, '07-25-2000', 0.00); Ograniczenia dla klucza obcego DROP TABLE orderline; CREATE TABLE orderline( orderinfo_id INTEGER NOT NULL, item_id INTEGER NOT NULL, quantity INTEGER NOT NULL, CONSTRAINT orderline_pk PRIMARY KEY(orderinfo_id, item_id), CONSTRAINT orderline_orderinfo_id_fk FOREIGN KEY(orderinfo_id) REFERENCES orderinfo (orderinfo_id), CONSTRAINT orderline_item_id_fk FOREIGN KEY(item_id) REFERENCES item (item_id)); Ustawienie kluczy obcych implikuje kolejność wypełniania tabel : item, orderinfo, orderline Obsługa naruszeń integralności podczas aktualizacji i usuwania rekordów. customer_id INTEGER NOT NULL, CONSTRAINT orderinfo_pk PRIMARY KEY(orderinfo_id), 23 października 2017 Strona 4 CONSTRAINT orderinfo_customer_id_fk FOREIGN KEY(customer_id) REFERENCES customer(customer_id)on DELETE CASCADE);

Usunięcie wiersza z tabeli customer, powoduje usunięcie wszystkich powiązanych z nim rekordów w tablicy orderinfo. customer_id INTEGER NOT NULL, CONSTRAINT orderinfo_pk PRIMARY KEY(orderinfo_id), CONSTRAINT orderinfo_customer_id_fk FOREIGN KEY(customer_id) REFERENCES customer(customer_id)on DELETE SET NULL); Usunięcie wiersza z tabeli customer, powoduje wstawienie w powiązanych z nim rekordach w polu customer_id wartości NULL. DROP TABLE customer RESTRICT; 23 października 2017 Strona 5

Złączenia Iloczyn kartezjański dwóch tabel: SELECT * FROM customer, orderinfo; Wszystkie zamówienia złożone przez Ann Stones SELECT c.fname, o.date_placed FROM customer c, orderinfo o WHERE c.customer_id = o.customer_id AND c.fname = 'Ann' AND c.lname = 'Stones'; SELECT c.fname, o.date_placed FROM customer c JOIN orderinfo o ON c.customer_id=o.customer_id WHERE c.fname = 'Ann' AND c.lname = 'Stones'; Ćwiczenie: Wszystkie zamówienia złożone przez Ann Stones wraz z identyfikatorami produktów Wszystkie zamówione przez Ann Stones produkty. SQL funkcje agregujące. Ilu klientów mieszka w Bingham?. SELECT COUNT(*)FROM customer WHERE town = 'Bingham'; Ilu klientów mieszka w poszczególnych miastach? SELECT COUNT(*), town FROM customer GROUP BY town; Ilu klientów (proszę podać nazwisko) mieszka w poszczególnych miastach i ile jest tam osób o tych samych nazwiskach?. SELECT COUNT(*), lname, town FROM customer GROUP BY town, lname; Uwaga! Używanie funkcji grupującej wewnątrz klauzuli WHERE nie jest poprawne. Należy wykorzystać klauzulę HAVING 23 października 2017 Strona 6

Znaleźć nazwiska wszystkich klientów i miast, skąd oni pochodzą z wyjątkiem miasta Lincoln. Istotne są tylko te miasta gdzie jest więcej niż jeden klient. SELECT lname, town FROM customer WHERE town <> 'Lincoln'; SELECT COUNT(*) AS number,lname, town FROM customer WHERE town <> 'Lincoln' GROUP BY lname, town; SELECT COUNT(*) AS number,lname, town FROM customer WHERE town <> 'Lincoln' GROUP BY lname, town HAVING COUNT(*)>1; Do ilu klientów znamy numer telefonu?. SELECT COUNT (phone)from customer; Funkcje agregujące: Ćwiczenia Proszę podać średni czas oczekiwania na zamówienie. Proszę podać ile razy kupowane były poszczególne towary (identyfikator, opis, ilość zakupów). 23 października 2017 Strona 7

Zadania Proszę stworzyć skrypt, który pozwoli na utworzenie bazy danych zgodnie ze schematem, a następnie wypełnić tabele danymi podanymi poniżej. Tabela emp: EMPNO NUMERIC(4) klucz główny identyfikator pracownika ENAME VARCHAR(10) nazwisko JOB VARCHAR(9) stanowisko MGR NUMERIC(4) identyfikator zwierzchnika, HIREDATE DATE data zatrudnienia SAL NUMERIC(7,2) wynagrodzenie COMM NUMERIC(7,2) prowizja DEPTNO NUMERIC(2) klucz obcy numer departamentu Tabela dept DEPTNO NUMERIC(2) klucz główny DNAME CHAR(14) nazwa departamentu LOC CHAR(13) lokal numer departamentu Tabela salgrade GRADE NUMERIC stopień zaszeregowania LOSAL NUMERIC minimalna płaca HISAL NUMERIC maksymalna płaca 23 października 2017 Strona 8

Wypełnienie tabeli emp INSERT INTO EMP VALUES(7369,'SMITH','CLERK',7902,'17-12-1980',800,NULL,20); INSERT INTO EMP VALUES(7499,'ALLEN','SALESMAN',7698,'20-2-1981',1600,300,30); INSERT INTO EMP VALUES(7521,'WARD','SALESMAN',7698,'22-2-1981',1250,500,30); INSERT INTO EMP VALUES(7566,'JONES','MANAGER',7839,'2-4-1981',2975,NULL,20); INSERT INTO EMP VALUES(7654,'MARTIN','SALESMAN',7698,'28-9-1981',1250,1400,30); INSERT INTO EMP VALUES(7698,'BLAKE','MANAGER',7839,'1-5-1981',2850,NULL,30); INSERT INTO EMP VALUES(7782,'CLARK','MANAGER',7839,'9-6-1981',2450,NULL,10); INSERT INTO EMP VALUES(7788,'SCOTT','ANALYST',7566,date '13-JUL-87'-85,3000,NULL,20); INSERT INTO EMP VALUES(7839,'KING','PRESIDENT',NULL,'17-11-1981',5000,NULL,10); INSERT INTO EMP VALUES(7844,'TURNER','SALESMAN',7698,'8-9-1981',1500,0,30); INSERT INTO EMP VALUES(7876,'ADAMS','CLERK',7788,date '13-JUL-87'-51,1100,NULL,20); INSERT INTO EMP VALUES(7900,'JAMES','CLERK',7698,'3-12-1981',950,NULL,30); INSERT INTO EMP VALUES(7902,'FORD','ANALYST',7566,'3-12-1981',3000,NULL,20); INSERT INTO EMP VALUES(7934,'MILLER','CLERK',7782,'23-1-1982',1300,NULL,10); Wypełnienie tabeli dept INSERT INTO DEPT VALUES (10,'ACCOUNTING','NEW YORK'); INSERT INTO DEPT VALUES (20,'RESEARCH','DALLAS'); INSERT INTO DEPT VALUES (30,'SALES','CHICAGO'); INSERT INTO DEPT VALUES (40,'OPERATIONS','BOSTON'); Wypełnienie tabeli salgrade INSERT INTO SALGRADE VALUES (1,700,1200); INSERT INTO SALGRADE VALUES (2,1201,1400); INSERT INTO SALGRADE VALUES (3,1401,2000); INSERT INTO SALGRADE VALUES (4,2001,3000); INSERT INTO SALGRADE VALUES (5,3001,9999); 23 października 2017 Strona 9