Bazy - referat SQL.doc

(76 KB) Pobierz
Referat z SQL

                            Proste wyszukiwanie w SQL - referat

Wprowadzenie

Język SQL stanowi najbardziej popularny mechanizm definiowania poleceń i zapytań i modyfikacji w relacyjnych systemach baz danych. Słowo SQL jest skrótem angielskim od Structure Query Language, tj. języka zapytań strukturalnych. Podstawowy rdzeń języka SQL jest implementacją algebry relacji, ale zawarte są w nim również elementy daleko odbiegające od tego, co można odnaleźć w algebrze relacji, np. możliwości agregowania danych (np. sumy i podliczanie), a także możliwość modyfikowania bazy danych.

Istnieje wiele różnych dialektów języka SQL. Najważniejsze z nich są dwa standardy: ANSI (American National Standard Institute) SQL oraz zmodyfikowany w 1992 roku standard SQL-92, czyli SQL2. W trakcie ustaleń znajduje się kolejna rozszerzona wersja tych standardów o nazwie SQL3, która poza elementami SQL2 zawiera wiele nowości, takich jak rekurencja, wyzwalacze i obiekty. A poza tym istnieją wersje języka SQL implementowane przez producentów oprogramowania systemowego baz danych. Są one zgodne ze standardem ANSI, a w wielu miejscach również ze standardem SQL2, ale każde z nich zawiera wiele własnych koncepcji modyfikujących ten drugi standard, a czasami te koncepcje są zgodne z bieżącym stanem znajdującego się na etapie inkubacji standardu SQL3.

Język SQL jest niezależnym językiem zapytań, który dostarcza możliwości interaktywnego zadawania zapytań do bazy danych oraz określania żądań modyfikowania danych. SQL jest językiem wysokiego poziomu do manipulowania danymi o niewielkiej liczbie instrukcji a o dużych możliwościach. Dzięki temu można w bardzo zwarty sposób programować systemy użytkowe, bazy danych lub wykorzystywać język SQL w trybie interakcyjnym.

Zapytania w języku SQL

Najprostsza postać zapytania w języku SQL służy do wybierania krotek pewnej relacji, które spełniają określone w zapytaniu warunek. Taki typ zapytania stanowi odpowiednik operatora selekcji w algebrze relacji. Takie najprostsze zapytanie jak zresztą prawie wszystkie zapytania w tym języku, konstruuje się za pomocą trzech charakterystycznych dla SQL słów kluczowych: SELECT, FROM i WHERE.

Składnia instrukcji SELECT

Instrukcją wykorzystywaną do wyprowadzania informacji umieszczonych w tablicach języka SQL jest instrukcja SELECT o składni:

SELECT <klauzula>

              [INTO <klauzula>]

              FROM <klauzula>

              [WHERE <klauzula>]

              [GROUP BY <klauzula>]

              [HAVING <klauzula>]

              [UNION <instrukcja SELECT>...]

              [ORDER BY <klauzula>/FOR UPDATE OF <klauzula>]

              [SAVE TO TEMP <klauzula>];

Przykład

Najprostszym wyprowadzeniem wyspecyfikowanych kolumn pojedynczej tablicy jest postać:

SELECT materiał, ilość

              FROM Ilość;

Z tablicy Ilość zostaną wyprowadzone zawartości kolumn: materiał i ilość.

Przykład

Jeżeli mają być wyprowadzane wszystkie kolumny tablicy, wówczas w instrukcji SELECT należy podać znać gwiazdki (podawane w kolejności występowania w tablicy). Dla wyprowadzania tylko różnych wierszy z tablicy po instrukcji SELECT (lecz przed kolumnami) należy zastosować opcję DISTINCT.

SELECT DISTINCT *

              FROM Numer;

Zostaną wyprowadzone wszystkie różne wiersze tablicy Numer

Przykład

Podstawowa postać instrukcji SELECT

SELECT <kolumny>

              FROM <tablice>

              WHERE <warunek>;

Przykład

SELECT materiał, ilość

              FROM Ilość

              WHERE materiał = „szyby”;

Po wykonaniu takiego rozkazu z tablicy Ilość zostaną wyselekcjonowane tylko te wiersze, które w kolumnie materiał posiadają opis szyby oraz wyświetlone zostają tylko 2 kolumny: materiał i ilość.

Operatory

Operatory, które mogą być wykorzystywane w opcji WHERE zawiera poniższa tabela:

 

Operator

Opis

=

Równość

<

Mniejsze niż

>

Większe niż

<=

Mniejsze niż lub równe

>=

Większe niż lub równe

<> lub #

Różne

!

Negacja operatorów <,> i =

Porównywane wartości muszą być zgodnych typów (typy SMALLINT, INTEGER, DECIMAL, NUMERIC i FLOAT są wszystkie ze sobą zgodne).

W warunku umieszczonym w opcji WHERE mogą występować następujące operatory logiczne: NOT, AND oraz OR (z priorytetem takim jak kolejność występowania).

Przykład

SELECT *

              FROM Numer

              WHERE nr > 100 AND mistrz = „Wiśniewski”;

Pod uwagę są brane wszystkie kolumny z tablicy Numer. Zastaną wyprowadzone zawartości tych wierszy, dla których nr jest większe od 100 i nazwisko mistrza jest Wiśniewski.

Wyrażenia

Wyrażenia są zapisami operacji, które mogą być wykonane na obiektach języka. Wyrażenia mogą zawierać kombinację kolumn, operatorów arytmetycznych (+,-,/,*,**,^), stałych (numerycznych, logicznych i tekstowych) oraz zmiennych. W wyrażeniach mogą występować również operatory „+” oraz „-” do wykonywania operacji na łańcuchach tekstowych.

Kolejność obliczania wyrażenia wynika z priorytetów poszczególnych operatorów lub może być sterowana przez nawiasy. Wyrażenia podają wartość logiczną (prawdy lub fałszu), wartość numeryczną lub łańcuch tekstowy.

Wyrażenia mogą być stosowane w następujących sytuacjach:

§         Do wprowadzenia opisu kolumny informacyjnej w tablicy wynikowej instrukcji SELECT;

§         Do definicji nowej kolumny obliczeniowej w klauzuli instrukcji SELECT;

§         Do definicji warunku w klauzuli WHERE;

§         Do definicji wyrażenia w klauzuli HAVING.

Przykład

SELECT materiał, cena, cena*10,”(cena dziesięciokrotna)”

              FROM Cena;

Zostaną wyprowadzone zawartości kolumn: materiał oraz cena, a obok nich wartości dwóch wyrażeń: wyrażenia pierwszego zawierającego cenę pomnożoną przez 10 oraz wyrażenia drugiego zawierającego tekst: (cena dziesięciokrotna).

Funkcje agregujące języka SQL

COUNT()              zlicza liczbę wybranych wierszy;

SUM()              sumuje wartości w kolumnach numerycznych;

MIN()              znajduje minimalną wartość tekstową, typu daty lub numeryczną;

MAX()              znajduje maksymalną wartość;

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

Funkcje agregujące wykonują obliczenia na wszystkich wartościach danej kolumny (lub wszystkich kolumn) w tablicy, perspektywie, tablicy wynikowej lub też grupie wierszy zdefiniowanych przez klauzulę GROUP BY lub HAVING. Wynikiem wykonywanej funkcji jest pojedyncza wartość.

Przykład

SELECT COUNT(*)

              FROM Ilość;

Zostanie podana liczba wszystkich materiałów wydanych z magazynu.

Przykład

SELECT COUNT(*)

              FROM Numer

              WHERE mistrz = „Kowalski”;

Zostanie podana liczba kwitów magazynowych wydanych dla mistrza Kowalskiego.

Przykład

SELECT SUM(ilość)

...

Zgłoś jeśli naruszono regulamin