Kurs podstaw SQL cz. 1

Czym jest język SQL?

Język SQL (ang. Structured Query Language) jest strukturalnym językiem zapytań, który jest wykorzystywany do wykonywania operacji na relacyjnej bazie danych. Każda operacja jest nazywana zapytaniem lub kwerendą wykonywaną poprzez silnik bazodanowy.

Język SQL jest językiem deklaratywnym, tzn. nie interesuje nas, jak dane zapytanie zostanie wykonane poprzez silnik bazodanowy, tylko interesuje nas efekt jaki chcemy uzyskać.

Przykład: Jeśli potrzebujemy zwrócić liczbę rekordów w danej tabeli, to nie ma dla nas znaczenia, czy silnik bazy danych wykorzysta do tego indeks obecny na tabeli, czy będzie wykonywał operacje bezpośrednio na tabeli.

Wyróżniamy różne typy baz danych oraz co za tym idzie różne silnik bazodanowe, skupię się tutaj na bazach relacyjnych, ponieważ do takich ma sens stosowanie języka SQL. Bazy relacyjne to takie, w których dane są poukładane w tabelach, a dane są połączone poprzez więzy integralności w postaci kluczy obcych, ale nie jest to wymagane.

W dalszych rozważaniach będę wykorzystywał MsSQL w wersji 2019 oraz SSMS w wersji 18.5

Zapytania w języku SQL można podzielić na następujące grupy:

  • SQL DQL
  • SQL DML
  • SQL DDL
  • SQL DCL

SQL DQL

ang. Data Query Language – język definiowania zapytań. W tej części można wyszczególnić jedną operację, odpowiedzialną za pobieranie danych z bazy. Operacja jaka jest wykorzystywana do tego, to:

  • select

SQL DML

ang. Data Manipulation Language – język manipulacji danymi. Odpowiada za manipulację danymi w tabelach bazy danych. Operacjami które możemy wyszczególnić to:

  • insert – wstawianie nowych wierszy danych do tabel
  • update – aktualizacje istniejących rekordów
  • delete – odpowiada za kasowanie rekordów

SQL DDL

ang. Data Definition Language – język definicji danych. Jest wykorzystywany podczas tworzenia oraz modyfikacji obiektów/struktur w bazie danych. Możemy wyszczególnić:

  • create – podczas tworzenia nowych struktur, takich jak np. tabele, indeksy, widoki
  • alter – do modyfikowania istniejących elementów
  • drop – do usuwania obiektów w bazie danych

SQL DCL

ang. Data Control Language – język kontroli nad danymi. Służy do definiowania uprawnień oraz dostępów w bazie danych. W tej części możemy wyszczególnić:

  • grant – nadawania uprawnień do wykonania/dostępu do obiektu
  • revoke – odbieraniu uprawnień
  • deny – zabraniania dostępu

Język SQL jest językiem interpretowanym, ma to zalety:

  • istnieje możliwość tworzenia zapytań na podstawie wielu czynników, nieznanych podczas tworzenia kodu.
  • można tworzyć skrypt „w locie” i wykonać go bez większych ograniczeń.
  • łatwość edycji oraz zrozumienia.

ale można też wyszczególnić wady:

  • niektóre błędy będą widoczne dopiero po wykonaniu zapytania, np. problemy z strukturą, danymi.
  • powoduje to problemy z bezpieczeństwem, co w skrajnym przypadku może doprowadzić do skasowania bazy produkcyjnej poprzez osobę nieupoważnioną.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *