
Hej! Dzisiaj porozmawiamy o SQL i tworzeniu tabeli na podstawie już istniejącej. To bardzo przydatna umiejętność, szczególnie gdy chcesz skopiować strukturę tabeli lub jej część.
Zacznijmy od definicji kilku ważnych terminów. SQL, czyli Structured Query Language, to język, którym komunikujesz się z bazą danych. Baza danych to zorganizowany zbiór danych, na przykład lista uczniów w szkole czy katalog produktów w sklepie internetowym.
Tabela to podstawowy element w bazie danych. Pomyśl o niej jak o arkuszu kalkulacyjnym. Ma kolumny i wiersze. Kolumny reprezentują rodzaje informacji (np. imię, nazwisko, wiek), a wiersze reprezentują konkretne dane (np. Jan Kowalski, 20 lat).
Must Read
Teraz, jak stworzyć tabelę na podstawie innej? Używamy do tego polecenia CREATE TABLE. Ale w tym przypadku, łączymy je z poleceniem AS SELECT. To połączenie mówi bazie danych: "Stwórz nową tabelę, a jej zawartość wybierz z innej tabeli".
Wyobraź sobie, że masz tabelę "Uczniowie", która zawiera informacje o wszystkich uczniach w szkole: imię, nazwisko, klasa, adres. Chcesz stworzyć nową tabelę "Uczniowie_liceum", która będzie zawierała tylko uczniów z liceum.

Zapytanie SQL wyglądałoby mniej więcej tak:
CREATE TABLE Uczniowie_liceum AS SELECT * FROM Uczniowie WHERE klasa LIKE 'Liceum%';
Rozłóżmy to na części pierwsze. CREATE TABLE Uczniowie_liceum mówi: "Stwórz tabelę o nazwie Uczniowie_liceum". Następnie, AS SELECT * FROM Uczniowie oznacza: "Wybierz wszystkie kolumny () z tabeli Uczniowie".

Na końcu mamy WHERE klasa LIKE 'Liceum%';. To warunek, który mówi: "Wybierz tylko te wiersze, w których kolumna 'klasa' zaczyna się od 'Liceum'". Znak procenta (%) jest symbolem wieloznacznym, oznaczającym dowolny ciąg znaków.
Inny przykład. Załóżmy, że chcesz skopiować tylko niektóre kolumny. Na przykład, tylko imię i nazwisko. Zapytanie wyglądałoby tak:
CREATE TABLE Imiona_i_Nazwiska AS SELECT imie, nazwisko FROM Uczniowie;

W tym przypadku, zamiast , wymieniamy konkretne nazwy kolumn: imie i nazwisko. Nowa tabela "Imiona_i_Nazwiska" będzie zawierała tylko te dwie kolumny, skopiowane z tabeli "Uczniowie".
Możesz także łączyć różne warunki. Powiedzmy, że chcesz stworzyć tabelę "Wybitni_Uczniowie", która zawiera tylko uczniów z klasy 3A, którzy mają średnią powyżej 4.5.

Zapytanie mogłoby wyglądać następująco:
CREATE TABLE Wybitni_Uczniowie AS SELECT * FROM Uczniowie WHERE klasa = '3A' AND srednia > 4.5;
Pamiętaj, że nowa tabela dziedziczy strukturę (typy danych kolumn) z tabeli źródłowej. Natomiast indeksy i inne ograniczenia (np. klucz główny) zazwyczaj nie są kopiowane. Musisz je dodać ręcznie, jeśli są potrzebne.
Tworzenie tabeli na podstawie istniejącej to bardzo elastyczne narzędzie. Pozwala szybko tworzyć nowe tabele z wybranymi danymi i strukturą. Dzięki temu możesz łatwiej analizować dane i tworzyć różne raporty. Powodzenia w nauce!