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”