Przejdź do głównej zawartości

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

PolecenieOpisPrzykład
CREATETworzy nowy obiektCREATE TABLE klienci (...)
ALTERModyfikuje istniejący obiektALTER TABLE klienci ADD COLUMN email VARCHAR(100)
DROPUsuwa obiektDROP TABLE klienci
TRUNCATEUsuwa wszystkie wiersze z tabeliTRUNCATE 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

PolecenieOpisPrzykład
GRANTNadaje uprawnieniaGRANT SELECT ON wypozyczalnia.* TO 'user'@'localhost'
REVOKEOdbiera uprawnieniaREVOKE SELECT ON wypozyczalnia.* FROM 'user'@'localhost'

Typy uprawnień

  • SELECT – odczyt danych
  • INSERT – dodawanie rekordów
  • UPDATE – modyfikacja rekordów
  • DELETE – usuwanie rekordów
  • ALL 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

PolecenieOpisPrzykład
SELECTPobiera daneSELECT * FROM klienci
INSERTWstawia nowe rekordyINSERT INTO klienci VALUES (...)
UPDATEModyfikuje istniejące rekordyUPDATE klienci SET miasto='GDANSK' WHERE nr_klienta='00000001'
DELETEUsuwa rekordyDELETE 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