Relacyjna Baza danych z plik .csv

0

Cześć ,
Mam do was pytanie , czy istnieje jakiś sposób aby ze zbioru danych w pliku .csv , zrobić relacyjną bazę danych? mam na mysli taką sytuację że w pliku .csv mam informację które można wsadzić do tabeli słownikowej i teraz pytanie ,w jaki sposób zrobić aby tabela główna odwoływała się dokładnie do tego rekordu w tabeli słownikowej krzycząc do niej identyfikatorem np 'id 2' ?

0

Nie podałeś silnika bazy danych, nie wiem jak inni, ale MSSQL pozwala na BULK INSERT prosto z CSV. Co do tej tabeli głównej to trzeba założyć klucz obcy i porobić update'y tak, żeby dobre idki powrzucać.

0

Zamierzam to robić na Microsoft SQL server . Z tym bulkiem to ok , ale co dokładnie z tym Update robic ? Masz może na mysli update if ?

0

A co masz w tabeli głównej. Masz juz tam dane i chcesz je potem łączyć z tym co zaciągniesz z pliku? Jak tam to na jakiej podstawie te dwie tabele się łącza.

0

Mój cały plan działania na razie powstaje w głowie . W skrócie mam plik .csv składający się z 19 kolumn , w tych kolumnach jest taka kolumna jak np .Data , jak Tabela która nadaje się na słownik oraz różne tabelę z wartościami int . Chciałbym to zrobić tak aby kilka tabel z .csv znalazło się w tabeli głównej (ale to spoko da się zrobić bulkiem), oraz kilka tabel z excela tworzyło tabele słownikowe w SQL server . I teraz nie wiem jak to połączyć , aby dane z tabelki głównej łączyły się z tą tabelą słownikową przez ID.

Importująć taki csv bezpośrednio do sql server nie ma problemu , bo te wszystkie dane siedzą jakby to powiedzieć w jednej kolumnie.

Przykład poniżej:

kolumny w .csv:
MarkaSamochodu , ModelSamochodu , DataProdukcji , DataKasacji , Kolor ,Przebieg , ImieKierowcy, WiekKierowcy

i w tabeli głównej chcę np:
Tabela Samochod:
IdSamochodu
MarkaSamochodu
ModelSamochodu
DataProdukcji
DataKasacji
Przebieg
Kolor
Przebieg
IdKierowcy

Tabela Kierowca:
IdKierowcy
ImieKierowcy
WiekKierowcy

I jak zrobić aby ten IdKierowca w tabeli Samochod łączyć się dokładnie z jakimś IdKierowca w tabeli Kierowca , bo wiadomo że stworzyć tabelki i pobrać rekordy bulkiem to nie jest problem.

3

Był tu kiedyś pomysł, i myślę warto go powtarzać, zaimportować 1:1 do tymczasowej tabeli Sql Servera, i potem już w jednolitej technologii relacjonować, wybierać, insertowac into czy from jak to się pisze.

0

Panowie , a czy istnieje jakiś sposób z if'ami np :

jeśli w tabeli Samochód kolumnie IDKierowca , jest jakaś wartość , to wstaw odpowiednie ID z taką samą wartości znajdującą się w kolumnie IdKierowca w tabeli Kierowca.

1
printHello napisał(a):

Panowie , a czy istnieje jakiś sposób z if'ami np :

jeśli w tabeli Samochód kolumnie IDKierowca , jest jakaś wartość , to wstaw odpowiednie ID z taką samą wartości znajdującą się w kolumnie IdKierowca w tabeli Kierowca.

Ale po co masz wstawiać, skoro już tam ta wartość (to ID) już jest?

0
printHello napisał(a):

Panowie , a czy istnieje jakiś sposób z if'ami np :

*jeśli ... jest jakaś wartość , to ...

Poczytaj o coalesce

To tak w ramach poszerzenia wiedzy, ale samo pytanie jest (zgadzam się z kolegami) dziwne

0

@Marcin.Miga: , @AnyKtokolwiek Rzeczywiście , teraz widzę że moje pytanie było niejasne , więc może powtórzę je w trochę inny sposób :
Tabela Samochod:
IdSamochodu
MarkaSamochodu
ModelSamochodu
DataProdukcji
DataKasacji
Przebieg
Kolor
Przebieg
IdKierowcy

Tabela Kierowca:
IdKierowcy
ImieKierowcy
WiekKierowcy

Załóżmy że do wszystkich tabel we wszystkich kolumnach zaimportowałem dane . I teraz bym chciał aby np IDSamochodu 1 równało się kierowcy IDKierowcy 2 (Imię Marek,wiek 25), aby te dane równały się 1:1 z pliku csv. Ręcznie tego nie będe wstawiał bo tych rekordów jest ponad 2 mln.

0

No masz w tabeli samochód idKierowcy i to samo id masz w tabeli kierowca. Jak zaimportujesz to będziesz robić join po tym id. Nawet jeśli masz w tabeli samochód powtórzone kilka razy id kierowcy to w tabeli kierowca będziesz miał to raz.

1 użytkowników online, w tym zalogowanych: 0, gości: 1