Moduł 1 – Języki SQL: DDL, DCL, DML
Czym jest SQL?
SQL (Structured Query Language) to język służący do komunikacji z relacyjnymi bazami danych. Dzieli się na trzy główne kategorie poleceń.
DDL – Data Definition Language
Język definiowania struktury danych. Służy do tworzenia, modyfikowania i usuwania obiektów bazy danych (tabel, indeksów, widoków).
Główne polecenia DDL
| Polecenie | Opis | Przykład |
|---|---|---|
CREATE | Tworzy nowy obiekt | CREATE TABLE klienci (...) |
ALTER | Modyfikuje istniejący obiekt | ALTER TABLE klienci ADD COLUMN email VARCHAR(100) |
DROP | Usuwa obiekt | DROP TABLE klienci |
TRUNCATE | Usuwa wszystkie wiersze z tabeli | TRUNCATE TABLE wypozyczenia |
Przykład z bazy wypożyczalni
CREATE TABLE KLIENCI (
NR_KLIENTA CHAR(8) NOT NULL,
IMIE VARCHAR(20) NOT NULL,
NAZWISKO VARCHAR(20) NOT NULL,
NR_KARTY_KREDYT CHAR(20),
FIRMA VARCHAR(40),
ULICA VARCHAR(24) NOT NULL,
NUMER CHAR(8) NOT NULL,
MIASTO VARCHAR(24) NOT NULL,
KOD CHAR(6) NOT NULL,
NIP CHAR(12),
NR_TELEFONU CHAR(16),
PRIMARY KEY (NR_KLIENTA)
);
DCL – Data Control Language
Język kontroli dostępu do danych. Służy do zarządzania uprawnieniami użytkowników bazy danych.
Główne polecenia DCL
| Polecenie | Opis | Przykład |
|---|---|---|
GRANT | Nadaje uprawnienia | GRANT SELECT ON wypozyczalnia.* TO 'user'@'localhost' |
REVOKE | Odbiera uprawnienia | REVOKE SELECT ON wypozyczalnia.* FROM 'user'@'localhost' |
Typy uprawnień
SELECT– odczyt danychINSERT– dodawanie rekordówUPDATE– modyfikacja rekordówDELETE– usuwanie rekordówALL PRIVILEGES– wszystkie uprawnienia
Przykład
-- Tworzenie użytkownika
CREATE USER 'pracownik'@'localhost' IDENTIFIED BY 'haslo123';
-- Nadanie uprawnienia tylko do odczytu
GRANT SELECT ON wypozyczalnia.* TO 'pracownik'@'localhost';
-- Odebranie uprawnienia
REVOKE SELECT ON wypozyczalnia.* FROM 'pracownik'@'localhost';
DML – Data Manipulation Language
Język wybierania i manipulowania danymi. Służy do operacji na rekordach w tabelach.
Główne polecenia DML
| Polecenie | Opis | Przykład |
|---|---|---|
SELECT | Pobiera dane | SELECT * FROM klienci |
INSERT | Wstawia nowe rekordy | INSERT INTO klienci VALUES (...) |
UPDATE | Modyfikuje istniejące rekordy | UPDATE klienci SET miasto='GDANSK' WHERE nr_klienta='00000001' |
DELETE | Usuwa rekordy | DELETE FROM klienci WHERE nr_klienta='00000001' |
Przykłady z bazy wypożyczalni
-- SELECT – pobieranie danych
SELECT IMIE, NAZWISKO FROM KLIENCI;
-- INSERT – dodanie nowego klienta
INSERT INTO KLIENCI
VALUES ('00000021', 'ADAM', 'NOWAK', NULL, NULL,
'POLNA', '1', 'KRAKOW', '30-001', NULL, '500-100-200');
-- UPDATE – zmiana danych
UPDATE KLIENCI
SET MIASTO = 'GDANSK'
WHERE NR_KLIENTA = '00000001';
-- DELETE – usunięcie rekordu
DELETE FROM KLIENCI
WHERE NR_KLIENTA = '00000021';
Podsumowanie
SQL
├── DDL (Data Definition Language) → CREATE, ALTER, DROP, TRUNCATE
├── DCL (Data Control Language) → GRANT, REVOKE
└── DML (Data Manipulation Language)→ SELECT, INSERT, UPDATE, DELETE
Następny moduł: Typy relacji