SQL (Structured Query Language) – strukturalny język zapytań

Transkrypt

SQL (Structured Query Language) – strukturalny język zapytań
SQL (Structured Query Language) – strukturalny język zapytań używany do tworzenia,
modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych.
Typy danych:
1. Typy liczbowe
 INTEGER– liczby całkowite
 SMALLINT – mała liczba całkowita
 BIGINT – duża liczba całkowita
 REAL – liczby rzeczywiste
 DOUBLE PRECISION – liczby rzeczywiste z podwójną precyzją
 FLOAT – liczby zmiennoprzecinkowe z określoną precyzją
 NUMERIC – liczby zawierające część dziesiętną
 DECIMAL - liczby zawierające część dziesiętną
2. Typy daty i czasu
 DATE - data
 TIME - czas
 TIMESTAMP – datę i czas
 DATETIME - datę i czas
 SMALLDATETIME - krótka data i czas
 TIMESTAMP - datę i czas
3. Typy łańcuchowe
 CHARACTER
 CHARACTER VARYING
 CHAR – skrócona nazwa od CHARACTER
 VARCHAR – skrócona nazwa od CHARACTER VARYING
4. Typy specjalne
 NULL – wartość pusta
Tworzenie tabel:
CREATE TABLE nazwa_tabeli
(
Nazwa_kolumny_1 typ_kolumny_1 (atrybut),
Nazwa_kolumny_2 typ_kolumny_2 (atrybut),
…
Nazwa_kolumny_n typ_kolumny_n (atrybut)
)
Usuwanie tabel:
DROP TABLE nazwa_tabeli
Usuwanie danych z tabel:
DELETE FROM nazwa_tabeli
UWAGA:
Współczesne systemy bazodanowe oferują z reguły dużą
dowolność w nazewnictwie tabel oraz kolumn, jednak
każdy z nich wprowadza pewne ograniczenia, dlatego też
w celu zapewnienia maksymalnej przenośności kodu
przyjmujemy założenie, że nazwy te będą pisane małymi
literami alfabetu łacińskiego oraz nie będą zawierały
znaków spacji.
Umieszczanie danych w tabeli:
INSERT INTO nazwa_tabeli (kolumna1, kolumna2, …, kolumnaN)
VALUES (wartość1, wartość2, …, wartośćN)
Wprowadzenie wielu wierszy na raz:
INSERT INTO nazwa_tabeli (kolumna1, kolumna2, …, kolumnaN)
VALUES
(wartość1A, wartość2A, …, wartośćNA),
(wartość1B, wartość2B, …, wartośćNB),
…
(wartość1N, wartość2N, …, wartośćNN)
Wyświetlanie zawartości całej tabeli:
SELECT * FROM nazwa_tabeli;
Pobieranie danych z tabeli:
SELECT kolumna1, kolumna2, …, kolumnaN
FROM nazwa_tabeli
WHER warunek
ORDER BY kolumna1, kolumna2, …, kolumnaN
Przydatne do SELECT:
 nazwa_kolumny AS alias – zamiana nazwy kolumn w wyniku zapytania
 ORDER BY – sortowanie w porządku alfabetycznym rosnąco ASC, lub malejąco DESC
 WHERE - warunek
Operatory do WHERE:
= - równe np.: nazwisko = ‘Kowalski’
<> - rożny
!= - różny
< - mniejszy
> - większy
<= - mniejszy równy
>= - większy równy
IS NULL – zwraca jeśli jest kolumna pusta
IS NOT NULL – zwraca wartość jeśli nie jest pusta
BETWEEN n AND m – zwraca wartość pomiędzy n a m
NOT BETWEEN n AND m – zwraca wartość z lewej strony od n i prawej od m
IN( ) – zwraca wartość jeśli jest równa wymienionym w nawiasie wartością
NOT IN () – zwraca wartość inną niż wymienione w nawiasie
AND - Zwraca gdy oba argumenty są prawdziwe
OR – zwraca wartość gdy jeden z argumentów jest prawdziwy
NOT – zmienia wartość argumentu na przeciwną
Zadanie 1:



Utwórz tabelę o nazwie klient zawierająca dwie kolumny: pierwszą o nazwie id, typu
INTEGER, druga o nazwie nazwa, typu VARCHAR (20)
Dodaj do tabeli 4 rekordy.
Wyświetl wszystkie rekordy z tabeli
Zadanie 2:



Utwórz tabelę o nazwie wartosc zawierająca dwie kolumny: pierwszą o nazwie id,
typu INTEGER, druga o nazwie nazwa, przechowującą wartości rzeczywiste
podwójnej precyzji.
Dodaj do tabeli 4 rekordy.
Wyświetl wszystkie rekordy z tabeli
Zadanie 3:



Utwórz tabelę o nazwie test zawierająca kolumnę o nazwie wartosc, przechowującą
wartości z separatorem dziesiętnym, z szerokością wyświetlania określoną na 6 cyfr
znaczących z trzema miejscami po przecinku. (DECIMAL(6,3))
Dodaj do tabeli 4 rekordy.
Wyświetl wszystkie rekordy z tabeli
Zadanie 4:



Utwórz tabelę o nazwie data zawierająca kolumnę o nazwie dataiczas,
przechowującą wartości określające jednocześnie datę i czas.
Dodaj do tabeli 4 rekordy.
Wyświetl wszystkie rekordy z tabeli
Zadanie 5:



Utwórz tabelę zawierająca następujące kolumny: id typu INTEGER, imię typu
VARCHAR i nazwisko typu VARCHAR. Określ długość typów łańcuchowych.
Dodaj do tabeli 4 rekordy.
Wyświetl wszystkie rekordy z tabeli
Zadanie 6:





Utwórz tabelę zawierająca następujące kolumny: id typu INTEGER, imię typu
VARCHAR i nazwisko typu VARCHAR, wiek typu INTEGER. Określ długość
typów łańcuchowych.
Dodaj do tabeli 4 rekordy.
Wpisz do tabeli 5 rekord pomijając wiek
Wpisz do tabeli 6 rekord pomijając imię i nazwisko
Wyświetl wszystkie rekordy z tabeli
Zadanie 7:

















Utwórz tabelę zawierająca następujące kolumny: id typu INTEGER, imię typu
VARCHAR i nazwisko typu VARCHAR, placa typu DECIMAL(7,2), stanowisko
typu VARCHAR oraz PESEL typu CHAR(11) .Określ długość typów
łańcuchowych.
Dodaj do tabeli 10 rekordów:
o 2 razy użyj imienia Adam
o 3 razy użyj imienia Kamil
o 4 x powtórz nazwisko Kowalski
o W płacy wpisz wartości 1500, 3000, 1600, 3500, 800 –reszta dowolna
o W stanowisko wpisz wartości Kierownik, sprzedawca, asystent, Kierownik –
reszta dowolna
o W PESEL pozostaw dwie opcje nie wpisane NULL
Wyświetl wszystkie rekordy z tabeli
Pobierz z tabeli dane o imionach nazwiskach i stanowiskach.
Pobierz z tabeli dane o imionach nazwiskach i płacy
Pobierz z tabeli dane o imionach nazwiskach i płacy tak aby miała nazwę
wynagrodzenie.
Wyświetl wszystkie rekordy z tabeli posortowane malejąco wg nazwiska
Wyświetl wszystkie rekordy z tabeli posortowane rosnącą wg imienia
Wyświetl wszystkie rekordy z tabeli posortowane względem kolumny nazwisko
rosnąco oraz płaca w porządku malejącym
Wyświetl wszystkie rekordy z tabeli dla których nazwisko = „Kowalski”
Wyświetl wszystkie rekordy z tabeli dla których płaca jest większa niż 1600
Wyświetl wszystkie rekordy z tabeli dla których płaca jest mniejsza niż 3000
Wyświetl wszystkie rekordy z tabeli dla których ID jest większe od 3 i mniejsze od 6
Wyświetl wszystkie rekordy z tabeli dla których płaca zawiera się między 1500 a 3000
Wyświetl wszystkie rekordy z tabeli dla których Id jest równe 3, 5, 7
Wyświetl wszystkie rekordy z tabeli dla których PESEL jest pusty
Wyświetl wszystkie rekordy z tabeli dla których płaca jest większa niż 1500 oraz
stanowisko jest różne od „kierownika”