głowacki,bazy danych, Tworzenie tabeli

  1. Tworzenie tabeli

Nową tabelę tworzymy przy pomocy instrukcji

CREATE TABLE <nazwa tablicy>

(<nazwa kolumny><typ danych>

[,<nazwa kolumny><typ danych>...])

np.

CREATE TABLE Test (aaa CHAR(10), bbb CHAR(12));

  1. Modyfikacja struktury istniejącej tabeli

ALTER TABLE <nazwa>

ADD <nazwa kolumny><typ danych>

[,<nazwa kolumny><typ danych>...],

DROP <nazwa kolumny>;

np.

ALTER TABLE Ilosc

ADD mistrz CHAR(15),

DROP nr_mistrz;

Do tablicy Ilość zostanie dodana kolumna o nazwie mistrz, a usunięta kolumna o nazwie nr_mistrz

  1. Perspektywy

Perspektywy są to tablice wirtualne tzn. takie, które fizycznie w pamięci nie istnieją i służą tylko do innej organizacji już istniejących tablic. Perspektywa może zawierać kombinacje wierszy i kolumn wybranych z jednej lub kilku tablic. Może być wykorzystywana do wybrania i wyprowadzenia żądanych informacji analogicznie jak dla tablic. Przy pomocy perspektywy można również wprowadzać i aktualizować informację wtedy, gdy perspektywa powstała z kolumn pojedynczej tablicy. Perspektywę tworzy się przy pomocy instrukcji:


CREATE VIEW <nazwa perspektywy> [(<lista kolumn>)]

AS < podinstrukcja SELECT > [ WITH CHECK OPTION ]


<lista kolumn> podaje nazwy kolumn, które mają wystąpić w tworzonej perspektywie. Jeżeli opcja ta nie wystąpi, perspektywa będzie zawierała nazwy kolumn wyszczególnione w instrukcji SELECT. Podanie nazw kolumn jest konieczne w przypadku, gdy pewna kolumna jest otrzymana w wyniku działania wyrażenia.

Druga część instrukcji CREATE VIEW zawiera instrukcję SELECT definiującą wiersze i kolumny z wyróżnionej tablicy, które będą zawarte w perspektywie. Opcja WITH CHECK OPTION jest wykorzystywana wtedy, gdy chcemy, aby każdy wiersz umieszczony w perspektywie spełniał warunek wyszczególniony w opcji WHERE instrukcji SELECT.

Przykład

CREATE VIEW P1

AS select material, ilosc

FROM Ilość WHERE material =' 'szyby';

Zostanie utworzona perspektywa o nazwie P1 zawierająca kolumny materiał, ilość z tablicy Ilość i wiersze, dla których materiał = 'szyby', Zawartość perspektywy P1 można wyprowadzić przy pomocy instrukcii:

SELECT *FROM P1;

Należy podkreślić, że przy każdej aktualizacji tablicy Ilość zostanie również zaktualizowana perspektywa P1,

Do usunięcia zbędnej perspektywy wykorzystuje się instrukcję DROP VIEW.

Przykład

DROP VIEW Mag;

Zostanie usunięta perspektywa Mag.

  1. Instrukcja SELECT

Instrukcja ta służy do wyprowadzania informacji umieszczonych w tablicach

SELECT <klauzula>

FROM <klauzula>

[WHERE <klauzula>]

[GROUP BY <klauzula>]

[HAVING <klauzula>]

[ORDER BY <klauzula>]

np

SELECT place

FROM pracownik

WHERE place=3000

Wyświetli płace z tabeli pracownik, gdzie płace=300

    1. GROUP BY i HAVING

Klauzula GROUP BY układa wiersze w grupy, w których określona kolumna ma tę samą wartość, a następnie w tablicy wynikowej redukuje tę grupę do pojedynczego wiersza. Dodatkowo klauzula HAVING podaje warunek, który musi spełniać każda grupa wyszczególniona w klauzuli GROUP BY, aby mogła się znaleźć w tabeli wynikowej

Np.

SELECT nr, ksiazka

FROM biblioteka

GROUP BY ksiazka

HAVING nr>3

Wyszukanie nr i ksiazka, z relacji biblioteka. Wcześniej pogrupowanie wg książek , gdzie spełniony mysi być waruneknr>3

  1. DISTINCT

Eliminuje duplikaty w zakresie nazw atrybutów (wyprowadza tylko różne wiersze)

  1. ORDER BY

Określa sposób sortowania wyników zapytania (asc – rosnąco, desc-malejąco). Sortowanie odbywa się albo względem atrybutów albo względem wyrażenia

SELECT [DISTINCT] atrybuty

FROM relacja

WHERE warunek

ORDER BY {atrybut, wyrażenie} {asc,desc}

  1. Warunki

Warunki w formie zapytania SELECT zapisuje się za pomocą operatorów relacyjnych

a)BETWEEN AND

Sprawdzenie czy lewy operator wyrażenia zawarty w przedziale ograniczonych wartości spełnia wystąpienie . Wartości od do są podawane po słowach between and

WHERE zarobki BETWEEN 100 AND 900

b)IN

Operator umożliwia sprawdzenie czy lewy operand jest elementem listy będącej prawym operandem. Listę podaje się w nawiasie okrągłym

WHERE student IN („Kowalski”,”Nowak”)

c)LIKE

Sprawdzenie czy operand pasuje do podanego wzorca

WHERE student LIKE „Kow%”

d)IS NULL

umożliwia sprawdzenie, czy operand ma wartość nieokreśloną, pustą

  1. Funkcje agregujące

a)COUNT() – zlicza liczbę krotek

b)SUM() – sumuje wartości w kolumnach numerycznych

c)MIN() - znajduje minimalną wartość tekstową, typu danych daty lub numeryczną

d)MAX() – znajduje wartość maksymalną

e)AVG() – oblicza średnią wartość w kolumnach numerycznych

SELECT AVG(place), SUM(pensja)

FROM pracownik

WHERE MAX(place)=800

  1. Zapytania złożone

Zapytania w SQL mogą być zagnieżdżone – wynik jednego zapytania może być użyty jako warunek selekcji innego zapytania

Zapytanie zagnieżdżone wykonywane przed zapytanie zewn. nazywane jest zagnieżdżonym (sub-query)

SELECT a1,a2

FROM relacja

WHERE a1=

(SELECT a1

FROM relacja2

WHERE warunek);

Np.

SELECT etat, placa

FROM pracownik

WHERE placa=

(SELECT min(placa)

FROM kierownik)

  1. Łączenie tabel

Łączenie dwóch tabel przy pomocy SELECT’a (wykorzystujemy najczęściej, gdy operujemy kodami a nie pełnymi informacjami). Operacja ta polega na łączeniu dwóch lub więcej relacji z zastosowaniem określonego warunku łączenia. Wynikiem połączenia jest podzbiór produktu relacji

SELECT imie, nazwisko, tytul

FROM autorzy, ksiazki

WHERE autorzy.nazwisko = ‘Mickiewicz’ and autorzy.nr = ksiazki.autor

Wyświetli pola imię, nazwisko, tytuł z połączonych dwóch tabel przy spełnionych warunkach.

  1. Operacje mnogościowe

Suma (Union) krotek dwóch lub więcej relacji (krotki się nie powtarzają). Warunkiem poprawności jest by była wzajemna zgodność pól i ich typów w obu relacjach z których ta suma powstaje

SELECT imie, nazwisko

FROM studenci

UNION

SELECT imie, nazwisko

FROM nauczyciele

Iloczyn krotek – dotyczy dwóch lub więcej relacji, podobnie wymagana jest zgodność typów. Zamiast Union – Intersect

SELECT imie, nazwisko

FROM studenci

INTERSECT

SELECT imie, nazwisko

FROM nauczyciele

Różnica – polega na pobraniu krotek występujących w pierwszej relacji, a nie wyst. w drugiej relacji, podobnie wymagane warunki i podobna składnia. Występuje słowo minus

SELECT imie, nazwisko

FROM studenci

MINUS

SELECT imie, nazwisko

FROM nauczyciele



Wyszukiwarka

Podobne podstrony:
głowacki,bazy danych, pytania i odpowiedzi
głowacki,bazy danych, Obiektowe Bazy Danych

więcej podobnych podstron