Proste wyszukiwanie w SQL - referat
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.
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.
Instrukcją wykorzystywaną do wyprowadzania informacji umieszczonych w tablicach języka SQL jest instrukcja SELECT o składni:
[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>];
Najprostszym wyprowadzeniem wyspecyfikowanych kolumn pojedynczej tablicy jest postać:
SELECT materiał, ilość
FROM Ilość;
Z tablicy Ilość zostaną wyprowadzone zawartości kolumn: materiał i ilość.
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
Podstawowa postać instrukcji SELECT
SELECT <kolumny>
FROM <tablice>
WHERE <warunek>;
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, 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).
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 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.
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).
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ść.
SELECT COUNT(*)
Zostanie podana liczba wszystkich materiałów wydanych z magazynu.
WHERE mistrz = „Kowalski”;
Zostanie podana liczba kwitów magazynowych wydanych dla mistrza Kowalskiego.
SELECT SUM(ilość)
...
keri_85