sgmsql.pdf
(
180 KB
)
Pobierz
Microsoft Word - SQL na szkolenia.doc
Zaawansowane szkolenie z Systemu Gospodarki Mostowej
KRÓTKI OPIS
J
ZYKA SQL
Wrocław, stycze
2003
W opracowaniu omówiono podstawowe informacje potrzebne do opanowania
umiejtnoci zadawania pyta do baz danych SGM. Programy wchodzce w skład
SGM wyposaone s w wiele standardowych raportów. Jednak aden zestaw
przewidzianych przez programistów pyta nie jest w stanie zaspokoi wszystkich
potrzeb uytkowników systemu. W celu umoliwienia uytkownikom formułowania
własnych pyta system SGM został wyposaony w moliwo obsługi pyta
formułowanych w jzyku SQL.
1. Tabele SGM
Baza danych Systemu Gospodarki Mostowej została zrealizowana jako tak zwana
„relacyjna baza danych”. Oznacza to (w duym uproszczeniu), e informacje SGM
zostały rozbite na pewn ilo grup a kada grupa informacji została za
zrealizowana jako tabela (zwana równie
relacj
). Wiersze tabel (zwane równie
rekordami
lub
krotkami
) opisuj pojedynczy zestaw danych (np. jeden obiekt
mostowy). Kolumny tabel (zwane równie
polami lub atrybutami
) opisuj informacje
zwizane z danym wierszem.
Przykład tabeli.
Główna tabela SGM nazwa si
JNIMain.db
. Oto jej fragment (ze sztucznymi
danymi):
JNI
LNI Rodzaj
DrogaAdm KmAdm JAD
JAP
Miejscowo
sc
...
122212300 L231 JNI001a
123
23.341
WRWRWR 89887 Lubawka
...
122212301 L232 JNI001a
123
25.366
WRWRWR 89887 Mrgow
...
...
...
...
...
...
...
...
...
...
Cała tabela JNIMain.db zawiera 23 kolumny. Pełen ich wykaz z opisem znaczenia
poszczególnych kolumn znajduje si w oddzielnym opracowaniu powiconym
strukturze tabel SGM.
Pierwsza kolumna tabeli JNIMain.db zawiera Jednolity Numer Inwentarzowy obiektu
mostowego. Druga - Lokalny Numer Inwentarzowy. Kolejne dwie kolumny zawieraj
informacje o połoeniu obiektu na drodze, do której obiekt jest przypisany
administracyjnie. Nastpne kolumny zawieraj kody Jednostki Administracji
Strona 1
Zaawansowane szkolenie z Systemu Gospodarki Mostowej
Drogowej oraz Jednostki Administracji Pastwowej na terenie, których ley obiekt,
itd.
Jak wida na tym przykładzie pewne informacje zawarte w tej tabeli s zakodowane.
Znaczenie pewnych kodów mona wyczyta z dokumentacji SGM. Np. oto kody
Rodzajów (kolumna nr 3):
·
JNI001a most
·
JNI001b tunel
·
JNI001c przejcie podziemne
·
JNI001d przepust
·
JNI001e prom
Jednostka Administracji Drogowej zapisana za jest w postaci szecioznakowego
kodu. Znaczenie tego kodu zapisane jest za w tabeli o nazwie RdbJAD.db. W
oddzielnej tabeli jest zapisane znaczenie kodu Jednostki Administracji Pastwowej.
Tabele SGM zapisane s w formacie "Paradox 7". Jest jeden z powszechnie
uywanych standardowych formatów baz danych (innymi znanymi formatami s, np.
dBase, InterBase, Sybase, Oracle,...). Tabele te maj rozszerzenie DB.
2. O j
zyku SQL
Jzyk
SQL
("
Structure Query Language
" - "Strukturalny Jzyk Zapyta"), rozwinicie
jzyka SEQUEL, jest jzykiem słucym do budowania systemów obsługi
relacyjnych baz danych (RDBMS „
Relational DataBase Managment System”
) na
dowolnej płaszczy
nie sprz
towej
. W chwili obecnej jest on standardowym
jzykiem słucym do obsługi komercyjnych baz danych.
Programy napisane przez firm ProMat słuce do obsługi baz danych SGM
wykorzystuj jeden wspólny mechanizm dostpu do danych - "Borland Database
Engine" (BDE). Z kolei BDE umoliwia dostp do tabel baz danych za pomoc
pewnej wersji jzyka SQL. Jzyk ten jest podzbiorem standardu ANSI-92 SQL.
Jzyk SQL umoliwia zadawanie pyta do baz danych oraz pozwala na zmienianie
struktury baz danych. W opracowaniu tym omawiamy tylko ten fragment jzyka który
słuy do zadawania pyta.
Dokładny opis jzyka SQL mona znale w wielu ksikach dostpnych na rynku.
UWAGA
. Opracowanie to jest tylko wprowadzeniem do jzyka SQL.
W adnym wypadku nie zastpuje podrcznika. Wzorujc si na
podanych tutaj przykładach mona nauczy si tylko zadawania
stosunkowo prostych pyta.
W przykładach bdziemy posługiwali si tablicami:
1.
JNIMain.db
- tabela ta zawiera główne informacje o lokalizacji obiektów
mostowych.
Strona 2
Zaawansowane szkolenie z Systemu Gospodarki Mostowej
2.
MstMain.db
- tabela ta zawiera główne informacje o obiekcie, jeli jest on
mostem (a nie np. przepustem).
3.
MstPrzes.db
- tabela ta zawiera informacje o przsłach mostów.
4.
JNIDrogi.DB
- tabela ta zawiera informacje o drogach przechodzcych przez
obiekt.
Pytania napisane w jzyku SQL nazywane s
zapytaniami
.
3. Elementy j
zyka SQL
Oto najwaniejsze zasady obowizujce przy formułowaniu zapyta w jzyku SQL:
1. W kadym zapytaniu wystpuj tzw. klauzule rozpoczynajce si od słów
kluczowych (np. SELECT, FROM, WHERE...).
2. Zapytania SQL mog by zapisane w jednym lub kilku wierszach.
3. Małe i wielkie litery nie s rozróniane. Nie dotyczy to jednak wartoci pisanych
w cudzysłowach.
3.1. Proste zapytania
Najprostsze zapytanie ma posta:
SELECT *
FROM tabela
Przykład 1.
SELECT *
FROM ”JNIMain.DB”
Zostan wybrane wszystkie obiekty mostowe ( i ich wszystkie dane) zapisane
w tabeli JNIMain.DB.
Aby wywietli jedynie cz informacji z tabeli w zapytaniu naley wypisa
nazwy kolumn, które maj zosta wywietlone:
SELECT wyra
enie_1 [, wyra
enie_2, ..., wyra
enie_n]
FROM tabela [tabela_2, ..., tabela_n]
W wyraeniach moemy stosowa nazwy kolumn oraz operatory
arytmetyczne: +, -, *, /, operator konkatenacji || (łczenie napisów).
Przykład 2.
SELECT
Strona 3
Zaawansowane szkolenie z Systemu Gospodarki Mostowej
JNI,
Rodzaj,
DrogaAdm,
KmAdm
FROM ”JNIMain.DB”
Zostan wywietlone numery JNI, rodzaje obiektów, numery dróg i kilometra
wszystkich obiektów mostowych zapisanych w tabeli JNIMain.DB.
Jedn z zalet zapyta SQL jest moliwo nakładania warunków na dane
zwracane w wyniku zapytania. Podstawowym mechanizmem stosowanym dla
narzucania ogranicze na rekordy zwracane w wyniku zapyta jest klauzula
WHERE.
SELECT wyra
enie_1 [, wyra
enie_2, ..., wyra
enie_n]
FROM relacja
WHERE warunek_1 [AND/OR warunek_2 ... AND/OR warunek_n]
W warunkach wystpujcych w klauzuli WHERE stosuje si zwykle operatory
arytmetyczne:
Symbol
Znaczenia
=
równo
<>
nierówno
>
wikszo
>= wikszo lub równo
<
mniejszo
<= mniejszo lub równo
oraz operatory jzyka SQL
Operator Znaczenie
between ... and ... warto z przedziału
like
warto zgodna z wzorcem
is null
warto pusta - null
in
warto w zbiorze danych
Kady z operatorów SQL moe by poprzedzony negacj
not
, która zmienia
jego logiczne znaczenie. Warunki złoone zbudowane s z warunków prostych
powizanych spójnikami logicznymi AND i OR.
Przykład 3.
SELECT *
FROM ”JNIMain.DB”
Strona 4
Zaawansowane szkolenie z Systemu Gospodarki Mostowej
WHERE Rodzaj = ‘JNI001a’
Zostan wywietlone wszystkie informacje o obiektach, które s mostami.
Przypomnijmy, e w tabeli „JNIMain.db” kod JNI001a oznacza most, JNI001b
-tunel, JNI001c- przejcie podziemne, JNI001d– przepust oraz JNI001e-prom.
Wyniki zapyta generowane s w postaci tabel, gdzie poszczególne wiersze
reprezentuj kolejne obiekty uzyskiwane w wyniku zapytania. Kolumny w tabeli
stanowicej wynik zapytania opatrzone s nagłówkiem, który jest opisem wyraenia,
którego wynik pojawia si w kolejnych wierszach w tej kolumnie. Niekiedy taka
posta nie jest najbardziej eleganckim i czytelnym sposobem na nazwanie kolumny
pojawiajcego si wydruku i czsto dla kolumny w tabeli nadajemy osobny alias
(nazw zastpcz), który wystpuje jako nagłówek kolumny wyników zapytania.
SELECT artybut_1 AS Atrybut_Jeden, atrybut_2 AS Atrybut_Dwa ...
FROM relacja
[WHERE warunki]
Przykład 4.
SELECT
JNI,
Rodzaj AS Rodzaj_Obiektu,
DrogaAdm AS DROGA_NR,
KmAdm AS Km
FROM ”JNIMain.DB”
Zostan wywietlone numery JNI, numery dróg i kilometra wszystkich
obiektów mostowych zapisanych w tabeli JNIMain.DB. Kolumny zostan nazwane (w
kolejnoci) JNI, Rodzaj_Obiektu, DROGA_NR, Km.
Celem unikania wielokrotnych wystpie identycznych wierszy w tabeli stanowicej
wynik zapytania mona zastosowa klauzule DISTINCT.
SELECT DISTINCT atrybut
FROM tabela
[WHERE warunek]
Przykład 5.
SELECT
DISTINCT(JAD)
FROM ”JNIMAIN.DB”
WHERE Rodzaj = JNI001e;
Strona 5
Plik z chomika:
tryniti
Inne pliki z tego folderu:
SQL.doc
(281 KB)
plsql_fsql.ppt
(62 KB)
SQL10G.pdf
(780 KB)
sql2.pdf
(224 KB)
plsql.pdf
(580 KB)
Inne foldery tego chomika:
algebra liniowa
algorytmy i struktury danych
analiza matematyczna
angol
architektura komputerow
Zgłoś jeśli
naruszono regulamin