Przegląd podstawowej składni języka SQL


Główna forma zapytania SELECT
Distinc oznacza nie powtarzające się wiersze.

SELECT [DISTINC] nazwy(a)_kolumny /*
FROM nazwa_tabeli ;

Selekcja wierszy z tabeli z warunkiem

SELECT [DISTINC] nazwy(a)_kolumny

FROM nazwa_tabeli

WHERE nazwa_kolumny operator_porównania wartoć;

Uporządkowanie wierszy

SELECT [DISTINC] nazwy(a)_kolumny /*

FROM nazwa_tabeli

ORDER BY nazwy(a)_kolumn(y) / numer(y)_kolumn(y) [ASC/DESC-rosn±co/malejąco] ;

Operatory porównania

= równe
< mniejsze niż
!= nie równe
<= mniejsze niż lub równe
> większe niż
>= większe niż lub równe

Warunek iloczynowy (AND)

SELECT nazwy(a)_kolumn(y)

FROM nazwa_tabeli

WHERE warunek AND warunek ;

Alternatywny warunek zapytania

SELECT nazwy(a)_kolumn(y)

FROM nazwa_tabeli

WHERE warunek OR warunek ;

Wyszukiwania zakresowe (BETWEEN)

SELECT nazwy(a)_kolumn(y)

FROM nazwa_tabeli

WHERE nazwa_kolumny

[NOT] BETWEEN warto¶ć_1 AND warto¶ć_2 ;

SELECT nazwy(a)_kolumn(y)

FROM nazwa_tabeli

WHERE wartoć

[NOT] BETWEEN nazwa_kolumny_1 AND nazwa_kolumny_2

Poszukiwanie wzorców znakowych (LIKE)

SELECT nazwy(a)_kolumn(y)

FROM nazwa_tabeli

WHERE nazwa_kolumny

[NOT] LIKE "napis" ;

Wyszukiwanie wartości NULL

SELECT nazwy(a)_kolumn(y)

FROM nazwa_tabeli

WHERE nazwa_kolumny IS [NOT] NULL ;

Operatory porównania zbioru (IN)

SELECT nazwy(a)_kolumn(y)

FROM nazwa_tabeli

WHERE nazwa_kolumny

[NOT] IN (wartoć_1, wartoć_2, .....) ;

Funkcje wbudowane

SELECT funkcja_wbudowana [DISTINCT] nazwa_kolumny

FROM nazwa_tabeli

[WHERE warunek] ;

Funkcje wbudowane w SQL

AVG
SUM
MIN
MAX
COUNT (może być użyta razem z *

Obliczenia

SELECT nazwy(a)_kolumn(y), wyrażenie arytmetyczne

FROM nazwa_tabeli

[WHERE warunek]

[ORDER BY nazwy(a)_kolumn(y) / *] ;

Operatory arytmetyczne

+ dodawanie
- odejmowanie
* mnożenie
/ dzielenie

Podzapytania
Zapytanie główne:

 SELECT nazwy(a)_kolumn(y)

 FROM nazwa_tabeli

WHERE nazwa_kolumny

operator_porównania / operator_porównania zbioru

pod zapytanie :

(SELECT nazwa_kolumny

FROM nazwa_tabeli

[WHERE warunek] ) ;

Grupowanie

SELECT nazwy(a)_kolumn(y), funkcja_wbudowana(argument)

FROM nazwa_tabeli

[WHERE warunek]

GROUP BY nazwy(a)_kolumn(y)

[HAVING warunek]

[ORDER BY nazwy(a)_kolumny / numer(y)_kolumn(y) [ASC/DESC]] ;

Złączanie tabel

SELECT nazwy(a)_kolumn(y)

FROM nazwa_tabeli, nazwa_tabeli [,nazwa_tabeli, .....]

WHERE warunek_zł±czenia

[AND / OR warunek]

[ORDER BY nazwy(a)_kolumny / numer(y)_kolumn(y)] ;

Operowanie danymi
Wstawianie wierszy do tabeli

INSERT INTO nazwa_tabeli

[(nazwa_kolumny_1, nazwa_kolumny_2, ....)]

VALUES (wartoć_1, wartoć_2, ...);
INSERT INTO nazwa_tabeli

[(nazwa_kolumny_1, nazwa_kolumny_2, ....)]

VALUES (wartoć_1, wartoć_2, ...)

SELECT nazwy(a)_kolumn(y)

FROM nazwa_tabeli

WHERE warunek ;

INSERT INTO Klienci
VALUES (1,’Piotr’,’Kowalski’,’Aktualny’,'(032)255-45-98′); >

INSERT INTO Klienci (Imie,Nazwisko)
  SELECT Imie,Nazwisko
  FROM Klienci2
  WHERE ID_Klienta >500;

UPDATE nazwa_tabeli / nazwa_perspektywy

SET nazwa_kolumny_1=wartoć / wyrażenie_arytmetyczne,

..........

nazwa_kolumny_n=wartoć / wyrażenie_arytmetyczne

[WHERE warunek];

UPDATE Klienci
  SET ID_Klienta =
  (SELECT ID_Klienta FROM Klienci,Adresy
  WHERE Klienci.ID_Klienta=Adresy.ID_Klienta
  AND Adres=’Katawice’);>
Kasowanie wierszy z tabeli

DELETE FROM nazwa_tabeli

[WHERE warunek] ;

Definiowanie danych, tworzenie tablic

CREATE TABLE nazwa_tabeli

(nazwa_kolumny_1 typ_danych [NOT NULL]

nazwa_kolumny_2 typ_danych [NOT NULL]

...........

nazwa_kolumny_n typ_danych [NOT NULL] ;

CREATE TABLE Klienci
(ID_Klienta Number(4) PRIMARY KEY,
  Imie Varchar2(20) NOT NULL,
Nazwisko Varchar2(20) NOT NULL,
  Status Varchar2(10) DEFAULT ‚Aktualny’);

CREATE TABLE Nieaktualne
AS SELECT * FROM Klienci
  WHERE Status != ‚Aktualny';
Definiowanie danych, zmiana tablic

ALTER TABLE nazwa_tabeli
ADD nazwa_kloumny typ_danych;
 ALTER TABLE Klienci
  ADD (Telefon Varchar2(10));


DROP TABLE nazwa_tabeli ;

Definiowanie danych, tworzenie indeksu

CREATE [UNIQUE] INDEX nazwa_indeksu

ON nazwa_tabeli (nazwy(a)_kolumny [ASC/DESC]);

Definiowanie danych, usuwanie indeksu

DROP INDEX (nazwa_indeksu);

Definiowanie danych, tworzenie synonimu

CREATE SYNONYM nazwa_synonimu

FOR nazwa_tabeli / nazwa_perspektywy;

Definiowanie danych, usuwanie synonimu

DROP SYNONYM nazwa_synonimu;

Definiowanie danych, tworzenie perspektywy

CREATE VIEW nazwa_perspektywy

AS instrukcja_zapytania_w_SQL ;

Definiowanie danych, usuwanie perspektywy

DROP VIEW nazwa_perspektywy;

Administrowanie danymi
Przyznanie uprawnienia:

GRANT ALL / SELECT / UPDATE / INSERT / DELETE / INDEX / ALTER

dla obiektu:

ON nazwy(a)_tabel(i) / nazwa_perspektyw(y)

dla użytkownika:

TO nazwy(a)_użytkowników(a);

Usunięcie uprawnień

REVOKE ALL / SELECT / UPDATE / INSERT / DELETE / INDEX / ALTER

ON nazwy(a)_tabel(i) / nazwa_perspektyw(y)

TO nazwy(a)_użytkowników(a);
źródło http://figaro.ae.katowice.pl/~roznicki/sql.htm