Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałFelicyta Burski Został zmieniony 11 lat temu
1
Podejście relacyjne Podejście relacyjne opiera się na wykorzystaniu do przedstawiania danych modelu relacyjnego i zarządzania nimi matematycznego modelu zawierającego algebrę relacyjną i rachunek relacji. Ogólnie system zarządzania relacyjną bazą danych: Reprezentuje całą informację z bazie danych za pomocą tabel. Wspiera trzy podstawowe operacje relacyjne: wybór (selekcja, ang. selection), rzutowanie (projekcja, ang. projection) i złączanie (ang. join). Szczegółowe wymagania określa dwanaście tzw. „praw Codda”.
2
Między innymi system w pełni relacyjny musi:
Reprezentować całą informację zawartą w bazie w postaci tabel. Utrzymywać niezależność logicznej reprezentacji danych od fizycznego sposobu ich przechowywania. Używać języka wysokiego poziomu w celu strukturalizacji, wyszukiwania i zmiany informacji w bazie danych. Wspierać podstawowe operacje relacyjne i takie operacje teorii zbiorów, jak suma, przecięcie, różnica i dzielenie. Wspierać perspektywy umożliwiające użytkownikowi określenie alternatywnych sposobów oglądania danych w tabelach. Dostarczać metodę pozwalającą odróżniać wartości nieznane (null) od zera lub miejsca niewypełnionego. Wspierać mechanizmy zapewniające spójność, prawa dostępu, transakcje i odzyskiwanie danych.
3
Postulaty Codda dla relacyjnej bazy danych (1985 rok)
Postulat informacyjny: na poziomie logicznym dane są reprezentowane wyłącznie za pomocą tabel. Postulat dostępu: do każdej pojedynczej danej jest dostęp za pomocą tabel, kolumn i wartości kluczy głównych. Postulat wartości null: w systemie jest dostępna specjalna wartość reprezentująca wartość brakującą, nieokreśloną lub nieznaną; jest to wartość różna od wszystkich konkretnych wartości, jak np. pusty napis lub zero.
4
Postulaty Codda dla relacyjnej bazy danych (1985 rok)
Postulat słownika danych: informacje o obiektach bazy danych tworzących jej schemat są na poziomie logicznym zgrupowane w tabele, które są dostępne w taki sam sposób, jak każde inne dane. Postulat pełnego języka danych: w systemie jest zaimplementowany pełny język obejmujący definiowanie danych, perspektyw, więzów spójności, operowanie danymi (interaktywne lub przez program), nadawanie uprawnień użytkownikom, transakcje.
5
Postulaty Codda dla relacyjnej bazy danych (1985 rok)
Postulat modyfikowania bazy danych przez perspektywy: system umożliwia modyfikowanie danych za pomocą perspektyw, w przypadku gdy taka modyfikacja jest semantycznie sensowna. Postulat modyfikowania danych na wysokim poziomie abstrakcji: system umożliwia modyfikowanie danych za pomocą operacji, których argumentami są tabele (perspektywy), a więc w szczególności nie tylko w sposób nawigacyjny. Fizyczna niezależność danych: zmiany w metodach przechowywania danych i dostępu do nich nie mają wpływu na aplikacje.
6
Postulaty Codda dla relacyjnej bazy danych (1985 rok)
Logiczna niezależność danych: zmiany w tabelach zachowujące informacje i dopuszczalne semantycznie nie mają wpływu na aplikacje. Niezależność więzów spójności: więzy spójności są definiowane w języku bazy danych (nie muszą być wyrażane w aplikacji).
7
Postulaty Codda dla relacyjnej bazy danych (1985 rok)
Niezależność dystrybucyjna: system (i jego język) umożliwiają używanie danych zapisanych w różnych fizycznie miejscach (w różnych węzłach sieci). Zabezpieczenie przed operacjami na niższych poziomach abstrakcji: jeżeli system umożliwia operacje na niższych poziomach abstrakcji, nie mogą one naruszać relacyjnego modelu danych (w tym pomijać ograniczeń określonych przez więzy spójności).
8
Model relacyjny - wszystko jest tabelą
Postulat 1. Model relacyjny - wszystko jest tabelą Tabela podzielona jest na poziome wiersze i pionowe kolumny. Alternatywne pojęcia (niemal synonimy): Tabela – relacja – plik. Wiersz – krotka (wystąpienie encji) – rekord. Kolumna – atrybut (właściwość) – pole.
9
Postulat 1. Zbiór powiązanych ze sobą tabel to baza danych.
Tabela to zbiór wierszy, czyli wystąpień encji. Encje charakteryzują własności, czyli wartości w poszczególnych kolumnach. W relacyjnej bazie danych występują dwa rodzaje tabel: Tabele użytkownika. Tabele systemowe (katalog, słownik systemu) – czwarte prawo Codda.
10
Wartość nieokreślona (null)
Postulat 3. Wartość nieokreślona (null) Wartość null (rozwiązanie problemu brakującej informacji) oznacza brak danej (jest ona nieznana lub nie wprowadzona). Stosowanie null zmienia tradycyjną logikę dwuwartościową (tak/nie) na logikę trójwartościową (tak/nie/być może) – stanowi integralną część standardu języka SQL.
11
Język wysokiego poziomu
Postulat 5. Język wysokiego poziomu System relacyjny wymaga pełnego podjęzyka danych (np. SQL). Zakres zastosowań pełnego podjęzyka danych: Operowanie danymi (wyszukiwanie i modyfikowanie). Definiowanie danych. Administrowanie danymi. Każda operacja języka wyrażona jest instrukcją lub poleceniem. Operacje wyszukiwanie nazywane są często zapytaniami.
12
SQL jako podjęzyk danych
Język SQL jest językiem nieproceduralnym, tzn. pozwala na określenie warunków, jakie ma spełniać wynik bez podawania szczegółów dotyczących sposobu realizacji. Operacje wyszukiwania powodują utworzenie i wyprowadzenie tabel wynikowych zwanych tabelami wyprowadzanymi na podstawie tabel bazowych zawierających surowe dane. Operacje relacyjne: Rzutowanie – wybór kolumn (określa podzbiór kolumn). Wybór – wybór wierszy (określa podzbiór wierszy). Złączanie – utworzenie jednej tabeli wynikowej na podstawie kilku tabel bazowych.
13
Różne sposoby oglądania danych
Postulat 6. Różne sposoby oglądania danych Perspektywa (tabela wirtualna, tabela pochodna) – tabela utworzona na podstawie jednej lub kilku tabel bazowych, która umożliwia inny, alternatywny sposób przeglądania danych. Dane oglądane w perspektywie nie są zapamiętane w ten sposób w bazie danych (nie jest ona kopią danych). Zmiana danych w perspektywie powoduje (zwykle) ich modyfikację w rzeczywistości (prawo Codda).
14
Postulat 7. Bezpieczeństwo sprowadza się do kontroli kto używa jakich danych i w jakiem celu. Podjęzyk danych powinien umożliwić realizację tej kontroli. Poziom kontroli zależy od SZBD (na poziomie baz danych, tabel, kolumn, wierszy). Rodzaje użytkowników: Zwykły użytkownik (użytkownik) – prawa wynikające z nadanych mu uprawnień. Użytkownik uprzywilejowany – właściciel baz danych lub obiektów bazodanowych (osoba tworząca te obiekty). Administrator systemu (administrator bazy danych).
15
Postulat 8. i 9. Niezależność danych
Niezależność danych jest celem SZBD w modelu relacyjnym. Poziomy niezależności: Fizyczna niezależność danych (reprezentacja danych widziana przez użytkownika jest całkowicie niezależna od fizycznego sposobu pamiętania danych – wydzielenie metod dostępu). Logiczna niezależność danych (reprezentacja danych widziana przez użytkownika jest niezależna od programów użytkowych).
16
Postulat 10. Spójność (integralność) to poprawność danych w bazie danych. Ograniczenia (tzw. więzy) dotyczące spójności powinny być definiowane w tym samym podjęzyku danych, co reszta systemu i zapamiętane w słowniku bazy danych (prawo Codda). Metody zapewnienia spójności: Zarządzanie transakcjami – polecenie podjęzyka danych musi być wykonane w całości, albo wcale (żadna jego część). Spójność encji – ograniczenia dziedziny, ograniczenia na wartości klucza głównego, dodatkowe warunki. Spójność odwołań – zgodność fragmentów informacji powtarzających się w kilku tabelach. Dodatkowe ograniczenia (np. wyzwalacze).
17
Strukturalny (Standardowy) Język Zapytań
SQL Strukturalny (Standardowy) Język Zapytań
18
Składnia języka SQL Uwagi dotyczące konwencji składniowej SQL:
SQL jest językiem o formacie swobodnym (brak wymagań na liczbę wierszy składających się na polecenie i liczby słów w wierszu oraz miejsca rozpoczęcia i zakończenia polecenia). Słowa kluczowe języka można zazwyczaj pisać małymi i dużymi literami (przeważnie są nierozróżnialne w tym przypadku). Identyfikatory stałych, zmiennych i obiektów bazodanowych nadawane przez użytkownika muszą spełniać zwykle bardzo różne ograniczenia narzucone przez poszczególne SZBD (np. długość, dopuszczalne znaki, rozróżnianie małych i dużych liter – zazwyczaj w tym miejscu są rozróżnialne).
19
Składnia języka SQL Uwagi dotyczące konwencji składniowej SQL (cd):
Polecenia mogą posiadać dodatkowe opcje, z których musi być wybrana jedna ({opcja1/opcja2/...}), czy musi być wybrana jedna lub więcej niż jedna ({opcja1, opcja2, ..}), ewentualnie może być wybrana jedna lub wcale ([opcja1/opcja2/...]), czy może być wybrana jedna, więcej niż jedna lub wcale ([opcja1, opcja2, ...]) –nawiasy klamrowe i kwadratowe nie są częścią składni języka. Nawiasy okrągłe są częścią składni języka SQL. Instrukcja SQL wymaga użycia znaku końca (zazwyczaj średnik).
20
Tworzenie bazy danych Tworzenie bazy danych wymaga najpierw utworzenia schematu bazy danych (zawiera np. szkielet tabel systemowych), który nie jest wypełniony danymi – w niektórych SZBD operacja ta jest zarezerwowana dla administratora. Tworzenie i używanie baz danych wymaga: Utworzenia (inicjalizacji) bazy danych. Utworzenia tabel wewnątrz bazy danych. Wypełnienia tabel (pracy z tabelami).
21
Utwórz (schemat) bazę danych (ewentualnie dodatkowe opcje)
Tworzenie bazy danych Utwórz (schemat) bazę danych (ewentualnie dodatkowe opcje) CREATE DATABASE nazwa_bazy_danych; CREATE SCHEMA nazwa_bazy_danych; przykład CREATE DATABASE Firma;
22
Wybierz (domyślną) bazę danych
Używanie bazy danych Wybierz (domyślną) bazę danych USE nazwa_bazy_danych; DATABASE nazwa_bazy_danych; przykład USE Firma;
23
Pokaż dostępne bazy danych
Używanie bazy danych Pokaż dostępne bazy danych SHOW DATABASES; Usuń bazę danych DROP nazwa_bazy_danych; przykład DROP Firma;
24
Używanie bazy danych Praca z konkretną bazą danych wymaga deklaracji jej użycia. Niekiedy w niektórych SZBD praca z bazą danych będzie wymagała połączenia się z nią przy pomocy polecenia CONNECT. Pełne prawa do bazy danych posiada jej właściciel, czyli osoba, która ją utworzyła (dodatkowo także administrator systemu).
25
Tworzenie tabeli Tworzenie tabeli co najmniej obejmuje:
Nadanie nazwy tabeli. Nadanie nazw kolumnom tworzącym tabelę. Określenie typu danych dla każdej kolumny. Określenie statusu NULL (dopuszczenie lub zakazanie wartości nieokreślonej) dla każdej kolumny – w różnych SZBD różnie przyjmuje się wartość domyślą tego statusu (NULL/NOT NULL). Wprowadzenie danych.
26
Tworzenie tabeli Dodatkowe możliwości przy tworzeniu tabeli:
Określenie wartości domyślnych (DEFAULT) przyjmowanych automatycznie, gdy nic nie zostanie wprowadzone. Określenie więzów ograniczających dopuszczalne wartości wprowadzane do poszczególnych kolumn. Określenie więzów definiujących kolumnę jako klucz główny, klucz jednoznaczny, lub oba klucze jednocześnie. Ustanowienie więzów sprawdzających zależności między kluczami głównymi i obcymi.
27
Tworzenie tabeli Typ danych określa rodzaj informacji przechowywanej w danej kolumnie (także charakter możliwych do wykonania operacji). Systemy relacyjne mogą obsługiwać wiele (ograniczoną liczbę) typów danych. W różnych SZBD typy danych mogą być różne. SZBD udostępnia funkcje konwersji danych do innego typu (w ograniczonym zakresie). Wybór długości i typu danych jest istotny z punktu widzenia wykonywanych operacji oraz zajmowanej pamięci (preferowane typy danych o zmiennej długości). Wybór precyzji i skali zależy od charakteru wykonywanych operacji.
28
Tworzenie tabeli Rodzaje typów danych:
Znakowe (napisowe) typy danych – ciąg znaków o stałej lub zmiennej długości, przy odwoływaniu umieszczany w pojedynczych apostrofach. Niektóre SZBD udostępniają znakowe narodowe typy danych oraz osobny typ znakowy do przechowywania dużej ilości tekstu; przykłady identyfikatorów: CHAR(N) – łańcuch znaków o stałej długości N. VARCHAR(N) – łańcuch znaków o zmiennej długości N. TEXT, LONGTEXT – odpowiednio krótki lub długi łańcuch tekstu.
29
Tworzenie tabeli Rodzaje typów danych (cd):
Binarne typy danych – przechowujące w postaci binarnej kody np. obrazów o różnej długości; przykłady identyfikatorów: BIT(N) – ciąg bitów o stałej długości N. BIT VARYING(N) – ciąg znaków o zmiennej długości. BLOB – mały „wielki obiekt binarny”. LONGBLOB – wielki „wielki obiekt binarny”. Całkowite typy danych – przechowujące tylko liczby całkowite; przykłady identyfikatorów: NUMBER, INTEGER. TINYINT, SMALLINT, INT, BIGINT.
30
Tworzenie tabeli Rodzaje typów danych (cd):
Dziesiętne typy danych – przechowujące liczby z częściami ułamkowymi; przykłady identyfikatorów: DECIMAL, NUMERIC(p,s) – format stałopozycyjny. FLOAT, DOUBLE – format zmiennopozycyjny (przybliżony). Walutowe typy danych – przechowujące wartości walutowe; przykład identyfikatora: MONEY.
31
Tworzenie tabeli Rodzaje typów danych (cd):
Typy danych daty i czasu – przechowujące datę, czas oraz ich kombinację; przykłady identyfikatorów: DATE – data w ustalonym formacie. TIME – czas w ustalonym formacie. DATETIME – data i czas w ustalonym formacie. YEAR – rok w ustalonym formacie. Porządkowe typy danych – przechowujące liczby rosnące sekwencyjnie (w niektórych SZBD typ ten stanowi oddzielny typ danych, w innych jest dostępny jako specjalna własność podstawowego typu danych).
32
Tworzenie tabeli Tworzenie tabeli CREATE TABLE nazwa_tabeli (
nazwa_kolumny typ_danych [NULL/NOT NULL] [DEFAULT wartość_domyślna] [więzy_spójności_kolumny],... [więzy_spójności_tabeli],...);
33
Tworzenie tabeli przykład CREATE TABLE Pracownicy (
Id_pracownika Number(6) PRIMARY KEY, Nazwisko Varchar2(20) NOT NULL, Stanowisko Varchar2(9), Kierownik Number(6) REFERENCES Pracownicy, Data_zatrudnienia Date, Zarobki Number(8,2), Premia Number(8,2), Id_działu Number(3) REFERENCES Działy, CHECK (Premia < Zarobki));
34
Tworzenie tabeli CREATE TABLE Działy (
Id_działu Number(3) PRIMARY KEY, Nazwa_działu Varchar2(20) NOT NULL UNIQUE, Miejsce Varchar2(50)); CREATE TABLE Zaszeregowania ( Grupa Number(2) PRIMARY KEY, Dolne Number(8,2) NOT NULL, Górne Number(8,2) NOT NULL, CHECK (Dolne < Górne));
35
Tworzenie tabeli więzy spójności: PRIMARY KEY – klucz główny
REFERENCES nazwa_tabeli (nazwa_kolumny) – związek między kluczem obcym i kluczem głównym FOREIGN KEY – klucz obcy NULL – dozwolona wartość nieokreślona NOT NULL – niedozwolona wartość nieokreślona UNIQUE – klucz jednoznaczny (bez powtórzeń) DEFAULT – definiuje wartość domyślną CHECK – sprawdź warunek
36
Zmiana schematu tabeli
Operacje na tabelach Usuwanie tabeli DROP TABLE nazwa_tabeli; przykład DROP TABLE Pracownicy; Zmiana schematu tabeli ALTER TABLE nazwa_tabeli ADD [COLUMN] def_kolumny; ALTER TABLE Pracownicy ADD COLUMN Pesel Char(8); ALTER TABLE Pracownicy ADD Pesel Char(11);
37
Operacje na tabelach Wyświetlanie dostępnych tabel SHOW TABLES;
Wyświetlanie struktury tabeli DESCRIBE nazwa_tabeli; przykład DESCRIBE Pracownicy;
38
Operacje na tabelach Zakładanie indeksów
CREATE [UNIQUE] INDEX nazwa_indeksu ON nazwa_tabeli (kolumna [ASC/DESC],...); przykład CREATE UNIQUE INDEX Ind_prac_num ON Pracownicy (Pesel); CREATE INDEX Ind_prac_naz ON Pracownicy (Nazwisko DESC); ASC – rosnąco, DESC – malejąco Usuwanie indeksów DROP INDEX nazwa_indeksu (ew. nazwa_tabeli.nazwa_indeksu); DROP INDEX Ind_prac_num;
39
Operacje na tabelach Wstawianie danych INSERT INTO nazwa_tabeli
VALUES (wartość,...); INSERT INTO nazwa_tabeli (nazwa_kolumny,...) przykład INSERT INTO Pracownicy VALUES (9901, ’Kowalski’, ‘SALESMAN’, 9345, ’ ’, 300, 100, 12); INSERT INTO Pracownicy (Id_pracownika, Nazwisko) VALUES (9901, ’Kowalski’);
40
Operacje na tabelach Modyfikowanie danych UPDATE nazwa_tabeli
SET nazwa_kolumny=wyrażenie,... [WHERE warunek]; przykład UPDATE Pracownicy SET Zarobki = Zarobki*1,1 WHERE Stanowisko = ‘SALESMAN’; Klauzula SET określa kolumny i zmieniane wartości. Klauzula WHERE określa wiersze, w których ma dojść do zmiany.
41
(brak WHERE spowoduje usunięcie wszystkich wierszy)
Operacje na tabelach Usuwanie danych DELETE FROM nazwa_tabeli [WHERE warunek]; (brak WHERE spowoduje usunięcie wszystkich wierszy) przykład DELETE FROM Pracownicy WHERE Stanowisko IS NULL;
42
Wprowadzanie danych do tabeli z pliku zewnętrznego (np. MySQL)
Operacje na tabelach Wprowadzanie danych do tabeli z pliku zewnętrznego (np. MySQL) LOAD DATA LOCAL INFILE ”nazwa_pliku” INTO TABLE nazwa_tabeli; przykład LOAD DATA LOCAL INFILE “Pracownicy.txt” INTO TABLE Pracownicy; UWAGA: Polecenie to nie jest częścią standardu języka SQL.
43
Operacje na tabelach Tworzenie tabeli z innej tabeli
CREATE TABLE nazwa_tabeli SELECT ... przykład CREATE TABLE Osoby SELECT Nazwisko FROM Pracownicy; Tworzenie tabeli tymczasowej (np. MySQL) CREATE TEMPORARY TABLE nazwa_tabeli [TYPE = HEAP] SELECT … CREATE TEMPORARY TABLE nazwa SELECT nazwa FROM c;
44
Operacje na tabelach Każda zmiana zawartości w bazie danych wywołana przez operację podjęzyka danych może zostać odwołana lub zatwierdzona (różne SZBD różnie przyjmują wartość domyślą). Jeżeli wartością domyślną jest automatyczne zatwierdzanie wyników transakcji, to użytkownik może odwołać zmiany w następnym poleceniu. Gdy wartością domyślną jest nie zatwierdzanie wyników transakcji, to użytkownik w kolejnym poleceniu musi je zatwierdzić osobnym poleceniem, by nie stracić zmian. Zatwierdzanie zmian w bazie danych COMMIT [WORK]; Rezygnacja ze zmian w bazie danych ROLLBACK [WORK];
45
Indeksy (indeksowanie)
Indeksy przyspieszają wyszukiwanie danych, dlatego powinno się indeksować kolumny często wykorzystywane do przeszukiwania danych. Indeksy są przechowywane w osobnym miejscu pamięci (często w pamięci głównej) i przyspieszają działanie systemu. Nie należy tworzyć indeksów do wszystkich kolumn: Budowanie i przetwarzanie indeksów pochłania czas i pamięć systemu komputerowego. Wstawianie, modyfikowanie i usuwanie danych w kolumnach indeksowanych trwa dłużej o czas przebudowy indeksu.
46
Indeksy (indeksowanie)
Co należy indeksować: Kolumnę (kolumny) klucza głównego (szczególnie, gdy jest ona dołączana do innych tabel jako klucz obcy). Kolumnę często używaną zgodnie z porządkiem sortowania. Kolumny regularnie wykorzystywane przy złączeniach. Kolumny często przeszukiwane. Czego nie należy indeksować: Kolumny, do których zapytania rzadko się odwołują. Kolumny o małej liczbie różnych wartości (np. Tak/Nie). Kolumny w małych tabelach (np. o kilku wierszach).
47
Indeksy (indeksowanie)
Rodzaje indeksów: Indeksy jednokolumnowe – tworzone dla jednej kolumny. Indeksy zgrupowane – zawierające więcej, niż jedną kolumnę (stosowane, gdy lepiej jest przeszukiwać równocześnie dwie lub więcej kolumn ze względu na ich powiązanie logiczne). Indeksy jednoznaczne (UNIQUE) – nie powtarzające się (żadne dwa wiersze nie mają takiej samej wartości indeksu, nawet gdy wartości w kolumnie się powtarzają). Indeksy zgrupowane (inne znaczenie, oferują niektóre SZBD) – porządek logiczny indeksów jest zgodny z porządkiem fizycznym wierszy (odszukanie danych z pomocą indeksu zgrupowanego jest zawsze szybsze niż dla indeksu niezgrupowanego). Indeksy niezgrupowane – indeksy, które nie są zgrupowane.
48
Więzy spójności Różne SZBD udostępniają zazwyczaj następujące więzy spójności: PRIMARY KEY – oznacza kolumnę (dodawane przy definicji kolumny) lub grupę kolumn (deklaracja na poziomie tabeli PRIMARY KEY (kol1, kol2, ...)) stanowiących klucz główny tabeli. Nie jest wówczas dopuszczalna wartość NULL i każda wartość musi być jednoznaczna. UNIQUE – gwarantuje jednoznaczność każdej wartości w kolumnie dopuszczając jedną wartość NULL (dodawane przy definicji kolumny). DEFAULT – definiuje wartość nadawaną przez system automatyczne, gdy użytkownik nie poda jej jawnie, także NULL (dodawana przy definicji kolumny).
49
Więzy spójności Różne SZBD udostępniają zazwyczaj następujące więzy spójności: CHECK (reguły poprawności CHECK (warunek)) – określa jakie wartości mogą być wprowadzane do określonej kolumny (dodawane przy definicji kolumny) lub grupy kolumn (deklaracja na poziomie tabeli). REFERENCES nazwa_tabeli (nazwa_kolumny) - wiąże klucze główne z obcymi, wprowadzona wartość do kolumny klucza obcego musi istnieć w kolumnie tabeli, do której jest odwołanie. FOREIGN KEY – wskazuje klucz obcy bez powiązania nadawanego przez opcję REFERENCES (deklaracja na poziomie definicji kolumny).
50
Wybieranie danych z bazy danych
Do wybierania danych z bazy danych służy instrukcja SELECT. Pozwala ona wybierać dane (kolumny i wiersze) z jednej lub wielu tabel równocześnie (po ich złączeniu), umożliwia porządkowanie wierszy w tabeli wynikowej, grupowanie wierszy oraz stosowanie podzapytań w zapytaniach (zagnieżdżone instrukcje SELECT).
51
(wybiera kolumny Nazwisko, Zarobki i Stanowisko z Pracownicy)
SQL – zapytania proste Wybór określonych kolumn i wierszy z tabeli (tabel) SELECT [ALL/DISTINCT] nazwa_kolumny,... FROM nazwa_tabeli (nazwy_tabel) [WHERE warunki wyszukiwania]; przykłady SELECT Nazwisko, Zarobki, Stanowisko FROM Pracownicy; (wybiera kolumny Nazwisko, Zarobki i Stanowisko z Pracownicy)
52
(wybiera wszystkie kolumny z tabeli Pracownicy – klauzula *)
SQL – zapytania proste przykłady cd. SELECT * FROM Pracownicy; (wybiera wszystkie kolumny z tabeli Pracownicy – klauzula *) SELECT Nazwisko, Zarobki, Stanowisko FROM Pracownicy WHERE Id_działu = 10; (wybiera określone kolumny z tabeli Pracownicy i tylko te wiersze, które spełniają podanych warunek) SELECT DISTINCT Kierownik (wybiera kolumnę Kierownik z tabeli Pracownicy odrzucając powtarzające się wiersze – klauzula DISTINCT)
53
(wybiera dwie kolumny z połączonych dwóch tabel)
SQL – zapytania proste przykłady cd. SELECT ALL Kierownik FROM Pracownicy; (wybiera kolumnę Kierownik z tabeli Pracownicy nie odrzucając powtarzających się wierszy – klauzula ALL, zazwyczaj domyślna) SELECT Pracownicy.Nazwisko, Adresy.Miasto FROM Pracownicy, Adresy WHERE Pracownicy.Id_Pracownika = Adresy.Id_Pracownika; (wybiera dwie kolumny z połączonych dwóch tabel)
54
SQL – zapytania proste W przypadku wyboru kolumn z różnych tabel (podanych w klauzuli FROM) istnieje niekiedy potrzeba kwalifikowania nazw (w zasadzie tylko, gdy nazwy kolumn w tabelach powtarzają się, czyli w przykładzie powyższym można z kwalifikacji zrezygnować) w następujący sposób: Nazwa_bazy_danych.Nazwa_tabeli.Nazwa_kolumny Nazwa_bazy_danych.Nazwa_perspektywy.Nazwa_kolumny Warunek złączenia tabel podawany jest w klauzuli WHERE.
55
SQL – zapytania proste Przetwarzanie wartości w kolumnach i stosowanie aliasów (synonimów, nazw zastępczych) SELECT [ALL/DISTINCT] wyrażenie [[AS] alias],... FROM nazwa_tabeli (nazwa_tabel) [WHERE warunek_wyszukiwania] [ORDER BY wyrażenie [ASC/DESC/,...]; przykłady SELECT p.Nazwisko, a.Miasto FROM Pracownicy p, Adresy a WHERE p.Id_Pracownika = a.Id_Pracownika; (nadanie nazwom tabel aliasów dla wygody przy pisaniu) SELECT Id_Pracownika [AS] Numer, Nazwisko FROM Pracownicy (identyfikator pracownika będzie posiadał nowy nagłówek)
56
Przetwarzanie wartości w kolumnach i stosowanie aliasów
SQL – zapytania proste Przetwarzanie wartości w kolumnach i stosowanie aliasów Przykłady ciąg dalszy SELECT Id_pracownika, Nazwisko, Trunc(Months_Between(Sysdate, Data_zatrudnienia)/12) AS Zatrudnienie FROM Pracownicy ORDER BY Zatrudnienie DESC; (oprócz kolumn z identyfikatorem i nazwiskiem wyprowadzona zostanie kolumna z czasem pracy w pełnych latach o nagłówku Zatrudnienie; całość będzie uporządkowana według malejących wartości w kolumnie Zatrudnienie – klauzula ORDER BY) SELECT ‘Pracownik ‘, Id_Pracownika [AS] Numer, Nazwisko (w przedstawiony sposób można dodawać napisy w zapytaniach, co niekiedy ułatwia zrozumienie; każdy wiersz tabeli wynikowej zostanie poprzedzony od lewej napisem „Pracownik ”)
57
Przetwarzanie wartości w kolumnach i stosowanie aliasów
SQL – zapytania proste Przetwarzanie wartości w kolumnach i stosowanie aliasów Przykłady ciąg dalszy SELECT Nazwisko, Czas_Pracy * Stawka AS Pensja FROM Pracownicy (w tabeli wynikowej zostanie wyprowadzony wynik mnożenia dwóch kolumn pod nazwą Pensja – nazwy kolumn muszą być bez spacji)
58
SQL – zapytania proste Operatory arytmetyczne możliwe do stosowania w wyrażeniach: * mnożenie. / dzielenie. + dodawanie. - odejmowanie. % dzielenie modulo (dostępne w niektórych SZBD). UWAGA: Wynik operacji arytmetycznej, gdy jeden z argumentów ma wartość NULL jest także równy NULL. Priorytet operatorów: mnożenie/dzielenie, dodawanie/odejmowanie.
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.