Język T-SQL
Przegląd zagadnień
Charakterystyka języka SQL
Polecenia DDL
Polecenia DCL
Polecenia DML
Podsumowanie
Laboratorium
Charakterystyka języka SQL
Język SQL narodził się w latach siedemdziesiątych w laboratoriach IBM w
San Jose.
Pierwszy standard ANSI tego języka ujrzał światło dzienne w roku 1987, a
obecny noszący nazwę SQL2 (lub SQL92) w roku 1992. Obecnie trwają
prace nad kolejną wersją tego języka, ale nie zostały one jeszcze
zakończone.
Język SQL - strukturalny język zapytań - został opracowany z myślą
o relacyjnych bazach danych.
Jest on tak skonstruowany, że pozwala definiowanie, usuwanie i
manipulację danymi w relacyjnych bazach danych bez konieczności
wchodzenia w szczegóły implementacyjne i konstrukcyjne konkretnego
środowiska baz danych.
Prawie wszystkie bazy danych i SZBD wspierają język SQL, choć w jego
różnych odmianach. Istnieją bowiem różne dialekty tego języka
opracowane na potrzeby konkretnych SZBD. Jeśli jednak będziemy
posługiwać się jego wersją ANSI, to powinien on być zrozumiały dla
większości SZBD.
Charakterystyka języka SQL
•
języka definiowania danych – języka DDL,
•
języka sterowania danymi - języka DCL ,
•
języka operowania na danych - języka DML.
Polecenia DDL
Instrukcje języka DDL służą do manipulowania
bazą danych i jej obiektami.
Pozwalają na:
• tworzenie nowych obiektów,
• modyfikowanie obiektów już istniejących,
• usuwanie obiektów.
Tworzenie tabel
Przy definiowaniu tabeli należy podać jej nazwę, nazwy jej atrybutów oraz typ
danych, które atrybuty te mogą przyjmować.
Dodatkowo określa się, czy dany atrybut może przyjąć wartość NULL, czy nie.
Tworzenie tabel - Typy danych ANSI
Typ danych
ANSI
Opis
Tekstowy
CHAR(n)
tekst o długości n
VARCHAR(n)
tekst o długości co najwyżej n
Binarny
BIT(n)
ciąg bitów o długości n
BIT VARYING(n)
ciąg bitów o długości co najwyżej n
Całkowity
INT, SHORTINT
wartości całkowite
Numeryczne FLOAT,REAL
liczby zmiennopozycyjne
DECIMAL(n,d)
wartość na n pozycjach dziesiętnych
z d miejscami po przecinku
Modyfikacja tabel
Modyfikacja tabel
Najczęściej polecenie ALTER TABLE stosuje się do zmiany
schematu relacji.
Usuwanie tabeli
Polecenia DCL
Instrukcja
Znaczenie
Opis
GRANT
Nadanie
Nadaje uprawnienia
DENY
Odmowa
Odmawia
uprawnień
REVOKE
Cofnięcie
Usuwa nadane lub
cofnięte
uprawnienia
Polecenia DCL
Czym różni się odmowa uprawnień od cofnięcia
uprawnień? Chodzi o to, że mamy dwa rodzaje
uprawnień (podobnie jak w systemie Windows
XP/2000/2003) - uprawnienia pozytywne (coś można
zrobić) i negatywne (coś jest zabronione). Do
nadawania uprawnień pozytywnych służy polecenie
GRANT, zaś uprawnienia negatywne nadajemy
poleceniem DENY. Polecenie REVOKE pozwala
cofnąć uprawnienia nadane poleceniami GRANT i
DENY.
Należy zapamiętać, że uprawnienia negatywne (nadane
poleceniem DENY) nadpisują uprawnienia pozytywne
(nadane przez polecenie GRANT).
Polecenia DML
Pobieranie zestawu wyników
Operatory porównania
Operatory logiczne
Wyszukiwanie z listy wartości
Wyszukiwanie wartości nieznanych
Modyfikowanie danych
Polecenia DML
Instrukcje języka DML służą do:
pobieranie danych,
formatowania zestawu wyników,
modyfikowania danych.
Polecenia DML
Najważniejsze instrukcje języka DML
Instrukcja
Znaczenie
Opis
SELECT
Pobierz
Pobiera zestaw danych
INSERT
Wstaw
Wstawia dane do tabeli
UPDATE
Modyfikuj
Modyfikuje dane w tabeli
DELETE
Usuń
Usuwa rekordy z tabeli
Pobieranie zestawu wyników (1)
Jeśli chcemy
pobrać wszystkie
kolumny z tabeli,
to w jako listę
wyboru podajemy
gwiazdkę.
Pobieranie zestawu wyników (2)
Jeśli natomiast interesują nas tylko niektóre, z kolumn danej tabeli, to należy
po słowie SLECT wymienić nazwy tych kolumn w takiej kolejności, w jakiej
chcemy aby zostały wyświetlone.
Pobieranie zestawu wyników (3)
Możemy również ograniczyć
liczbę zwracanych wierszy, czyli
dokonać filtrowania rekordów.
Służy do tego warunek WEHRE,
który możemy umieścić w
instrukcji SELECT
Operatory porównania
Warunki wyszukiwania, które możemy
stosować po słowie WEHRE są
różnorodne i dają dużą swobodę
filtrowania rekordów. Warunki te mogą:
- korzystać z operatorów porównania,
- korzystać z porównywania ciągów,
- korzystać z operatorów logicznych,
- pobierać zakresu wartości,
- korzystać z listy wartości jako
kryterium wyszukiwania,
- pobierać wartości nieznanych.
Operatory porównania „=”
Operator porównania (=) powoduje, że
zwracane są tylko te rekordy, których
wartość w zadanej kolumnie jest równa
podanej.
Operator LIKE
Operator LIKE porównuje ciągi znaków, które powinny być do
siebie podobne. Wraz z operatorem LIKE można stosować znaki
maskujące:
% - zastępuje dowolny ciąg znaków,
_? - zastępuje jeden dowolny znak.
Operator LIKE
Operatorem negującym wynik operatora LIKE jest operator NOT LIKE. Jego
zastosowanie powoduje zwrócenie rekordów, które nie spełniają podanego
warunku podobieństwa.
Operatory logiczne
Wraz ze słowem WHERE można też stosować operatory logiczne AND i OR, co znacznie poszerza
możliwości budowania warunków filtrowania.
Wyszukiwanie z listy wartości
Do wyszukiwania wartości z
podanej listy służy słowo IN.
Wyszukiwanie wartości nieznanych
Wyszukiwanie rekordów o nieznanych lub nie podanych wartościach
ma wiele praktycznych zastosowań. Przykład takiego wyszukiwania z
zastosowaniem słowa IS NULL podano na rysunku poniżej.
Formatowanie wyników
Kiedy zestaw wyników zostanie już przefiltrowany
i zostaną wybrane odpowiednie kolumny, warto
jest go odpowiednio sformatować, aby był on
lepiej czytelny.
Formatowanie wyników może polegać na:
sortowaniu danych,
eliminowaniu duplikatów,
zmianie nazw kolumn,
zastosowaniu literałów.
Formatowanie wyników
Do sortowania wyników należy zastosować składnię ORDER BY.
Sortować możemy rosnąco (słowo kluczowe - ASC) lub malejąco
(słowo kluczowe - DESC).
Formatowanie wyników
Do eliminowania duplikatów w wynikach
służy słowo DISTINCT.
Zmiana nazw kolumn
Nazwę kolumny w zestawie wyników możemy osiągnąć bardzo
prosto stosując słowo AS w sposób, jak pokazano poniżej.
Literały
Literały służą do dodawania do zestawu wyników pewnych ciągów
znaków, jak pokazuje to poniższy przykład. Poprawia to czytelność
wyniku.
Modyfikowanie danych
Modyfikowanie danych może polegać na:
•wstawianiu wierszy,
•usuwaniu wierszy,
•aktualizowaniu wierszy.
•Wstawianie wierszy
Do wstawiania wierszy używamy polecenia INSERT.
Aktualizowanie wierszy
Klauzula WHERE określa wiersze, które
mają być zmienione.
Słowo kluczowe SET określa nowe dane.
Wartości wejściowe muszą być tego
samego typu danych, co kolumny.
Modyfikowanie danych
Do usunięcia wierszy w tabeli można zastosować dwa
polecenia: DELETE lub TRUNCATE TABLE. Nie powodują
one usunięcia schematu relacji, ale jedynie jej instancji.
Instrukcja DELETE
•
Używana do usunięcia jednego lub więcej wierszy z tabeli.
•
Zawsze należy umieszczać klauzulę WHERE.
•
Każdy usunięty wiersz jest rejestrowany w dzienniku
transakcji.
Instrukcja TRUNCATE TABLE
•
Używana do usunięcia wszystkich wierszy z tabeli.
•
Serwer SQL zachowuje strukturę tabeli i skojarzone obiekty.
•
Jedynie zwolnienie stron danych jest rejestrowane w dzienniku
transakcji.
Podsumowanie
Charakterystyka języka SQL
Polecenia DDL
Polecenia DCL
Polecenia DML
Laboratorium
Polecenia języka DDL
Polecenia języka DCL
Polecenia języka DML