Kategoria: SQL Dodane przez marcin90

Jak skopiować wybrane kolumny z jednej tabeli do kolumn w drugiej tabeli?

1 odpowiedź

1 0 Dodane 10-06-2018 przez marcin90

Do kopiowania danych z jednej tabeli i układania ich w drugiej tabeli służy instrukcja INSERT INTO SELECT.
By kopiowanie wartości było możliwe, odpowiadające sobie typy kolumn w dwóch tabelach powinny być ze sobą kompatybilne.


Kopiowanie wszystkich kolumn z jednej tabeli do drugiej:

INSERT INTO destinationTable -- tabela do której chcemy skopiować
SELECT * FROM sourceTable -- tabela z której kopiujemy
WHERE someCondition

Kopiowanie wybranych kolumn z jednej tabeli do drugiej

INSERT INTO destinationTable (column1, column2, ...) -- wybieramy kolumny do których kopiujemy
SELECT (column1, column2, ...) -- wybieramy kolumny do skopiowania. Ważna kolejność!
FROM sourceTable  
WHERE someConditions

Jako przykład posłużą poniższe tabele wypełnione przykładowymi danymi.

CREATE TABLE Car (
    Id INT,
    Name VARCHAR(20),
    Speed INT
)
CREATE TABLE Vehicle(
    Id INT,
    Name VARCHAR(20),
    Speed INT
)

Kopiowanie wszystkich kolumn z jednej tabeli do drugiej tabeli

INSERT INTO Vehicle -- tabela do której chcemy skopiować
SELECT *  -- wybieramy wszystkie kolumny
FROM Car -- tabela z której kopiujemy

Efekt wykonania powyższej instrukcji poniżej (na zielono zaznaczono skopiowane wartości)


Kopiowanie wybranych wierszy z jednej tabeli do drugiej tabeli

INSERT INTO Vehicle -- tabela do której chcemy skopiować
SELECT * -- wybieramy wszystkie kolumny
FROM Car  -- tabela z której kopiujemy
WHERE Car.Id < 4  -- warunek który muszą spełnić kopiowane kolumny

Efekt wykonania powyższej instrukcji poniżej (na zielono zaznaczono skopiowane wartości)


Kopiowanie wybranych kolumn z jednej tabeli do drugiej tabeli

INSERT INTO Mark (Id, Title) -- kolumny jawnie zdefiniowane
SELECT Car,Id, Car.Name -- wybieramy jawnie kolumny
FROM Car  -- tabela z której kopiujemy

Efekt wykonania powyższej instrukcji poniżej (na zielono zaznaczono skopiowane wartości)


Dodaj swoją wersję odpowiedzi

Dodajesz odpowiedź jako gość. Zaloguj się się by uzyskać dostęp do rankingu oraz powiadomień.