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



Podobne dokumenty
Laboratorium nr 7. Temat: Podstawy języka zapytań SQL (część 1) 1. Wprowadzenie do laboratorium

Projektowanie systemów baz danych

Wykład 5 Charakterystyka języka SQL. Elementy obliczeń relacyjnych.

Przestrzenne bazy danych Podstawy języka SQL

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

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

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

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

Język SQL. Rozdział 3. Funkcje wierszowe

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

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

Systemy GIS Tworzenie zapytań w bazach danych

Język SQL. Rozdział 2. Proste zapytania

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

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

Laboratorium nr 5. Temat: Funkcje agregujące, klauzule GROUP BY, HAVING

Ćwiczenie 1 podstawy

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

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

Wprowadzenie do języka SQL

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

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

Bazy danych. Dr inż. Paweł Kasprowski

Krzysztof Kadowski. PL-E3579, PL-EA0312,

15. Funkcje i procedury składowane PL/SQL

Ćwiczenie rozpocznie się od wprowadzenia do laboratorium, po którym omówimy składnię ę polecenia INSERT pozwalającego ą na wstawianie krotek do

Instrukcje SQL można podzielić na pięć kategorii, które zostały przedstawione w poniższej tabeli.

Wykład :45 BD-1 W_3

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

Laboratorium nr 10. Temat: Połączenia relacji

SQL Structured Query Language

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

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

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

Systemy Baz Danych. Lista 1

PL/SQL. Funkcje wbudowane

SQL (ang. Structured Query Language)

Ćwiczenie 2 funkcje wierszowe

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

Wykład 5. SQL praca z tabelami 2

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

Cele. Definiowanie wyzwalaczy

Bazy danych. Polecenia SQL

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

Relacyjne bazy danych. Podstawy SQL

Język SQL podstawy zapytań

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

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

Oracle11g: Wprowadzenie do SQL

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

1 DML - zapytania, część II Grupowanie Operatory zbiorowe DML - modyfikacja 7. 3 DCL - sterowanie danymi 9.

Ćwiczenie 3 funkcje agregujące

Wykład 8. SQL praca z tabelami 5

Bazy danych SQL Server 2005

Zarządzanie bazą danych za pomocą poleceń języka SQL*Plus

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

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

WyŜsza Szkoła Zarządzania Ochroną Pracy MS EXCEL CZ.2

Plan. Raport. Tworzenie raportu z kreatora (1/3)

Ćwiczenie 14 autoryzacja

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

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

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

Zarzadzanie transakcjami. Transakcje

Paweł Rajba

Współczesne systemy baz danych

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

SQL Structured Query Language

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

1. Tworzenie tabeli. 2. Umieszczanie danych w tabeli

SQL Structured Query Language

System zarządzania bazą danych SZBD (ang. DBMS -Database Management System)

PODSTAWY BAZ DANYCH 13. PL/SQL

Współczesne systemy baz danych

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

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

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

CREATE USER

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

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.

Kolumna Zeszyt Komórka Wiersz Tabela arkusza Zakładki arkuszy

Technologia informacyjna

Język SQL, zajęcia nr 1

Przykłady zastosowań funkcji tekstowych w arkuszu kalkulacyjnym

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

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

PHP: bazy danych, SQL, AJAX i JSON

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Wprowadzenie do baz danych

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

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Wykład 05 Bazy danych

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.

Wykład 4. SQL praca z tabelami 1

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

QUERY język zapytań do tworzenia raportów w AS/400

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

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

Transkrypt:

Część II Bazy Danych podstawy SQL 1. Wprowadzenie Ćwiczenia z przedmiotu Bazy Danych" są poświęcone przede wszystkim językowi SQL (ang. Structured Query Language) i jego zastosowaniom. Język SQL jest strukturalnym językiem zapewniającym moŝliwość wydawania poleceń do systemu zarządzania bazą danych (SZBD). Dzięki temu językowi moŝliwe jest tworzenie poleceń, które nakazują SZBD odnaleźć potrzebne przez nas dane w bazie danych, jak równieŝ poleceń, dzięki którym moŝna składowane dane zmodyfikować, wstawić nowe dane, bądź je usunąć. Dzięki temu językowi moŝliwe jest równieŝ definiowanie, modyfikacja i usuwanie struktur danych, w których dane są składowane. Język SQL pozwala równieŝ na zarządzanie transakcjami i mechanizmami autoryzacji dostępu do danych. 2. Język SQL SQL jest językiem deklaratywnym (Charakterystyczną cechą języków deklaratywnych jest to, Ŝe opisują co" ma być zrobione, ale nie jak". W praktyce oznacza to, Ŝe uŝytkownik opisuje w języku SQL efekt jaki chce uzyskać (odczytanie telefonów wszystkich pracowników o nazwisku zaczynającym się na literę 'A', podniesienie pensji wszystkim kierownikom itp.), ale nie sposób w jaki ma to być zrobione (sekwencja operacji dyskowych, które prowadzą do wykonania polecenia). Sposób wykonania polecenia jest automatycznie dobierany przez SZBD i zaleŝy od fizycznego sposobu składowania danych). Język SQL jest zorientowany na przetwarzanie zbiorów (PoniewaŜ dane są przechowywane w relacjach, które są zbiorami krotek, konstrukcje języka SQL dotyczą przetwarzania zbiorów i nie zawierają poleceń uwzględniających dowolny porządek na krotkach) Język SQL moŝna podzielić na: DML (ang. Data Manipulation Language) - język manipulacji danymi pozwalający na odczytywanie danych z relacji (polecenie SELECT) oraz na wstawianie, modyfikację i usuwanie danych z relacji (polecenia: INSERT, UPDATE, MERGE i DELETE). DDL (ang. Data Definition Language) - język definicji danych pozwalający na tworzenie, modyfikację i usuwanie relacji (polecenia CREATE, ALTER i DROP). str. 1

DCL (ang. Data Control Language) - język kontroli danych pozwalający na zapewnienie autoryzacji dostępu do danych oraz zarządzanie transakcjami. NajwaŜniejsze polecenia to GRANT i REVOKE (czasem zaliczane do DDLa) oraz COMMIT, ROLLBACK i SAVEPOINT. W języku SQL nie rozróŝnia się duŝych i małych liter - Wszystkie słowa kluczowe i nazwy (np. relacji i atrybutów) w języku SQL moŝna pisać zarówno duŝymi jak i małymi literami. Przykładowo, wyraŝenia: nazwisko, Nazwisko i NAZWISKO są identyczne. W poleceniach SQL ignorowane są znaki końca linii - Wszystkie słowa kluczowe i wyraŝenia w języku SQL moŝna rozdzielać zarówno spacjami jak i znakami końca linii. W rezultacie dowolne polecenie SQL moŝna sformatować w dowolny sposób (moŝe ono zajmować jeden długi wiersz, lub kilka krótszych wierszy). KaŜde polecenie SQL powinno być zakończone średnikiem - Próba wykonania polecenia nie zakończonego w ten sposób moŝe zakończyć się błędem, chociaŝ istnieją sytuacje, gdy pominięcie średnika jest dozwolone. Ćwiczenia z języka SQL zostaną przeprowadzone na bazie danych BIBLIOTEKA złożonej z 6 relacji przechowujących cych dane dotyczące wypożyczeń w bibliotece str. 2

3. Najprostsze zapytania. Naukę języka SQL zaczniemy od zapoznania ze składnią polecenia SELECT. Jest to polecenie pozwalające na odczytywanie danych z bazy danych oraz wykonywanie na tych danych prostych obliczeń i przekształceń. Polecenie SELECT pobiera krotki z relacji w bazie danych, przetwarza je (opcjonalnie) i zwraca wynik w postaci zbioru odczytanych krotek. W wyniku wykonania polecenia SELECT otrzymujemy zatem relację (zbiór krotek), tzw. relację wynikową". Aplikacje klienckie, pozwalające na bezpośrednie wykonywanie poleceń SQL przedstawiają relację wynikową postaci tabelarycznej. PoniewaŜ polecenia SELECT słuŝą do odczytywania danych w bazie danych, nazywa się te polecenia zapytaniami". Najprostszą wersją polecenia SELECT, jest polecenie postaci: SELECT * FROM {nazwa relacji};" Polecenie odczytujące dane z relacji rozpoczyna się zawsze słowem kluczowym SELECT po którym podaje się listę atrybutów, które mają zostać odczytane. Sposób definiowania listy atrybutów zostanie opisany później. Wstawiona po słowie kluczowym SELECT gwiazdka oznacza odczytaj wszystkie atrybuty". Następnie, umieszcza się w poleceniu słowo kluczowe FROM, po którym podaje się nazwę relacji z której mają zostać odczytane krotki. Polecenie SELECT o postaci SELECT * FROM {nazwa relacji}; powoduje odczytanie wszystkich krotek i wszystkich atrybutów z relacji o podanej nazwie. Przykładowo, polecenie odczytujące całą zawartość relacji dzialy wygląda następująco: str. 3

PowyŜsze polecenie moŝna przetłumaczyć na język naturalny następująco: Odczytaj wszystkie krotki z relacji o nazwie dzialy, zachowując wszystkie atrybuty krotek (*)". W wyniku takiego zapytania SZBD odczyta z bazy danych, z relacji dzialy, wszystkie krotki i w postaci niezmienionej zwróci je aplikacji klienckiej, która w naszym przypadku wyświetli je na ekranie. NaleŜy zwrócić uwagę na następującą rzecz. Relacje są zbiorami, a zatem kolejność zwracania krotek przez SZBD i ich wyświetlania przez aplikację kliencką, jest dowolna. 4. Projekcja. W większości przypadków nie ma konieczności odczytywania wszystkich atrybutów krotek z relacji. Najczęściej istotny jest tylko niewielki ich podzbiór. W takich sytuacjach moŝna skorzystać z nieco bardziej skomplikowanej wersji polecenia SELECT, w której zamiast znaku *" wymienia się listę nazw atrybutów, które mają się znaleźć w wyniku. Poszczególne atrybuty na tej liście są rozdzielane za pomocą przecinków. Proces wybierania atrybutów, które mają się znaleźć w wyniku nazywa się projekcją". Rozszerzona wersja polecenia SELECT wygląda następująco: SELECT{atrybutl, atrybut2, FROM {nazwa relacji}; str. 4

Gdzie atrybut" to nazwa atrybutu zdefiniowanego w relacji podanej za słowem kluczowym FROM. Polecenie odczyta z relacji pracownicy wszystkie krotki, ale zwróci jedynie wartości dotyczące atrybutów nazwisko, imie i wynagrodzenie. 5. Literały W klauzuli SELECT moŝna umieszczać literały. Literałem jest dowolny ciąg znaków lub liczb. W wyniku umieszczenia literałów system bazy danych do kaŝdego zwróconego wiersza wpisze do odpowiedniej kolumny podany ciąg znaków. str. 5

6. Aliasy. Aliasy nie są obowiązkowe i najlepiej stosować je jedynie do wyraŝeń bardziej skomplikowanych niŝ sama nazwa atrybutu. tu. Aby nadać wyraŝeniu alias, naleŝy za tym wyraŝeniem uŝyć słowa kluczowego AS, a następnie podać alias. JeŜeli alias składa się ze słów ze spacja wówczas umieszczamy go w apostrofach np.: AS Dane osób str. 6

W kolejnym przykładzie zostanie zastosowany alias dla określenia nazwy dla funkcji łączenia CONCAT(). W Oracle funkcja CONCAT() moŝe przyjmować tylko 2 argumenty. Problem moŝna rozwiązań uŝywając łączenia za pomocą znaku np. str. 7

7. FUNKCJE Rodzaje funkcji wierszowych: Funkcje znakowe. Funkcje liczbowe. Funkcje operujące na elementach czasowych. Funkcje konwersji. Inne konstrukcje. Funkcje znakowe jako parametr pobierają ciąg (lub ciągi) znaków, a wyliczają nowe ciągi znaków (np. funkcja dokonująca zamiany liter w ciągu znaków na wielkie) bądź wartości liczbowe (np. funkcja wyliczająca długość ciągu znaków). Funkcje liczbowe jako parametry pobierają liczby i zwracają liczby po przekształceniach (np. funkcja zaokrąglająca daną liczbę do dwóch miejsc po przecinku). Kolejna grupa funkcji, funkcje operujące na elementach czasowych, bądź przekształcają datę podaną jako parametr do innej daty (np. funkcja zwracająca datę, jaka przypadnie od daty podanej jako parametr za trzy miesiące) bądź zwracają wartości liczbowe (np. funkcja wyliczająca liczbę miesięcy pomiędzy dwiema datami). Inne funkcje z tej grupy to np. funkcje operujące na przedziałach czasowych, nazywanych takŝe interwałami czasowymi, pozwalające na uzyskanie z przedziału czasowego określonego elementu. Z kolei funkcje konwersji pozwalają na przekształcenie danych jednego typu na dane innego typu (np. funkcja przekształcająca ciąg znaków na liczbę). Zostaną równieŝ przedstawione dodatkowe konstrukcje wykorzystywane w zapytaniach. lower(ciąg_znaków) zwraca ciąg_znaków zewszystkimi literami zamienionymi na małe, upper(ciąg_znaków) zwraca ciąg_znaków ze wszystkimi literami zamienionymi na wielkie, initcap(ciąg_znaków) zwraca ciąg_znaków z pierwszymi literami słów zamienionymi na wielkie, pozostałe litery zamienione zostają na małe, trim([[ {leading trailing both}] znak from]ciąg_znaków) usuwa z początku (leading) lub końca (trailing) ciągu_znaków wszystkie wystąpienia podanego znaku str. 8

substr(ciąg_znaków, m [, n]) zwraca część ciągu_znaków od pozycji m o długości n, replace(ciąg_znaków, ciąg_1 [, ciąg_2]) zamienia w ciągu_znaków wszystkie wystąpienia ciągu_1 na ciąg_2, translate(ciąg_znaków, ciąg_1, ciąg_2) zamienia w ciągu_znaków litery z ciągu_1 na odpowiadające im litery z ciągu_2, length(ciąg_znaków) zwraca długość ciągu_znaków. str. 9

str. 10

abs(n) wartość bezwzględna liczby n, ceil(n) najmniejsza liczba całkowita >= n, floor(n) największa liczba całkowita <= n, mod(n, m) reszta z dzielenia n przez m, power(n, m) n podniesione do potęgi m, round(n [,m]) zaokrągla n do m miejsc po przecinku, trunc(n [,m]) obcina n do m miejsc po przecinku, sign(n) zwraca 1 dla n>0, 0 dla n = 0 oraz -1 dla n< 0, sqrt(n) pierwiastek kwadratowy n. REPREZENTACJA CZASU DATE data z dokładnością do dni (w SZBD Oracle do sekund), zakres: o ANSI 01.01.0001 r.n.e. do 31.12.9999 r.n.e. o SZBD Oracle 01.01.4712 r.p.n.e. do 31.12.9999 r.n.e., TIME czas z dokładnością do części ułamkowych sekundy (brak w SZBD Oracle), TIMESTAMP znacznik znik czasowy, połączenie DATE i TIME (zakres analogicznie jak DATE), przykład: 2006/07/04 13:07:25,185729 +02:00 LITERAŁY CZASOWE INTERVAL reprezentuje przedział czasowy, postać: INTERVAL okres kw_pocz [TO kw_koniec] ", gdzie: kw_pocz i kw_koniec mogą przyjmować: o YEAR [(precyzja)] o MONTH [(precyzja)] o DAY [(precyzja)] o HOUR [(precyzja)] o MINUTE [(precyzja)] o SECOND [(precyzja [.prec_części_ułamkowej])] INTERVAL dopuszczalne kombinacje: o YEAR TO MONTH - przykłady: INTERVAL '99' YEAR(2) 99 lat str. 11

INTERVAL '10-6' YEAR(2) TO MONTH 10 lat i 6 miesięcy, o DAY TO SECOND - przykłady: INTERVAL '45 23:16' DAY TO MINUTE 45 dni, 23 godziny i 16 minut, INTERVAL '23:16:15.25' HOUR TO SECOND(2) 23 godziny, 16 minut, 15.25 sekund. Ćwiczenie do samodzielnej realizacji: 1. Wyświetl wszystkie dane z tabeli ksiązki 2. Wyświetl nazwy ksiąŝek i ich autorów wg wzoru: 3. Wyświetl duŝymi literami imię i nazwisko pracowników biblioteki 4. Wyświetl inicjał imienia z kropką i nazwisko autorów ksiąŝek oraz tytuły ksiąŝek w jednej kolumnie z nagłówkiem Ksiazki 5. Wyświetl dane pracowników: nazwisko i imię (nadaj alias: osoba) oraz datę zatrudnienia podaną wg wzoru: dzień, nazwa miesiąca, rok (nadaj alias data zatrudnienia str. 12

6. Wyświetl imie i nazwisko pracowników pisane małymi mi literami (tekŝe w drugiej wersji) od końca np. atram akydohc 7. Wyświetl w jednej kolumnie nazwy działów oraz liczbę liter ile posiadają te nazwy wg wzoru: kierownik 9 liter 8. Wyświetl wyniki równań: a. Zaokrąglony do dołu wynik równania: 33-2,45 b. Zaokrąglony do góry wynik równania: 123,23 + 34,4*3 9. UŜywając funkcji matematycznych wyświetlić wynik równania: 2 + 3,75 33 * 2 3 /( 44/ 11 12,5) (WYNIK= 0,200346054) 10. * Wyświetl nr_transakcji oraz liczbę na ile dni były wypoŝyczone poszczególne ksiąŝki. 11. * Wyświetl nazwy stanowisk wg opisu: Pierwsza, środkowa i ostatnia litera duŝe, reszta małe (potrzeba uŝycia dodatkowych funkcji). str. 13