SELECT INTO
SELECT INTO służy głównie do pobierania danych z tabeli i "przesłania" tych danych do innej tabeli.
Dzięki temu w łatwy sposób możemy kopiować wszystkie dane z jednej tabeli do innej tabeli.
Możemy też kopiować fragmenty tabel, w tym przypadku musimy zdefiniować nazwy kolumn w zapytaniu.
SELECT INTO jest przydatne przy robienia kopii zapasowych danych tabel (backupów).
UWAGA!
SELECT INTO nie jest obsługiwane przez MySQL (poniższa składnia nie będzie działać).
Składnia (nie działa pod MySQL):
SELECT *
INTO nowa_nazwa_tabeli
FROM nazwa_tabeli
lub
SELECT nazwa_kolumny, nazwa_kolumny2, (...)
INTO nowa_nazwa_tabeli
FROM nazwa_tabeli
Składnia (MySQL):
W celu poprawnego skopiowania danych z jednej tabeli do drugiej musimy użyć poniższej składni.
CREATE TABLE nowa_tabela SELECT * FROM istniejaca_tabela;
Powyższe zapytanie spowoduje automatyczne utworzenie tabeli
nowa_tabela oraz skopiowanie struktury tabeli oraz wszystkich danych z tabeli
istniejaca_tabela.
Przykład skopiowania tabeli:
Tabela "users" oraz jej zawartość:
SELECT * FROM users;
id |
Imie |
Nazwisko |
Adres |
Miasto |
Wiek |
1 |
Adam |
Kowalski |
Warszawska 10 |
Wrocław |
23 |
2 |
Monika |
Gosiewska |
Bema 2/3 |
Gdańsk |
19 |
Wykonujemy zapytanie.
CREATE TABLE users_kopia SELECT * FROM users;
SELECT * FROM users_kopia;
id |
Imie |
Nazwisko |
Adres |
Miasto |
Wiek |
1 |
Adam |
Kowalski |
Warszawska 10 |
Wrocław |
23 |
2 |
Monika |
Gosiewska |
Bema 2/3 |
Gdańsk |
19 |
Przykład skopiowania fragmentu tabeli:
Operację wykonujemy na tabeli
users (powyższa tabela).
CREATE TABLE users_kopia2 SELECT Imie FROM users;
SELECT * FROM users_kopia2;