Podstawy języka SQL.

SQL – Structured Query Language to strukturalny język zapytań używany m. in. do tworzenia, modyfikowania, usuwania baz danych, umieszczania oraz pobierania danych z baz danych. Za pomocą odpowiednich poleceń tego języka możemy również nadawać / odbierać uprawnienia użytkowników.

Należy pamiętać, że SQL to język deklaratywny (służący do formułowania faktu dotyczącego wyniku, który chcemy otrzymać, a nie definicji ciągu poleceń dla serwera jak ten wynik otrzymać). Po samym zdefiniowaniu i wysłaniu zapytania SQL nie interesuje nas jak dane zapytanie zostanie fizycznie wykonane, my oczekujemy jedynie na jego wynik. Rolę „inteligentnego” pośrednika pełni SZBD – System Zarządzania Bazą Danych, który podejmuje decyzję np. o sposobie wykonania przekazywanych zapytań przez samą bazę danych.

Język ten aktualnie jest standardem komunikacji z serwerami relacyjnych baz danych. Aktualnie jest używany przez popularne systemy baz danych, czyli: MySQL, PostgreSQL, MS SQL Server, Oracle, DB2.

Język SQL nie służy do tworzenia programów, choć w ich kodzie często występuje np. w zakresie wykonania operacji na danych w bazie. Polega to, na wysyłaniu zapytań (query) do bazy i odebraniu / przetworzeniu zwrotnego wyniku.

Czasami spotykamy się z innymi określeniami serwera bazodanowego np. „back end”, „engine”, „silnik bazy danych”, „motor bazy danych”. SZBD przechowuje dane oraz zapewnia ich pobieranie i aktualizacje w odpowiedzi na pobierane instrukcje SQL.

Instrukcje te w obrębie zapytań szczególnie w przykładach zapisywane są drukowanymi (wielkimi) literami, jednak nie jest to obligatoryjne. Natomiast każde zapytanie SQL musimy zakończyć znakiem średnika (;).

Dane tekstowe ujmujemy w znaki pojedynczego cudzysłowu (').

Zapytania SQL dzielimy na cztery główne podzbiory:

SQL DDL (Data Definition Language – język definicji danych),

SQL DCL ( Data Control Language – język kontroli nad danymi),

SQL DML (Data Manipulation Language – język manipulacji danymi),

SQL DQL (Data Query Language – język definiowania zapytań).

 

DDL (Data Definition Language) służy do tworzenia / definiowania struktur, w których przechowujemy dane.

Przykłady zapytań DDL:

CREATE DATABASE nazwa bazy;

DROP DATABASE nazwa bazy;

CREATE TABLE nazwa tabeli (nazwa kolumny typ(długość) not null);

Możliwe atrybuty do wykorzystania przy tworzeniu tabeli:

NOT NULL – pole musi posiadać wartość, może posiadać również wartość NULL.

UNSIGNED – pole liczbowe o wartości nieujemnej.

AUTO_INCREMENT – automatyczne numerowanie dodanego rekordu.

PRIMARY KEY – Definicja klucza podstawowego tabeli. Najczęściej występuje wspólnie z opcją AUTO_INCREMENT

DROP TABLE nazwa tabeli;

TRUNCATE TABLE nazwa tabeli;

 

DCL (Data Control Language) stosujemy w przypadku nadania / odebrania uprawnień do obiektów bazodanowych.

GRANT – nadanie uprawnień do obiektu lub globalnie konkretnemu użytkownikowi.

GRANT ALL PRIVILEGES ON TEST TO PKANIA WITH GRANT OPTION;

Wydanie w/w zapytania powoduje przyznanie wszystkich możliwych uprawnień do tabeli TEST dla użytkownika PKANIA z dodatkową opcją pozwalającą mu również nadawać prawa do tej tabeli.

REVOKE – odbieranie uprawnień.

REVOKE ALL PRIVILEGES ON TEST FROM PKANIA;

 

DML (Data Manipulation Language) wykonanie operacji na danych (dodawanie, kasowanie, przeglądanie oraz dokonywanie zmian).

INSERT – umieszczenie danych w bazie,

INSERT INTO tabela (kolumna,kolumna..) VALUES (wartość,wartość,..);

Możliwa jest również składnia skrócona polecenia insert w postaci:

INSERT INTO tabela VALUES (wartość,wartość,..);

Jednakże do ogólnego stosowania zaleca się pierwszy z powyższych zapisów.

UPDATE – zmiana danych,

UPDATE tabela SET kolumna1=wartość1, kolumna_n=wartość_n WHERE kolumna=wartość;

DELETE – usunięcie danych z bazy.

DELETE FROM tabela WHERE warunek;

 

DQL (Data Query Language) to język zapytań do bazy danych.

Polecenie do wybierania danych – SELECT.

SELECT kolumna,kolumna_n,.. FROM tabela;

Sortowanie wg wartości kolumny(kolumn). Sortowanie rosnąco – słowo kluczowe ASC (ascend),  sortowanie malejąco – słowo kluczowe DESC (descend).

SELECT kolumna,kolumna_n,.. FROM tabela ORDER BY kolumna DESC

SELECT kolumna,kolumna_n,.. FROM tabela ORDER BY kolumna ASC

 

Dodanie kryteriów wyszukiwania:

SELECT kolumna,kolumna_n,.. FROM tabela WHERE kolumna='wartość';

Warunki logiczne mogą składać się z operatorów takich jak :

znak rówości (=)

negacja (!=)

znak mniejszości (<) lub (<=)

znak więkoszości (>) lub (>=)

Przewijanie do góry