Wprowadzenie

SQL definiuje unikalny zestaw reguł i wytycznych, które nazywamy składnią języka. W tym wpisie wymienie wszystkie podstawowe zapytania, która możemy generować przy wykorzystaniu SQL. Pozwolą one na szybkie rozpoczęcie pracy z bazami danych. W tej części wymienię zapytania wraz z jednym zdaniem opisu a następnie każdemu z nich poświęcimy osobną sekcję – celem dokładnej analizy zapytania.

Wszystkie polecenia w języku zaczynają się od słów kluczowych a kończą średnikiem. Do najpopularniejszy słów kluczowych zaliczamy:

  • SELECT
  • INSERT
  • UPDATE
  • DELETE
  • ALTER
  • DROP
  • CREATE

Warto wiedzieć, że SQL jest niewrażliwy na wielkość liter. Instrukcja SELECT ma dokładnie takie samo znaczenie jak select.

Istnieją jednak wytyczne poprawnego formatowania zapytań, które jednocześnie poprawiają czytelność. Słowa kluczowe zwykle piszemy DUZYMI LITERAMI a nazwy tabel czy kolumn Z dużej litery. W swojej karierze programistycznej spotkacie się jednak z wieloma innymi podejściami. Zanim przejdziemy dalej spójrzymy na przykładowe zapytanie napisane zgodnie z wytycznymi:

SELECT ProductID, Name, Size, StandardCost FROM Production.Product
WHERE StandardCost < 50;

SELECT

Instrukcja służy do pobierania danych z bazy danych:

SELECT kolumna1, kolumna2....kolumnaN
FROM   nazwa_tabeli;


WHERE, AND, OR

Instrukcja służy do pobierania danych z bazy danych wraz z zawężonymi kryteriami:

SELECT kolumna1, kolumna2....kolumnaN
FROM   nazwa_tabeli;
WHERE warunek (i/lub warunki)


ORDER BY, GROUP BY

Instrukcja ORDER BY pozwala na posortowanie zwracanych wyników:

SELECT kolumna1, kolumna2....kolumnaN
FROM   nazwa_tabeli;
WHERE warunek
ORDER BY nazwa_kolumny (ASC/DSC)
Instrukcja GROUP BY pozwala na grupowanie identycznych danych:
SELECT SUM(nazwa_kolumny)(SUM/COUNT/AVG)
FROM   nazwa_tabeli;
WHERE warunek
GROUP BY nazwa_kolumny


LIKE, HAVING, TOP

Instrukcja LIKE pozwala na porównanie zwracanych wartości przy użyciu operatorów wieloznacznych:

SELECT kolumna1, kolumna2....kolumnaN
FROM   nazwa_tabeli;
WHERE nazwa_kolumny Like ‘xxxxx%’ (‘xxxxx%’, ‘%xxxxx%’, itd.)
Instrukcja HAVING pozwala na filtrowanie danych zwracanych w wynikach zapytania:
SELECT kolumna1, kolumna2....kolumnaN
FROM   nazwa_tabeli
GROUP BY kolumna2
HAVING COUNT(kolumna2) > 5
Instrukcja TOP pozwala na pobranie określonej liczby rekordów:
SELECT TOP 5 * FROM nazwa_tabeli


DISTINCT

Instrukcja DISTINCT służy do wyeliminowania duplikatów rekordów i pobierania jedynie unikalnych wartości:

SELECT DISTINCT kolumna1, kolumna2....kolumnaN
FROM   nazwa_tabeli;


INSERT

Instrukcja INSERT służy do dodawania nowych rekordów do bazy danych:

INSERT INTO nazwa_tabeli(kolumna1, kolumna2, ...kolumnaN)
VALUES (wartosc1, wartosc2, ... wartoscN);


UPDATE

Instrukcja UPDATE służy do aktualizowania już istniejących rekordów:

UPDATE nazwa_tabeli
SET kolumna1 = wartosc1, kolumna2 = wartosc2, ...kolumnaN = wartoscN
WHERE warunek;


DELETE

Instrukcja DELETE pozwala na usunięcie rekordu/rekordów:

DELETE FROM nazwa_tabeli
WHERE warunek // warto pamiętać o warunku aby nie usunąć wszystkich wierszy z tabeli


CREATE, ALTER, DROP

Instrukcja CREATE DATABASE pozwala na tworzenie nowej bazy danych:

CREATE DATABASE nazwa_bazy_danych
Instrukcja CREATE TABLE pozwala na dodanie nowej tabeli:
CREATE TABLE nazwa_tabeli(
Kolumna1 typ_kolumny,
Kolumna2 typ_kolumny,
... ...
KolumnaN typ_kolumny,
PRIMARY KEY (kolumna lub kilka kolumn celem utworzenia klucza kompozytowego));
Instrukcja ALTER pozwala na modyfikację istniejącej tabeli:
ALTER TABLE nazwa_tabeli
ADD nazwa_kolumny typ_kolumny;
Instrukcja DROP TABLE pozwala na usunięcie całej tabeli:
DROP TABLE nazwa_tabeli;
Instrukcja DROP DATABASE pozwala na usunięcie całej bazy danych:
DROP DATABASE nazwa_bazy_danych;


Podsumowanie

W kolejnych wpisach będziemy bazować na istniejącej i ogólnodostępnej bazie danych zwanej AdventureWorks. Możecie ją pobrać z tej lokalizacji: baza danych AdventureWorks.

Ukończenie tego wpisu jest dokonałym momentem na pobranie tej bazy danych oraz przeprowadzenie własnych eksperymentów z powyższymi zapytaniami. Zanim jednak przejdziemy do szczegółowego ich omówienia musimy jeszcze poruszyć dwa istotne tematy.

Pierwszy z nich to typy danych z którymi spotkamy się tworząc nowe tabele. Drugi temat dotyka operatorów używanych w języku SQL.