C/C++ / CGI / Sieć Novell / PHP / Java / SQL / Oracle / WebSphere MQ / WebSphere Message Broker / JavaScript / Humor / IT Quiz

Język SQL

Informacje podstawowe
Wstęp :
Instrukcje podstawowe
Data i czas
Typy danych
Funkcje agregujące :
Funkcje łańcuchowe
Funkcje numeryczne :
Klucze :
Konwersja typów :
Grupowanie :
Kopiowanie tabel :
Indeksy :
Podzapytania :
Złączenia :
Wyrażenia logiczne
Wyrażenie CASE :
Servery SQL :

Literatura


Jeden plik


Legenda

w przygotowaniu
* w trakcie tworzenia

O języku



Podstawowe instrukcje SQL

alter table
create table
delete
drop table
execute
grant
insert
open
prepare
revoke
select
update

alter table

alter table : Zmienia definicje tablicy
Składnia
ALTER TABLE nazwa tablicy
{ ADD [COLUMN] definicja kolumny }
{ ALTER [COLUMN] nazwa kolumny akcja }
{ DROP [COLUMN] nazwa kolumny RESTRICT | CASCADE }
{ ADD ograniczenia tablicy }
{ DROP CONSTTRAINT nazwa ograniczenia RESTRICT | CASCADE }
akcja

  • SET DEFAULT akcja domyślna
  • DROP DEFAULT
    Przykład
    ALTER TABLE shop ADD info varchar(125) DEFAULT 'brak'
    Patrz
    create table : tworzy tabelę
    drop table : usuwa tabele

    create table

    create table : Tworzy tabelę
    Składnia
    CREATE [ {GLOBAL | LOCAL } TEMPORARY ] TABLE nazwa tablicy {
    definicja kolumny
    [ograniczenia tablicy] }
    definicja kolumny

  • nazwa typ [rozmiar] [ograniczenia kolumny]
    [ DEFAULT wartość domyślna ]
    [ COLLATE porównanie ]
    Przykład
    CREATE TABLE shop {
    id int PRIMARY KEY,
    name varchar(40) NOT NULL,
    maxcount int DEFAULT 200

    Patrz
    alter table : zmienia definicje kulumn w tabeli
    drop table : usuwa tabele

    delete

    delete : usuwa wiersze z tabeli
    Składnia
    DELETE FROM nazwa tablicy
    { WHERE( wyrażenie }
    Przykład
    DELETE FROM shop
    WHERE maxcount<>50

    Patrz
    insert : wstawia wiersze do tabeli

    drop table

    drop table : Usuwa tablicę
    Składnia
    DROP TABLE nazwa tablicy CASCADE | RESTRICT
    Przykład
    DROP TABLE shop
    Patrz
    alter table : zmienia definicje kulumn w tabeli
    drop table : usuwa tabele

    grant

    grant : ustawia uprawnienia użytkownikowi na wykonanie określonego zadania na obiekcie
    Składnia
    GRANT uprawnienie, ... ON nazwa obiektu
    TO {użytkownik, ...} | PUBLIC
    uprawnienia

  • ALL PRIVILEGES : wszystkie
  • SELECT : czytanie wierszy z tabeli
  • DELETE : usuwanie wierszy z tabeli
  • INSERT [nazwa kolumnt, ...] : wstawianie wiersza lub wyznaczonych pól wiersza do tabeli
  • UPDATE [nazwa kolumnt, ...] : zmiana wartości wszystkich lub lub wyznaczonych pól wiersza w tabeli
    obiekty
  • TABLE : tablica
  • DOMAIN : domena
  • COLLATION : porównanie
  • CHARACTER SET : zbiór znakowy
  • TRANSLATION : translacja
    Przykład
    GRANT UPDATE ON shop TO User1
    Patrz
    revoke : zdejmuje uprawnienia do obiektu

    insert

    insert : zapisuje wiersz do tabeli
    Składnia
    INSERT INTO nazwa tablicy {
    (nazwa kolumny,...) values (wartości kolumny,...)
    Przykład
    INSERT INTO shop (name, maxcount)
    VALUES ('Sklep próbny', 400)

    Patrz
    alter table : zmienia definicje kulumn w tabeli
    drop table : usuwa tabele
    select : pobiera wiersze z tabel

    revoke

    revoke : zdejmuje uprawnienia użytkownikowi na wykonanie określonego zadania na obiekcie
    Składnia
    REVOKE { ALL PRIVILEGES} | uprawnienie, ... }
    ON obiekt
    FROM PUBLIC | {uzytkownik, ...}
    CASCADE | RESTRICT
    Przykład
    REVOKE INSERT ON shop FROM User1 CASCADE
    Patrz
    grant : ustawia uprawnienia do obiektu

    select

    select : Pobiera wiersze z tabeli
    Składnia
    SELECT [DISTINCT] * | nazwa_kolumny | nazwa_tablicy.* |
    nazwa_tablicy.nazwa_kolumny | funkcja agregująca [AS] nazwa_kolumny, ...
    FROM( nazwa tablicy, ... }
    WHERE( predykad }
    GROUP BY( nazwa_tablicy, nazwa_kolumny , ... }
    HAVING( predykad }
    ORDER BY( nazwa_kolumny[ASC | DESC], ... }
    Przykład
    SELECT name FROM shop
    WHERE maxcount=50
    ORDER BY name

    Patrz
    create table : tworzy tabelę
    insert : wstawia wiersze do tabeli

    update

    update : zmienia pola w wierszu tabeli
    Składnia
    UPDATE nazwa tablicy
    SET( nazwa kolumny={wyrażebie | NULL | DEFAULT }},..
    { WHERE( wyrażenie }
    Przykład
    UPDATE shop
    SET maxcount=300 WHERE maxcount<>50

    Patrz
    create table : tworzy tabelę
    insert : wstawia wiersze do tabeli

    Data i czas

    Język SQL udostępnia nam cztery typy danych związanych z datą i czasem. Są to: DATE, TIME, TIMESTAMP oraz INTERVAL.
    W zapytaniach możemy używać zmiennych związanych z datą i czasem oferowanych przez system bazodanowy, a są to:
    CURRENT_DATE : aktualna data
    CURRENT_TIME : aktualna godzina
    CURRENT_TIMESTAMP : aktualna data i godzina
    Na wszystkich typach danych związanych z datą możemy dokonywać wszelkich operacji dodawania lub odejmowania, wynikiem czego otrzymamy daną typu INTERVAL.
    Dodatkowo dla typu interval dozwolone są operacje mnożenia i dzielenia. W rezultacie tych operacji uzyskamy wynik również typu INTERVAL.

    Formatowanie wyników typu INTERVAL

    W skład typu INTERVAL wchodzą pola wewnętrz takie jak: YEAR, MONTH, DAY, HOUR, MINUTE oraz SECOND, co pozwala nam na określenie sposoby wyświetlania wyników zapytania. Możemy więc wymusić aby przedział czasowy był wyświetlany w postaci dni lub np. w postaci godzin i sekund.

    Przykłady


    Data - przykłady

    select * from users where expiration >= CURRENT_DATE : Zwróci wszystkie wiersze których pole expiration jest większe równe od bieżącej daty
    update users set expiration=expiration + interval '1' MONTH : Zwiększa w kazdym wierszu tabeli pole expiration o jeden miesiąc
    select CURRENT_DATE-birth_day YEAR from users : Wyświetla przedział czasowy w postać lat
    select CURRENT_DATE-birth_day YEAR TO MONTH from users : Wyświetla przedział czasowy w postać lat i miesięcy

    Typy danych

    bit (n) : pole składające się z określonej ilości bitów o stałej długości
    bit varying (n) : pole składające się maksymalnie z określonej ilości bitów
    char ( n ) : łańcuch tekstowy o stałej długości
    char varying ( n ) : łańcuch tekstowy o zmiennej długości nie większej niż n
    date : data
    decimal : liczba rzeczywista
    double : liczba rzeczywista o podwójnej precyzji
    float : liczba rzeczywista o wybranej precyzji
    integer ( int ) : liczba całkowita
    interval : przedział czasowy
    numeric (n,m) : liczba rzeczywista formatowana do określonej ilości miejsc po przecinku ( m )
    smallint : liczba całkowita o połowę krótsza od typu int
    time : godzina
    timestamp : data i godzina

    Funkcje łańcuchowe

    || - operator łączenia
    select nazwisko || ' ' || imie from osoby : Zwróci łańcuch tekstowy powstały z połączenia pola o nazwie nazwisko, spacji i pola o nazwie imie
    UPPER lub LOWER - konwersja na wielkie lub małe litery
    select * from osoby where UPPER(nazwsiko)='KOWALSKI' : Zwróci wszystkie osoby o nazwisku Kowalski niezależnie od tego jakimi literami jest ta osoba zapisana w bazie
    TRIM - obcinanie łańcucha
    TRIM (BOTH '' FROM łańcuch) : Usuwa znaki spacji z obu stron łańcucha
    TRIM (LEADING '' FROM łańcuch) : Usuwa znaki spacji na początku łańcucha
    TRIM (TRAILING '' FROM łańcuch) : Usuwa znaki spacji na końcu łańcucha
    SUBSTRING - pobranie z łańcucha źródłowego jego części
    SUBSTRING (łańcuch FROM indeks FOR ilość ) : wycina z łańcucha określoną ilość liter poczynając od litery o indeksie indeks
    select SUBSTRING (nazwisko FROM 1 FOR 1 ) from osoby : wyświetla pierwsze litery nazwiska wszystkich osób z bazy

    Wyrażenia logiczne

    Są to wyrażenia precyzujące zakres wyszukiwania wierszy w podstawowych instrukcjach SQL. Występują one po słowie kluczowym where. Są to podstawowe wyrażenia z jakimi mamy do czynienia w językach programowania ( <,>,<=,>=,=,<> ).

    Operatory logiczne
    Poza powyższymi operatorami związków mamy do czynienia z operatorami logicznymi (or, and, not). Poniżej znajduje się kilka przykładów ilustrujących te operatory.

    Wszyscy mężczyźni plus kobiety urodzone przed 2000 rokiem
    ... where plec='M' or datau<'2000-01-01'
    Wszyscy mężczyźni urodzeni przed 2000 rokiem
    ... where plec='M' and datau<'2000-01-01'
    Wszyscy nie spełniający warunek w nawiasie
    ... where not (plec='M' and datau<'2000-01-01')

    Operatory specjalne
    Wszyscy, których data urodzenia zawiera się w zadanym przedziale
    ... where datau between '1999-01-01' and '2000-01-01'
    Wszyscy, którzy urodzili się w jednym z dni podanych w nawiasie
    ... where datau in ('1998-01-01','1999-01-01','2000-01-01')
    Wszyscy, których nazwisko rozpoczyna się od Kas
    ... where nazwisko like 'Kas%'
    Wszyscy, których nazwisko kończy się na ki
    ... where nazwisko like '%ki'
    Wszyscy, których nazwisko zawiera łańcuch iński
    ... where nazwisko like '%iński%
    Wszyscy, których nazwisko rozpoczyna się od Kasińsk i po tym łańcuchu następuje najwyżej jeden znak
    ... where nazwisko like 'Kasińsk_'
    Wszyscy , którym nie przypisaliśmy w bazie daty urodzenia (to pole jest puste)
    ... where datau is null

    Operatory te możemy łączyć z operatorem logicznym NOT co spowoduje zanegowanie całego wyrażenia np:
    Wszyscy, których nazwisko nie pasuje do zadanego wzorca
    ... nazwisko not like 'Kas%'


    Literatura


    "SQL" :

    Martin Gruber ISBN 83-86718-32-3 Helion 1996


    "SQL dla każdego" :

    Jan L. Harrington ISBN 83-87102-55-5 Mikom 1998


    "Poznaj Oracle 8" :

    David Austin ISBN 83-7158-153-X Mikom 1999


    Powrót


  •   Autorem serwisu jest Marcin Kasiński
    Wszelkie prawa zastrzeżone. All rights reserved.
    powered by technology... linux eclipse java php