Przejdź do treści

Centrum Kształcenia Zawodowego i Ustawicznego w Mrągowie

Kategorie SQL

poniedziałek,

Kategorie SQL

Język SQL (Structured Query Language) jest standardem w zarządzaniu bazami danych relacyjnymi. Został pierwotnie rozwinięty w latach siedemdziesiątych dwudziestego wieku w IBM przez grupę naukowców, w tym Donalda D. Chamberlina i Raymonda F. Boyce'a, na podstawie wcześniejszych prac Edgara F. Codda na temat modelu relacyjnego baz danych. Pierwsza komercyjna implementacja SQL pojawiła się w produkcie Oracle w końcu lat siedemdziesiątych. Od tamtej pory SQL ewoluował i był rozwijany przez wiele organizacji, w tym ANSI (American National Standards Institute) i ISO (International Organization for Standardization), które współpracują nad jego standaryzacją.

Kategorie SQL

Instrukcje języka SQL można podzielić na kilka kategorii.

DQL (Data Querying Language)

Zapytania pozwalają na pobieranie danych z baz danych. Najczęściej używanym zapytaniem jest SELECT, które umożliwia wybór określonych danych z jednej lub wielu tabel. Pomysł języka zapytań został rozwinięty przez naukowców z IBM, takich jak Donald D. Chamberlin i Raymond F. Boyce, w latach siedemdziesiątych dwudziestego wieku.

DML (Data Manipulation Language)

DML dotyczy manipulacji i zarządzania danymi. Obejmuje instrukcje takie jak INSERT (dodawanie danych), UPDATE (aktualizacja danych) i DELETE (usuwanie danych). Te operacje były częścią oryginalnej koncepcji SQL stworzonej przez Chamberlina i Boyce'a w IBM.

DDL (Data Definition Language)

DDL umożliwia tworzenie, modyfikowanie i usuwanie struktur bazy danych, takich jak tabele. Zawiera polecenia takie jak CREATE, ALTERDROP. Jako część systemu zarządzania bazą danych, DDL również wywodzi się z prac Chamberlina i Boyce'a.

DCL (Data Control Language)

DCL jest używany do nadawania i odbierania uprawnień dostępu do bazy danych. Obejmuje polecenia takie jak GRANTREVOKE. Kontrola dostępu była rozwijana w ramach ewolucji SQL, a więc konkretni twórcy DCL nie są tak wyraźnie zdefiniowani, jak w przypadku innych elementów SQL.

TCL (Transaction Control Language)

TCL umożliwia zarządzanie transakcjami w bazie danych, zapewniając spójność danych. Zawiera polecenia takie jak COMMIT, ROLLBACKSAVEPOINT. Podobnie jak DCL, TCL jest wynikiem dalszego rozwoju SQL, a jego początki są związane z ogólnym rozwojem systemów zarządzania bazami danych.

Przykłady

Kategoria języka SQL (Structured Query Language) obejmuje różne aspekty i funkcje tego języka, używanego do zarządzania i manipulowania bazami danych. Prezentowane przykłady pokazują podstawowe operacje, które można wykonywać w SQL, obejmując szeroki zakres funkcjonalności od zapytań po kontrolę transakcji.

DQL (Data Querying Language)

SELECT: Wybieranie danych z bazy danych

SELECT imie, nazwisko FROM pracownicy;

JOIN: Łączenie tabel

SELECT pracownicy.imie, dzialy.nazwa_dzialu FROM pracownicy
JOIN dzialy ON pracownicy.id_dzialu = dzialy.id;

DML (Data Manipulation Language)

INSERT: Dodawanie nowych wierszy do tabeli

INSERT INTO pracownicy (imie, nazwisko) VALUES ('Jan', 'Kowalski');

UPDATE: Aktualizacja istniejących danych

UPDATE pracownicy SET nazwisko = 'Nowak' WHERE imie = 'Jan';

DELETE: Usuwanie danych z tabeli.

DELETE FROM pracownicy WHERE imie = 'Jan';

DDL (Data Definition Language)

CREATE: Tworzenie nowych tabel lub baz danych

CREATE TABLE pracownicy (id INT, imie VARCHAR(100), nazwisko VARCHAR(100));

ALTER: Modyfikacja istniejącej struktury tabeli

ALTER TABLE pracownicy ADD email VARCHAR(100);

DROP: Usuwanie tabeli lub bazy danych

DROP TABLE pracownicy;

DCL (Data Control Language)

GRANT: Nadawanie uprawnień

GRANT SELECT ON pracownicy TO uzytkownik;

REVOKE: Odbieranie uprawnień

REVOKE SELECT ON pracownicy FROM uzytkownik;

TCL (Transaction Control Language)

COMMIT: Zatwierdzanie transakcji

COMMIT;

ROLLBACK: Wycofywanie transakcji.

ROLLBACK;

SAVEPOINT: Tworzenie punktów kontrolnych w transakcji.

SAVEPOINT moj_savepoint;

Bardziej rozbudowany przykład

Pamiętaj, że składnia i zachowanie transakcji mogą się różnić w zależności od systemu zarządzania bazą danych, np. MySQL, PostgreSQL czy SQL Server.

-- Rozpoczęcie transakcji
START TRANSACTION;

-- Dodanie pierwszego zamówienia
INSERT INTO zamowienia (nazwa_produktu, ilosc) VALUES ('Produkt A', 10);

-- Utworzenie savepointa
SAVEPOINT po_pierwszym_zamowieniu;

-- Dodanie drugiego zamówienia
INSERT INTO zamowienia (nazwa_produktu, ilosc) VALUES ('Produkt B', 5);

-- Załóżmy, że wystąpił błąd i chcemy cofnąć transakcję do savepointa
ROLLBACK TO SAVEPOINT po_pierwszym_zamowieniu;

-- Dodanie innego zamówienia zamiast drugiego
INSERT INTO zamowienia (nazwa_produktu, ilosc) VALUES ('Produkt C', 20);

-- Zatwierdzenie całej transakcji
COMMIT;

W tym scenariuszu:

  1. Rozpoczynamy transakcję przy użyciu START TRANSACTION.
  2. Dodajemy pierwsze zamówienie do tabeli.
  3. Tworzymy SAVEPOINT, który pozwala nam "zapamiętać" stan transakcji w tym punkcie.
  4. Dodajemy drugie zamówienie.
  5. Jeśli chcemy cofnąć część transakcji (np. z powodu błędu), używamy ROLLBACK TO SAVEPOINT. To cofa transakcję do stanu zapisanego w savepoincie, czyli usunie tylko drugie zamówienie.
  6. Dodajemy kolejne zamówienie, które zastępuje poprzednie.
  7. Na koniec, zatwierdzamy transakcję, używając COMMIT, co zapisuje wszystkie zmiany w bazie danych.

Trzy miesiące temu na naszej stronie…

Artykuł: Józef Piłsudski

Józef Piłsudski

Artykuł: GIMP: Zaznaczanie prostokątne i eliptyczne

GIMP: Zaznaczanie prostokątne i eliptyczne

Artykuł: GIMP: Zapisywanie zaznaczenia

GIMP: Zapisywanie zaznaczenia

Artykuł: Symulator sieci komputerowej

Symulator sieci komputerowej

Artykuł: Linux: Polecenie dmidecode

Linux: Polecenie dmidecode

Artykuł: Specyfikacja: Przydatne programy

Specyfikacja: Przydatne programy

Nasze technikum

Technik informatyk

Szkoły dla dorosłych

Nasza szkoła

Pełna oferta edukacyjna

Oferta szkoły