Ostatnia aktualizacja 18 kwietnia, 2023
Język zapytań strukturalnych, znany również jako SQL (Structured Query Language) służy do zarządzania bazami danych. Pozwala również na manipulację danymi przechowywanymi w systemach zarządzania relacyjnymi bazami danych (RDBMS).
SQL umożliwia tworzenie, modyfikowanie, wyszukiwanie, dodawanie i usuwanie zasobów w bazach danych. Dzięki temu stał się niezbędnym narzędziem dla deweloperów, testerów, administratorów baz danych i analityków. W tym artykule przyjrzymy się, czym jest SQL, jak zarządzać bazami danych.
SQL – co to jest?
SQL to deklaratywny oraz strukturalny język zapytań. Używa się go głównie do komunikacji z bazami danych, które są zbudowane w oparciu o model relacyjny. Stworzony w latach 70. XX wieku przez firmę IBM, SQL stał się standardem w zarządzaniu danymi. Dzięki swojej deklaratywności pozwala użytkownikom określić, jakie informacje są potrzebne, zamiast opisywać, jak je uzyskać. To sprawia, iż SQL jest prosty do nauki i używania, choćby dla osób bez doświadczenia w programowaniu.
Zarządzanie bazami danych
Zarządzanie bazami danych dzięki SQLa obejmuje tworzenie, modyfikowanie i usuwanie obiektów bazy danych, takich jak tabele, widoki, indeksy czy procedury. Pozwala on również na kontrolowanie dostępu do danych, zarządzanie transakcjami oraz tworzenie kopii zapasowych danych. Dzięki tym funkcjom, SQL umożliwia efektywne zarządzanie danymi oraz ochronę informacji przed nieautoryzowanym dostępem i utratą. Jak wygląda przykładowy kod? Oto kilka czynności:
Tworzenie bazy danych
CREATE DATABASE nowa_baza_danych;Instrukcja CREATE DATABASE służy do tworzenia nowej bazy danych. W wyniku działania tego kodu, na serwerze bazy danych zostaje utworzona nowa baza danych o nazwie nowa_baza_danych. Po utworzeniu bazy, można w niej tworzyć tabele oraz przechowywać i zarządzać danymi związanymi z różnymi obiektami, takimi jak użytkownicy, uprawnienia, tabele czy indeksy.
Tworzenie tabeli
CREATE TABLE pracownicy ( id INT PRIMARY KEY, imie VARCHAR(50), nazwisko VARCHAR(50), data_urodzenia DATE, stanowisko VARCHAR(50) );Instrukcja CREATE TABLE służy do tworzenia nowej tabeli o nazwie ‘pracownicy’. Dalsze części oznaczają następująco:
- CREATE TABLE pracownicy: Instrukcja CREATE TABLE służy do tworzenia nowej tabeli. W tym przypadku utworzono tabelę o nazwie ‘pracownicy’.
- W nawiasach podano definicje kolumn tabeli:
- id INT PRIMARY KEY: Kolumna ‘id’ jest typu całkowitego (INT) i zdefiniowano ją jako klucz główny (PRIMARY KEY). Klucz główny to kolumna lub zestaw kolumn, który jednoznacznie identyfikuje każdy wiersz w tabeli. Wartości w kolumnie klucza głównego muszą być unikatowe i nie mogą być wartościami NULL.
- imie VARCHAR(50): Kolumna ‘imie’ jest typu VARCHAR o maksymalnej długości 50 znaków. VARCHAR to typ danych tekstowych o zmiennej długości, który może przechowywać ciągi znaków o różnej długości do określonego limitu.
- nazwisko VARCHAR(50): Kolumna ‘nazwisko’ jest również typu VARCHAR o maksymalnej długości 50 znaków.
- data_urodzenia DATE: Kolumna ‘data_urodzenia’ jest typu DATE, który służy do przechowywania dat. DATE przechowuje datę w formacie YYYY-MM-DD.
- stanowisko VARCHAR(50): Kolumna ‘stanowisko’ jest typu VARCHAR o maksymalnej długości 50 znaków.
W wyniku działania tego kodu, utworzono tabelę ‘pracownicy’ z pięcioma kolumnami o określonych typach danych i ograniczeniach. Tabelę można wykorzystywać do przechowywania i zarządzania informacjami o pracownikach, takimi jak ich identyfikatory, imiona, nazwiska, daty urodzenia i stanowiska.
Dodawanie indeksu do tabeli
CREATE INDEX idx_nazwisko ON pracownicy (nazwisko);W efekcie działania tego kodu, w tabeli ‘pracownicy’ tworzymy indeks ‘idx_nazwisko’ na kolumnie ‘nazwisko’. Indeks ten przyspiesza operacje wyszukiwania i sortowania danych w tej kolumnie, co może prowadzić do lepszej wydajności zapytań SQL w tej tabeli, zwłaszcza gdy tabela zawiera dużą ilość danych. Poszczególne elementy oznaczają:
- CREATE INDEX: Instrukcja ta służy do tworzenia nowego indeksu w tabeli. Indeksy pomagają przyspieszyć operacje wyszukiwania i sortowania danych w tabelach.
- idx_nazwisko: Jest to nazwa utworzonego indeksu. Dobrą praktyką jest nadawanie nazw indeksom w sposób opisowy, aby łatwo można było zrozumieć, na jakiej kolumnie opierają się i jakiej tabeli dotyczą.
- ON pracownicy: Ta część kodu wskazuje, iż należy utworzyć indeks w tabeli o nazwie ‘pracownicy’.
- (nazwisko): W nawiasach podajemy kolumnę (lub kolumny), na podstawie której ma powstać indeks. W tym przypadku indeks zostaje utworzony w kolumnie ‘nazwisko’.
Dodawanie użytkownika i przydzielanie uprawnień
CREATE USER 'nowy_uzytkownik'@'localhost' IDENTIFIED BY 'haslo'; GRANT SELECT, INSERT, UPDATE ON baza_danych.pracownicy TO 'nowy_uzytkownik'@'localhost';W podanym kodzie wykonują się dwie operacje związane z zarządzaniem użytkownikami i przydzielaniem im uprawnień:
- CREATE USER 'nowy_uzytkownik'@'localhost' IDENTIFIED BY 'haslo';Ta instrukcja tworzy nowego użytkownika o nazwie ‘nowy_uzytkownik’, który może łączyć się z serwerem bazy danych tylko z lokalnego komputera (adres ‘localhost’). Użytkownik ten jest identyfikowany przez hasło ‘haslo’.
- GRANT SELECT, INSERT, UPDATE ON baza_danych.pracownicy TO 'nowy_uzytkownik'@'localhost';Ta instrukcja przydziela uprawnienia do wykonywania operacji SELECT, INSERT i UPDATE na tabeli ‘pracownicy’ w bazie danych o nazwie ‘baza_danych’ dla użytkownika ‘nowy_uzytkownik’ łączącego się z ‘localhost’.
- SELECT pozwala użytkownikowi odczytywać dane z tabeli (wykonywać zapytania SELECT),
- INSERT pozwala użytkownikowi dodawać nowe rekordy do tabeli,
- UPDATE pozwala użytkownikowi modyfikować istniejące rekordy w tabeli.
W wyniku tych dwóch operacji, powstaje nowy użytkownik o nazwie ‘nowy_uzytkownik’ i otrzymuje ograniczone uprawnienia do wykonywania określonych operacji na tabeli ‘pracownicy’ w bazie danych ‘baza_danych’.
Zapytania SQL i ich optymalizacja
Zapytania SQL służą do pobierania danych z bazy danych. Wyróżniamy różne rodzaje zapytań, takie jak SELECT, INSERT, UPDATE czy DELETE, które odpowiadają za odczyt, dodawanie, modyfikowanie i usuwanie danych.
Optymalizacja zapytań SQL polega na poprawie ich wydajności, aby uzyskać szybsze i bardziej efektywne wyniki. Optymalizacja może obejmować takie działania, jak wykorzystanie indeksów, stosowanie klauzuli WHERE do filtrowania wyników, czy minimalizowanie ilości zwracanych danych poprzez użycie funkcji agregujących (np. COUNT, SUM, AVG).
Operacje CRUD
Operacje CRUD to podstawowe operacje wykonywane na danych w bazie. Realizuje się je dzięki zapytań SQL i obejmują następujące funkcje:
- Create (Tworzenie) – operacja ta polega na dodawaniu nowych rekordów do bazy danych. W SQL wykorzystuje się polecenie INSERT, aby dodać nowe dane do tabeli. Na przykład, aby dodać nowego użytkownika, można użyć zapytania:
- Read (Odczyt) – operacja odczytu pozwala na pobranie danych z bazy. W SQL używa się zapytania SELECT w celu odczytu rekordów z tabeli. Na przykład, aby pobrać wszystkich użytkowników z tabeli users, można użyć zapytania:
- Update (Aktualizacja) – operacja aktualizacji służy do modyfikowania istniejących danych w bazie. W SQL używa się polecenia UPDATE w celu zmiany wartości rekordów w tabeli. Na przykład, aby zmienić adres e-mail użytkownika o identyfikatorze 1, można użyć zapytania:
- Delete (Usuwanie) – operacja usuwania pozwala na usunięcie danych z bazy. W SQL stosuje się polecenie DELETE, aby usunąć rekordy z tabeli. Na przykład, aby usunąć użytkownika o identyfikatorze 1, można użyć zapytania:
SQL – podsumowanie
SQL jest niezwykle ważnym narzędziem dla osób pracujących z bazami danych, ponieważ umożliwia zarządzanie nimi, tworzenie zapytań, optymalizację wydajności oraz wykonywanie podstawowych operacji CRUD.
Dzięki SQL-owi, zarówno programiści, jak i analitycy mogą pracować z danymi w sposób efektywny i łatwy. W dzisiejszym świecie, gdzie dane odgrywają kluczową rolę, znajomość SQL-a jest nieocenioną umiejętnością, która pozwala na pracę z różnorodnymi systemami zarządzania bazami danych oraz analizę informacji w celu podejmowania trafnych decyzji biznesowych.
“ ”