1. Wprowadzenie do SQL
Structured Query Language (SQL) to język zapytań służący do zarządzania bazami danych. SQL pozwala na tworzenie, modyfikowanie oraz pobieranie danych z baz danych. Jest standardem w relacyjnych systemach zarządzania bazami danych (RDBMS) i działa w systemach takich jak MySQL, PostgreSQL, Microsoft SQL Server, Oracle czy SQLite.
SQL składa się z kilku podgrup języka, które określają różne aspekty operacji na danych i strukturze bazy. Każda podgrupa odpowiada za konkretne funkcje, takie jak manipulacja danymi, kontrola dostępu czy definiowanie struktury tabel.
2. Podgrupy SQL
SQL można podzielić na pięć głównych podgrup:
- DDL (Data Definition Language) – Język Definicji Danych
- DML (Data Manipulation Language) – Język Manipulacji Danymi
- DQL (Data Query Language) – Język Zapytania Danych
- TCL (Transaction Control Language) – Język Kontroli Transakcji
- DCL (Data Control Language) – Język Kontroli Dostępu
2.1. DDL (Data Definition Language) – Język Definicji Danych
DDL to zestaw poleceń służących do definiowania i zarządzania strukturą bazy danych, czyli tabelami, indeksami, widokami oraz schematami. Za pomocą DDL można tworzyć, modyfikować i usuwać elementy bazy danych.
🔹 Najważniejsze polecenia DDL:
CREATE
– tworzenie obiektów (np. tabel, widoków, indeksów)ALTER
– modyfikowanie struktury istniejących tabelDROP
– usuwanie obiektów bazy danychTRUNCATE
– szybkie usunięcie wszystkich rekordów w tabeli, bez możliwości przywrócenia
💡 Przykład:
CREATE TABLE Klienci (
ID INT PRIMARY KEY,
Imie VARCHAR(50),
Nazwisko VARCHAR(50),
Email VARCHAR(100)
);
To zapytanie tworzy tabelę Klienci
z czterema kolumnami.
2.2. DML (Data Manipulation Language) – Język Manipulacji Danymi
DML zawiera polecenia pozwalające na dodawanie, modyfikowanie i usuwanie danych w tabelach. DML wpływa na zawartość bazy, ale nie zmienia jej struktury.
🔹 Najważniejsze polecenia DML:
INSERT
– dodawanie nowych rekordówUPDATE
– modyfikowanie istniejących danychDELETE
– usuwanie danych
💡 Przykład:
INSERT INTO Klienci (ID, Imie, Nazwisko, Email)
VALUES (1, 'Jan', 'Kowalski', 'jan.kowalski@example.com');
To zapytanie dodaje nowego klienta do tabeli Klienci
.
2.3. DQL (Data Query Language) – Język Zapytania Danych
DQL pozwala na pobieranie danych z tabel i wyświetlanie wyników. W SQL istnieje jedno podstawowe polecenie DQL – SELECT
, które pozwala na wyszukiwanie i filtrowanie danych według określonych warunków.
🔹 Najważniejsze polecenie DQL:
SELECT
– pobieranie danych z tabel
💡 Przykład:
SELECT Imie, Nazwisko FROM Klienci WHERE ID = 1;
To zapytanie pobiera imię i nazwisko klienta o ID = 1.
2.4. TCL (Transaction Control Language) – Język Kontroli Transakcji
TCL zawiera polecenia pozwalające zarządzać transakcjami w bazie danych. Transakcja to zbiór operacji wykonywanych w jednym logicznym bloku, który można zatwierdzić lub anulować.
🔹 Najważniejsze polecenia TCL:
COMMIT
– zatwierdzenie transakcji (zmiany stają się trwałe)ROLLBACK
– cofnięcie transakcji (anulowanie wprowadzonych zmian)SAVEPOINT
– tworzenie punktu kontrolnego w transakcji
💡 Przykład:
BEGIN TRANSACTION;
UPDATE Klienci SET Email = 'nowy.email@example.com' WHERE ID = 1;
ROLLBACK; -- Cofnięcie zmian
To zapytanie najpierw rozpoczyna transakcję, zmienia e-mail klienta, ale następnie cofa zmiany przy użyciu ROLLBACK
.
2.5. DCL (Data Control Language) – Język Kontroli Dostępu
DCL służy do zarządzania uprawnieniami użytkowników i kontrolowania dostępu do danych w bazie.
🔹 Najważniejsze polecenia DCL:
GRANT
– przyznanie uprawnień użytkownikowiREVOKE
– cofnięcie nadanych uprawnień
💡 Przykład:
GRANT SELECT, INSERT ON Klienci TO Uzytkownik1;
To zapytanie pozwala użytkownikowi Uzytkownik1
odczytywać i dodawać dane do tabeli Klienci
.
3. Podsumowanie
- DDL – zarządza strukturą bazy danych (
CREATE
,ALTER
,DROP
,TRUNCATE
). - DML – służy do manipulacji danymi (
INSERT
,UPDATE
,DELETE
). - DQL – odpowiada za pobieranie danych (
SELECT
). - TCL – zarządza transakcjami (
COMMIT
,ROLLBACK
,SAVEPOINT
). - DCL – kontroluje uprawnienia użytkowników (
GRANT
,REVOKE
).
Język SQL jest wszechstronny i pozwala zarówno na zarządzanie strukturą bazy, jak i na manipulację danymi. W kolejnych lekcjach zagłębimy się w szczegóły poszczególnych grup i nauczymy się, jak praktycznie wykorzystywać SQL w bazach danych. 🚀