Tworzenie, Modyfikacja i Usuwanie Danych: CREATE, INSERT, UPDATE, DELETE

Dzisiejsza lekcja skupia się na podstawowych operacjach modyfikowania danych w bazach SQL: tworzeniu nowych tabel (CREATE), wstawianiu nowych rekordów (INSERT), aktualizowaniu istniejących danych (UPDATE) i usuwaniu rekordów (DELETE). Nauczysz się, jak używać tych poleceń do manipulowania danymi w sposób efektywny i bezpieczny.

Learning Objectives

  • Zrozumiesz składnię polecenia CREATE TABLE i jak tworzyć tabele z różnymi typami danych.
  • Nauczysz się używać polecenia INSERT do dodawania nowych danych do tabel.
  • Opanujesz stosowanie polecenia UPDATE do modyfikacji istniejących rekordów.
  • Poznasz działanie polecenia DELETE do usuwania danych z tabeli.
  • Zrozumiesz konsekwencje używania tych poleceń i jak unikać błędów.

Lesson Content

Tworzenie Tabeli: CREATE TABLE

Polecenie CREATE TABLE służy do definiowania nowych tabel w bazie danych. Musisz określić nazwę tabeli oraz kolumny, ich typy danych i ewentualnie ograniczenia (np. klucze główne).

Przykład: Załóżmy, że chcemy stworzyć tabelę 'klienci' z kolumnami 'id_klienta' (numer klienta), 'imie' (imię), 'nazwisko' (nazwisko) i 'email'.

CREATE TABLE klienci (
    id_klienta INT PRIMARY KEY,
    imie VARCHAR(50),
    nazwisko VARCHAR(50),
    email VARCHAR(100)
);
  • INT - typ danych dla liczb całkowitych.
  • VARCHAR(50) - typ danych dla ciągów znaków o długości do 50 znaków.
  • PRIMARY KEY - określa kolumnę jako klucz główny, który jednoznacznie identyfikuje każdy rekord.

Ćwiczenie: Zastanów się, jakie kolumny mogłaby zawierać tabela przechowująca informacje o produktach w sklepie internetowym. Spróbuj zdefiniować taką tabelę w SQL.

Wstawianie Danych: INSERT

Polecenie INSERT służy do dodawania nowych rekordów do tabeli. Musisz określić nazwę tabeli oraz wartości dla poszczególnych kolumn.

Przykład: Wstawmy do tabeli 'klienci' nowego klienta:

INSERT INTO klienci (id_klienta, imie, nazwisko, email)
VALUES (1, 'Jan', 'Kowalski', 'jan.kowalski@example.com');
  • INSERT INTO - polecenie wstawiania.
  • VALUES - wartości, które mają zostać wstawione.

Możesz wstawiać dane tylko do niektórych kolumn:

INSERT INTO klienci (id_klienta, imie, nazwisko)
VALUES (2, 'Anna', 'Nowak');

W tym przypadku, kolumna 'email' otrzyma wartość NULL.

Aktualizacja Danych: UPDATE

Polecenie UPDATE służy do modyfikowania istniejących rekordów w tabeli. Musisz określić nazwę tabeli, kolumny, które chcesz zmodyfikować, oraz warunek (WHERE), który określa, które rekordy mają zostać zaktualizowane. Pamiętaj o użyciu WHERE – inaczej zaktualizujesz wszystkie rekordy w tabeli!

Przykład: Zmieńmy email Jana Kowalskiego:

UPDATE klienci
SET email = 'jan.kowalski.nowy@example.com'
WHERE id_klienta = 1;
  • SET - określa kolumny i nowe wartości.
  • WHERE - warunek, który musi być spełniony, aby rekord został zaktualizowany. Użycie WHERE jest kluczowe!

Usuwanie Danych: DELETE

Polecenie DELETE służy do usuwania rekordów z tabeli. Podobnie jak w przypadku UPDATE, użyj WHERE aby określić, które rekordy mają zostać usunięte. Bez WHERE, usuniesz wszystkie rekordy z tabeli (co może być katastrofalne!).

Przykład: Usuńmy klienta o id_klienta 1:

DELETE FROM klienci
WHERE id_klienta = 1;
  • DELETE FROM - polecenie usuwania.
  • WHERE - warunek, który musi być spełniony, aby rekord został usunięty.

Deep Dive

Explore advanced insights, examples, and bonus exercises to deepen understanding.

Rozszerzona Lekcja: Data Scientist - Bazy Danych i SQL (Dzień 6)

Świetnie! Dzisiaj kontynuujemy naszą podróż po fascynującym świecie baz danych i SQL, zgłębiając temat modyfikacji danych. Pamiętamy, że poprzednio omówiliśmy podstawowe operacje: CREATE, INSERT, UPDATE i DELETE. Teraz zagłębimy się nieco bardziej, rozważając aspekty, które pozwolą Wam na jeszcze lepsze zrozumienie i efektywne wykorzystanie tych potężnych narzędzi.

Deep Dive: Zaawansowane Modyfikacje Danych

Zanim przejdziemy do ćwiczeń, warto zgłębić kilka bardziej zaawansowanych aspektów.

  • CREATE TABLE - Dodatkowe opcje: Poza podstawowym tworzeniem tabel, możemy definiować ograniczenia (constraints) takie jak NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY. Te ograniczenia pomagają w utrzymaniu integralności danych. Przykładowo, definiując klucz obcy (foreign key) powiążemy tabelę z innymi, zapewniając relacyjność danych.
    Przykład:
              
                CREATE TABLE Zamowienia (
                  ID_Zamowienia INT PRIMARY KEY,
                  ID_Klienta INT,
                  Data_Zamowienia DATE,
                  FOREIGN KEY (ID_Klienta) REFERENCES Klienci(ID_Klienta)
                );
              
            
  • INSERT - Wstawianie wielu rekordów: Zamiast wstawiać pojedyncze rekordy, możemy użyć składni INSERT INTO ... SELECT ... aby skopiować dane z innej tabeli lub na podstawie wyniku zapytania.
    Przykład:
              
                INSERT INTO Zamowienia (ID_Klienta, Data_Zamowienia)
                SELECT ID_Klienta, CURRENT_DATE()
                FROM Klienci
                WHERE Miasto = 'Warszawa';
              
            
  • UPDATE - Modyfikacja na podstawie warunku: Często chcemy aktualizować dane tylko dla konkretnych rekordów. Używamy do tego klauzuli WHERE. Pamiętajcie o ostrożności - zapytanie UPDATE bez WHERE zaktualizuje wszystkie rekordy w tabeli!
    Przykład:
              
                UPDATE Produkty
                SET Cena = Cena * 1.1
                WHERE Kategoria = 'Elektronika';
              
            
  • DELETE - Ostrożność przede wszystkim: Tak jak w przypadku UPDATE, DELETE bez klauzuli WHERE usunie wszystkie rekordy z tabeli. Zawsze sprawdzajcie swoje zapytania! Dobrą praktyką jest używanie SELECT z tym samym WHERE przed DELETE aby sprawdzić, które rekordy zostaną usunięte.
    Przykład:
              
                -- Sprawdź, które rekordy zostaną usunięte:
                SELECT * FROM Klienci WHERE Data_Rejestracji < '2023-01-01';
    
                -- Usuń rekordy:
                DELETE FROM Klienci WHERE Data_Rejestracji < '2023-01-01';
              
            

Bonus Exercises

Sprawdźmy, jak radzicie sobie z nowymi informacjami!

  1. Ćwiczenie 1: Tworzenie Tabeli z Ograniczeniami.

    Stwórz tabelę o nazwie Pracownicy z następującymi kolumnami:

    • ID_Pracownika (INT, PRIMARY KEY)
    • Imie (VARCHAR(50), NOT NULL)
    • Nazwisko (VARCHAR(50), NOT NULL)
    • Email (VARCHAR(100), UNIQUE)
    • Telefon (VARCHAR(20))
  2. Ćwiczenie 2: Wstawianie i Aktualizacja.

    Do tabeli Pracownicy, wstaw 3 przykładowych pracowników. Następnie, zaktualizuj adres email jednego z pracowników.

  3. Ćwiczenie 3: Usuwanie i Testowanie.

    Usuń pracownika o konkretnym ID_Pracownika. Przed usunięciem, sprawdź (z pomocą SELECT), czy na pewno usuniesz właściwy rekord.

Real-World Connections

Zastanówmy się, gdzie te umiejętności znajdują zastosowanie w realnym świecie.

  • E-commerce: Aktualizacja cen produktów (UPDATE), usuwanie przestarzałych ofert (DELETE), dodawanie nowych produktów (INSERT), zarządzanie bazą klientów i zamówień.
  • Zarządzanie Zasobami Ludzkimi (HR): Tworzenie tabel z danymi pracowników, aktualizacja ich danych (UPDATE), dodawanie nowych pracowników (INSERT), usuwanie pracowników (DELETE).
  • Systemy CRM (Customer Relationship Management): Zarządzanie informacjami o klientach, aktualizacja danych kontaktowych, zarządzanie interakcjami.
  • Finanse: Zarządzanie transakcjami, aktualizacje sald, dodawanie nowych kont.

Challenge Yourself

Spróbujcie rozwiązać to zadanie:

Załóżmy, że macie tabelę Zamowienia i Produkty. Napiszcie zapytanie SQL, które zwiększa cenę wszystkich produktów w zamówieniach z datą starszą niż 3 miesiące o 10%. Upewnijcie się, że wpierw sprawdzacie, które zamówienia zostaną zaktualizowane (używając SELECT), a dopiero później wykonujecie modyfikację.

Further Learning

Gdzie szukać więcej informacji i jak pogłębiać wiedzę?

  • Indeksy: Poznajcie koncepcję indeksów w bazach danych, które mogą znacznie przyspieszyć zapytania.
  • Transakcje: Dowiedzcie się więcej o transakcjach (BEGIN TRANSACTION, COMMIT, ROLLBACK) i jak zapewniają one spójność danych.
  • Widoki (Views): Zacznijcie eksplorować widoki, które pozwalają na tworzenie wirtualnych tabel opartych na wynikach zapytań.
  • Dokumentacja SQL: Zapoznajcie się z dokumentacją SQL używanego przez waszą bazę danych (np. MySQL, PostgreSQL, SQLite).

Interactive Exercises

Ćwiczenie 1: Tworzenie Tabeli

Stwórz tabelę 'produkty' z kolumnami: 'id_produktu' (INT, klucz główny), 'nazwa' (VARCHAR), 'cena' (DECIMAL), 'ilosc_w_magazynie' (INT). Użyj polecenia `CREATE TABLE`.

Ćwiczenie 2: Wstawianie Danych

Wstaw do tabeli 'produkty' kilka produktów. Dodaj co najmniej trzy produkty z różnymi nazwami, cenami i ilością w magazynie. Użyj polecenia `INSERT INTO`.

Ćwiczenie 3: Aktualizacja Danych

Zaktualizuj cenę jednego z produktów w tabeli 'produkty'. Podnieś cenę o 10%. Użyj polecenia `UPDATE` z klauzulą `WHERE`.

Ćwiczenie 4: Usuwanie Danych

Usuń z tabeli 'produkty' produkt, którego ilość w magazynie wynosi 0. Użyj polecenia `DELETE` z klauzulą `WHERE`.

Knowledge Check

Question 1: Które polecenie służy do dodawania nowych danych do tabeli?

Question 2: Które z poniższych jest poprawne dla aktualizacji danych?

Question 3: Co się stanie, jeśli wykonasz `DELETE FROM tabela;` bez klauzuli WHERE?

Question 4: Które polecenie służy do modyfikacji istniejących danych?

Question 5: Jakiego typu danych użyłbyś do przechowywania cen produktów?

Practical Application

Wyobraź sobie, że pracujesz dla małego sklepu internetowego. Musisz zaimplementować funkcjonalność dodawania, edytowania i usuwania produktów z bazy danych. Użyj poznanych poleceń SQL (CREATE, INSERT, UPDATE, DELETE) do zarządzania danymi o produktach.

Key Takeaways

Next Steps

Przygotuj się na lekcję dotyczącą klauzul WHERE, HAVING i operatorów logicznych. Będziemy rozszerzać nasze możliwości filtrowania danych.

Your Progress is Being Saved!

We're automatically tracking your progress. Sign up for free to keep your learning paths forever and unlock advanced features like detailed analytics and personalized recommendations.

Next Lesson (Day 7)