Bazy danych 7/15. Andrzej Łachwa, UJ,

Podobne dokumenty
Bazy danych. Andrzej Łachwa, UJ, /14

Funkcje. Rozdział 3a Funkcje wierszowe. Funkcje znakowe (1) Funkcje wierszowe

Język SQL. Rozdział 3. Funkcje wierszowe

Język SQL. Rozdział 3. Zaawansowana selekcja danych

Przydatne sztuczki - sql. Na przykładzie postgres a.

Bazy danych 6. SQL funkcje daty i czasu, zmienne tymczasowe, aliasy

Poznaj Firebird w dwie minuty (fragmenty artykułu Carlosa H. Cantu)

PL/SQL. Funkcje wbudowane

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

2 Przygotował: mgr inż. Maciej Lasota

Systemy GIS Tworzenie zapytań w bazach danych

Temporalne bazy danych

Funkcje. Rozdział 3. Funkcje. Funkcje znakowe (1) Funkcje wierszowe

Administracja i programowanie pod Microsoft SQL Server 2000

Język SQL, zajęcia nr 1

1 Obsługiwane funkcje wyzwalaczy

S Instrukcje rozszerzone oraz umożliwiające operacje na znakach i łańcuchach. Automatyka i mechatronika

Plan wykładu BAZY DANYCH II WYKŁAD 2. Bloki. Struktura bloku

Wymagane jest podłączenie serwera do Internetu (konieczne do zdalnego dostępu).

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

Projektowani Systemów Inf.

Zarzadzanie transakcjami. Transakcje

2. Język SQL SQL jest językiem deklaratywnym (Charakterystyczną cechą języków

Spis treści. 1 Kraj/region i język Ustawienia regionalne Liczby Waluta Czas i data Inne...

Bazy danych SQL Server 2005

Bazy danych - wykład wstępny

Autor: dr inż. Katarzyna Rudnik

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ];

Ściągawka z funkcji i właściwości systemowych VBA. Opis działania i parametrów. Nazwa funkcji. Składnia zwracanej wartości

Język SQL Złączenia. Laboratorium. Akademia Morska w Gdyni

Monitoring procesów z wykorzystaniem systemu ADONIS. Krok po kroku

Obliczenia arytmetyczne. Konkatenacja pól. Aliasy kolumn. Aliasy tabel. Co dalej? Rozdział 4. Korzystanie z funkcji. Zastosowanie funkcji

NARZĘDZIA WIZUALIZACJI

Konfiguracja interfejsu (złącza) PENDRIVE. Plik: PEN-01 PEN_45 PL

Laboratorium Bazy danych SQL 2

Wykład 8 Implementacja języka SQL w systemach baz danych Oracle specyficzne konstrukcje i funkcje Oracle SQL, funkcje numeryczne, znakowe, daty i

MySQL. Leksykon kieszonkowy. II wydanie

Bazy danych. Andrzej Łachwa, UJ, /15

NARZĘDZIA WIZUALIZACJI

Rozdział 17. Zarządzanie współbieżnością zadania dodatkowe

NARZĘDZIA WIZUALIZACJI

Ćwiczenie 7 - DDL. Relacje i ograniczenia integralnościowe. Ćwiczenie 7 DDL. Wymagania: Bazy Danych

Dokumentacja SQL API 1

Technologie informacyjne: Arkusz kalkulacyjny

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

Standardy dokumentów pomiarowych wymienianych przez Platformę Wymiany Informacji dla ENERGA - OPERATOR SA

osiągnął długość podaną jako drugi parametr. Jeśli wynik jest dłuższy niż zadeklarowana długość, zostaje ucięty z prawej strony.

ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko. Typy rozproszonych baz danych. Systemy klient-serwer. Klient-serwer: Przykład

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi

SIECI KOMPUTEROWE I BAZY DANYCH

Projektowanie systemów baz danych

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

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

Wykład 4. SQL praca z tabelami 1

Współczesne systemy baz danych

Widok Connections po utworzeniu połączenia. Obszar roboczy

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

Bazy danych. Andrzej Łachwa, UJ, /15

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

Microsoft Access materiały pomocnicze do ćwiczeń cz. 1

Bazy danych. Dr inż. Paweł Kasprowski

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

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

Paweł Rajba

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

Wykład 05 Bazy danych

Laboratorium nr 8. Temat: Podstawy języka zapytań SQL (część 2)

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

Wprowadzania liczb. Aby uniknąć wprowadzania ułamka jako daty, należy poprzedzać ułamki cyfrą 0 (zero); np.: wpisać 0 1/2

PL/SQL. Część 1 Oracle SQL. Piotr Medoń

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

SQL - DDL. 1 Tabele systemowe. 2 Typy danych

INSTRUKCJA OBSŁUGI PRZYSTAWKI PEN-01 DO PENDRIVE A. Plik: PEN-01 PEN_10 PL

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

asix4 Podręcznik użytkownika BAZA - drajwer dostępu do baz danych Podręcznik użytkownika

Bazy danych 5. Samozłaczenie SQL podstawy

Język SQL. Rozdział 9. Język definiowania danych DDL, cześć 1. Tworzenie relacji, typy danych, wartości domyślne atrybutów, słownik bazy danych.

Współczesne systemy baz danych

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

Mechanika i Budowa Maszyn II stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

Poczta Polska S.A. Opis struktury pliku z danymi przekazów pocztowych lub Ekspresów Pieniężnych. Wersja 2.1

Oracle11g: Wprowadzenie do SQL

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

Dział Temat lekcji Ilość lekcji. godz. 1 Organizacja zajęć Omówienie programu nauczania 3

Prezentowana funkcjonalność pozwalala na łatwiejsze obsłużenie następujących sytuacji:

Microsoft Excel 2013: Budowanie modeli danych przy użyciu PowerPivot

Bazy danych. Plan wykładu. Dekompozycja relacji. Anomalie. Wykład 5: Projektowanie relacyjnych schematów baz danych. SQL - funkcje grupujce

PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH

Jak wprowadzać, formatować i wykorzystywać daty w arkuszu kalkulacyjnym?

15. Funkcje i procedury składowane PL/SQL

Wykład 2. SQL 1 Structured Query Lenguage

Bazy danych. Andrzej Łachwa, UJ, /14

Wyzwalacze. do automatycznego generowania wartości kluczy głównych. Składnia instrukcji tworzacej wyzwalacz

Tworzenie zapytań do Microsoft SQL Server

ORACLE. System Zarządzania Bazą Danych Oracle. Oracle Advanced SQL

Specyfikacja implementacyjna aplikacji serwerowej

Bazy danych 7. SQL podstawy

Transkrypt:

Bazy danych Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 7/15

Tabele pomocnicze Tabele pomocnicze nie są częścią modelu danych, więc nie powinny pojawiać się na etapie projektowania koncepcyjnego. Wyróżnimy dwa rodzaje takich tabel: tabele słownikowe i tabele funkcyjne. Rozważmy dwa przypadki tabel słownikowych: listę nazw województw oraz listę nazw państw świata. Obie listy powinny być używane zawsze wtedy, gdy użytkownik bazy danych będzie mógł wprowadzać te nazwy jako dane. Wprowadzanie to powinno być zawsze (w tego rodzaju przypadkach) ograniczone do wyboru elementu z listy!...

Sprawa nie jest jednak prosta (por. alfabetyczny wykaz krajów ).

Tabela funkcyjna jest sposobem zdefiniowania funkcji i jest wykorzystywana do wykonywania zapytań. Często tworzoną tabelą funkcyjną jest kalendarz. Jest tak m. in. dlatego, że daty świąt są bardzo nieregularne (np. wyznaczanie świąt ruchomych, takich jak Wielkanoc czy Ramadan, przy użyciu funkcji byłoby bardzo trudne). Wielkość kalendarza na 20 lat to tylko około 7000 wierszy, czyli bardzo mała tabela. Tabelę taką zapełniamy danymi przygotowanymi w arkuszu kalkulacyjnych bądź pobranymi z Internetu i zabraniamy modyfikacji tych danych użytkownikom bazy (z wyłączeniem administratora danych, bo przecież mogą następować zmiany ustawowe regulujące liczbę i terminy świąt, terminy wakacji szkolnych itp.). Por. kalendarz świata

Daty i czas wg ISO 8601 Jednostki daty i czasu nie należą do systemu metrycznego. Ponadto rok słoneczny ma ok. 365,2422 dni i trwa coraz dłużej! A w różnych miejscach na świecie jest liczony z odpowiednim przesunięciem i ewentualną zmianą na zimowy/letni. Aby to wszystko uporządkować trzeba używać jakiejś normy! W elektronicznym przetwarzaniu informacji używa się normy ISO 8601. Data kalendarzowa ma dwa formaty. W formacie rozszerzonym to YYYY MM DD, w formacie podstawowym to YYYYMMDD kalendarza gregoriańskiego. Rok 0001 to 1 rok n.e., a 0000 to 1 rok p.n.e. (1 B.C.).

Data porządkowa ma formaty YYYY DDD lub YYYYDDD, gdzie DDD to kolejny dzień w roku w formacie 3 cyfrowym. Np. 3 lutego to zawsze 034, ale 31 grudnia to 365 lub 366. Data tygodniowa ma formaty YYYY Www D, gdzie W to symbol stały, ww to numer tygodnia w roku, D to numer dnia tygodnia, np. dziś to 2013W472 (47 tydzień roku, wtorek). Czas ma również dwa formaty. Formaty rozszerzone czasu to hh:mm:ss, hh:mm. Formaty podstawowe to hhmmss, hhmm i hh. Po liczbie sekund może wystapić część ułamkowa. Uwaga: północ w Sylwestra to 24:00 dnia 31 grudnia albo 00:00 dnia 1 stycznia.

Czas odmierza się zgodnie ze standardem UTC, a nie poprzednio stosowanym GMT! Czas uniwersalny UTC oznacza się literą Z na końcu. Czas lokalny przez wskazanie przesunięcia, np. w zimie w Polsce godzina 10:40 to 10:40+01 lub 10:40+01:00 i jest równa 9:40Z. Łączny zapis daty i czasu uzyskamy wstawiając między te dane separator T lub spację: 2013:11:19T10:40.85+01:00 Tyle o normie.

Daty i czas w SQL Standard SQL ma typy danych związane z datą i czasem: DATE, TIME, TIMESTAMP oraz z odcinkami czasu: INTERVAL. Interwały typu rok miesiąc mają domyślną precyzję obejmującą pola YEAR i MONTH. Interwały typu dzień czas mają precyzję DAY, HOUR, MINUTE i SECOND (z częścią ułamkową). Standard obejmuje też pełny zestaw operatorów dla czasowych typów danych (w różnych produktach pełna składnia i funkcjonalność nie jest implementowana). Koniec czasu to w SQL data 9999 12 31.

Standard SQL nie obsługuje czasowych baz danych (temporalnych), bo: nie uwzględnia tabel zmiennych w czasie, kocepcji bieżących lub sekwencyjnych ograniczeń, zapytań, modyfikacji i widokóww, rozróżnienia między czasem ważnym a czasm transakcji. Wiele problemów rozwiązano dla różnych dialektów języka SQL i opublikowano, m.in. na stronie uniwersytetu www.arizona.edu.

Daty i czas w MySQL przykłady DATE ma zakres od 1000 01 01 do 9999 12 31 oraz 0000 00 00. DATETIME od 1000 01 01 00:00:00 do 9999 12 31 23:59:59 oraz wartość zero (podobnie, jak wyżej). TIMESTAMP podobnie jak DATETIME ale jest zapisaywany jako liczba sekund od początku zakresu. Nie przyjmuje wartości początku przedziału, bo byłaby to wartość 0 sekund. Wartośc ta jest interpretowana jako 0000 00 00 00:00:00. TIME ma zakres od 838:59:59 do 838:59:59 (w tym zero). YEAR ma zakres od 1901 do 2155 oraz 0000 (ale w formacie 2 cyfrowym od 1970 do 2069, więc 00 to 2000).

SELECT ADDDATE('2008 01 02', INTERVAL 31 DAY); > '2008 02 02' SELECT ADDTIME('2007-12-31 23:59:59.999999', '1 1:1:1.000002'); > '2008 01 02 01:01:01.000001' SELECT DATE_FORMAT('2009 10 04 22:23:00', '%W %M %Y'); > 'Sunday October 2009' SELECT DATE_FORMAT('1999 01 01', '%X %V'); > '1998 52'

SELECT NOW(), SLEEP(2), NOW()\G 2006-04-12 13:47:36 0 2006-04-12 13:47:36 SELECT SYSDATE(), SLEEP(2), SYSDATE()\G 2006 04 12 13:47:44 0 2006 04 12 13:47:46 SELECT WEEKDAY('2008 02 03 22:23:00'); -> 6 [Sunday]

SELECT MAKETIME(12,15,30); -> '12:15:30' Funkcje SUM() i AVG() nie działają na datach i czasie, ale można sobie z tym poradzić, np.: SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(time_col))) FROM......

Przegląd typów danych w MySQL Zob. MySQL 5.1 Reference Manual