DZIEN drugi -pozdrowienia z lotniska

Temat: [sql] dane historyczne, self join..
Witam,

Mam tabele:
[id] [osoba] [punkty] [data]

Sa do niej codziennie dokladane nowe rekordy nazwa-punkty-data.
Przykladowe dane moga wygladac tak:
osoba1 - ilosc1 - data1
osoba2 - ilosc2 - data1
osoba1 - ilosc3 - data2
osoba2 - ilosc4 - data2
osoba1 - ilosc5 - data3
osoba2 - ilosc6 - data3
osoba3 - ilosc7 - data3

data3 > data2 > data1

Jak widac w nowszych wpisach moga dojsc nowe osoby do zestawienia.

Problem polega na tym, zeby wyciagnac porownanie z dwoch dowolnych dat (ktore znam), przy zalozeniu ze maja zostac wyciagniete wszystkie osoby, ktore sa w dacie nowszej (Ci ktorych nie bylo w tej starszej moga miec reszte pol NULL... niewazne.. byleby ich zwrocilo)

Umiem wyciagnac jednym zapytaniem te ktore sa i w jednej i w drugiej dacie, np:
[sql:1:2de8a97fdd]SELECT t1.osoba, t1.punkty ile1, t2.punkty ile2, (t2.punkty - t1.punkty) bilans
FROM tabela t1
RIGHT JOIN tabela t2 ON (t1.osoba = t2.osoba)
WHERE t1.data = '2004-02-03' AND t2.data = '2004-02-05';
[/sql:1:2de8a97fdd]
Niestety zeby wyciagnac w tym samym zapytaniu tez tych, ktorych we wczesniejszej dacie nie ma juz nie potrafie zrobic :/
Narazie posilkuje sie drugim zapytaniem, ktore wyciaga tych pozostalych.

Moze byc zapytanie z uzyciem subqueries (to projekt "dla siebie" wiec moge sobie uzyc czego chce, a np. postgresa mam), choc bardziej pasowaloby mi samymi joinami o ile sie da.
Źródło: forum.php.pl/index.php?showtopic=11585



Temat: Porównienie danych z dwóch różnych baz danych
Cześć wszystkim,
Tak się złożyło iż muszę porównać dane z dwóch różnych baz danych (mysql i firebird), do tego porównanie musi obejmować po 3 kolumny z każdej z tabel. Czy możecie coś poradzić, jak to porównać? w sql raczej odpada, jak zarzuce zapytanie do 2 bazy w petli z 1 bazy to wysypuje cala zaw. drugiej przylaczony do poszczegolnych rekordow z pierwszej. Rekordów jest ok. 6000 w kazdej z tabel. Jakas rada??
Pozdrawiam.
Źródło: forum.php.pl/index.php?showtopic=32466


Temat: [php] Porównanie pliku xls z bazą MySQL...
Witam.
Mam plik csv, który zawiera 10 kolumn...
czwarta kolumna, to kod, który chce porównać z kodem w bazie danych...

Pytanie jest takie. Jak najlepiej wyfiltrować z pliku csv pozycje, które nie istnieją w bazie?

Myślałem o dwóch rozwiązaniach:
1. Załadowac plik do tabeli tymczasowej, następnie usunąć pozycje (zapytaniem SQL) z tabeli tymczasowej, które powtarzają sie w docelowej tabeli. następnie tą tabele tymczasową wrzucić do pliku csv...

2. w pętli każdą pozycje, która załadowana jest z pliku csv od razu porównywać z baza docelową i jeśli pozycja nie istnieje, to dodac ją do zmiennej.. na końcu tą zmienną wrzucić do pliku csv do pobrania...

Problem w tym, że w rozwiazaniu 1. nei wiem, jak napisać zapytanie, które sprawdziłoby nieistniejące produkty.
Rozwiązanie 2. nie jest praktyczne, ponieważ baza jak i plik mają po 28 000 pozycji... operacja ta "zabiłaby" serwer...

Prosze o podpowiedź.... jak to sprawnie zrobić? Może istnieje jakaś funckja,metoda, która porównywałaby plik csv z baza MySQL..?
Źródło: forum.php.pl/index.php?showtopic=79761


Temat: PHP+SQL - Pętla w pętli...
Polecam poczytać sobie o łączeniu tabel. JOIN'y lub nawet najprostsze porównanie po kluczach w WHERE.
Jak nie dasz rady daj schemat tych dwóch tabel, napisz co chcesz dokładnie wyciągnąć a ja albo ktoś inny pomożemy Ci rozwiązać Twój problem.

Co do SQL Injection to sprawdzaj zmienne przed "włożeniem" ich do zapytania. Np. jak ma być to liczba to niech będzie to liczba.
Źródło: forum.optymalizacja.com/index.php?showtopic=56276


Temat: [php] Porównanie pliku xls z bazą MySQL.
Witam.
Mam plik csv, który zawiera 10 kolumn...
czwarta kolumna, to kod, który chce porównać z kodem w bazie danych...

Pytanie jest takie. Jak najlepiej wyfiltrować z pliku csv pozycje, które nie istnieją w bazie?

Myślałem o dwóch rozwiązaniach:
1. Załadowac plik do tabeli tymczasowej, następnie usunąć pozycje (zapytaniem SQL) z tabeli tymczasowej, które powtarzają sie w docelowej tabeli. następnie tą tabele tymczasową wrzucić do pliku csv...

2. w pętli każdą pozycje, która załadowana jest z pliku csv od razu porównywać z baza docelową i jeśli pozycja nie istnieje, to dodac ją do zmiennej.. na końcu tą zmienną wrzucić do pliku csv do pobrania...

Problem w tym, że w rozwiazaniu 1. nei wiem, jak napisać zapytanie, które sprawdziłoby nieistniejące produkty.
Rozwiązanie 2. nie jest praktyczne, ponieważ baza jak i plik mają po 28 000 pozycji... operacja ta "zabiłaby" serwer...

Prosze o podpowiedź.... jak to sprawnie zrobić? Może istnieje jakaś funckja,metoda, która porównywałaby plik csv z baza MySQL..?
Ten post był edytowany przez kukix dnia: 26 Październik 2007 - 12:42
Źródło: forum.pclab.pl/index.php?showtopic=302345


Temat: Problem z porównaniem dwóch tabel (wzorzec i tab aktualizowana)
Witam,

mam dwie bazy danych. Dane w tabelach powtarzają się jednak nie mają unikalnego ID po którym można kluczem porównywać pojedyncze rekordy. Baza 1 jest wzorcem a Baza 2 jest co 15 min aktualizowana. Muszę porównać bazę 2 do bazy jeden i zobaczyć jakie zmiany zostały poczynione. Przykład:

ID usera nazwa_umie poziom_umie
user 1 11 cos1 1
user 1 11 cos2 1
user 1 11 cos3 0
user 2 22 cos1 2
user 2 22 cos2 1
user 2 22 cos3 0
user 3 33 cos2 0
n n n n

Baza 2 wygląda bardzo podobnie - zmienia się może rekord dla user'aX.

Robiąc:
Select A.id_usera, A.nazwa_umie, A.poziom_umie, B.id_usera, B.nazwa_umie, B.poziom_umie from baza1 A, baza2 B where A.id_usera=B.id_usera and A.poziom_umie = B.poziom_umie and A.poziom_umie = B.poziom_umie and A.id_usera = '11'

Na podst tabeli powyżej zwraca mi wynik w postaci:
1)user1_11 - cos1 - 1
2)user1_11 - cos2 - 1
3)user1_11 - cos3 - 0

ale gdy Baza 2 dostanie aktualizację, że user1 przykład:
ID usera nazwa_umie poziom_umie
user 1 11 cos1 1
user 1 11 cos2 1
user 2 22 cos1 2
user 2 22 cos2 1
user 2 22 cos3 0
user 3 33 cos2 0
n n n n
i porównuję to z baza1 (czyli mój wzorzec) to dostaję wynik:
1)user1_11 - cos1 - 1
2)user1_11 - cos2 - 1

Moje pytanie - jak wyświetlić to dodatkowe pole z bazy1 (czyli mojego wzorca) dla user1 gdy jest we wzorcu bazy1 a nie ma już go w bazie2 - czyli coś takiego:
Baza1: Baza2:
1)user1_11 - cos1 - 1 1)user1_11 - cos1 - 1
2)user1_11 - cos2 - 1 2)user1_11 - cos2 - 1
3)user1_11 - cos3 - 0 3)puste pole

i czy w takiej formie jest to wykonalne?

Mam nadzieję, że jest zrozumiałe to co napisałem. Moja wiedza na temat SQL nie jest duża więc proszę o zrozumienie.

Z góry dziękuję za wszelką pomoc.




Źródło: forum.php.pl/index.php?showtopic=135776


Temat: Jak dodać tabelę
Na 2 sposoby:

1. Przez zapytanie do SQL - nie polecam. Musisz znać dokładne parametry dodawanych tabel, rekordów...
2. Ręcznie; krok po kroku:

Aby rozpocząć tworzenie nowej tabeli, przełączmy się na widok bazy danych. Pod listą tabel widoczny jest niewielki formularz zatytułowany "Utwórz nową tabelę". Wpisujemy w nim nazwę nowej tabeli oraz ilość pól, które zamierzamy do niego dodać. Jeśli się pomylisz, nie przejmuj się. Edytor będzie można łatwo powiększyć jeszcze w trakcie edycji, a ponadto można dodawać nowe pola do tabeli już po jej utworzeniu. Po kliknięciu na "Wykonaj" ukaże się rozbudowany edytor umożliwiający dokładne zdefiniowanie struktury. Oto omówienie poszczególnych kolumn:

* Nazwa - nazwa pola.
* Typ - z listy wybieramy typ danych, jakie mają być w nim przechowywane.
* Długość/wartości - dla pól VARCHAR czy CHAR podajemy tu maksymalną dozwoloną długość ciągu tekstowego. Dla liczb nie trzeba w sumie nic wpisywać,
phpMyAdmin zaproponuje wtedy domyślne wartości, które usatysfakcjonują każdego. Dla pól ENUM oraz SET wpisujemy tu listę dozwolonych wartości
ujętych w apostrofy i odseparowanych przecinkami.
* Metoda porównywania napisów - tylko dla pól VARCHAR, TEXT itp. - wybieramy tutaj, według jakiego kodowania mają być porównywane znajdujące
się tu dane. Przykładowo, jeżeli zamierzasz stworzyć witrynę wykorzystującą kodowanie Unicode, musisz odnaleźć tu zbiór np. utf8_polish_ci.
* Atrybuty - dodatkowe atrybuty, np. dla liczb można wybrać atrybut UNSIGNED, co spowoduje, że będzie można przechowywać tu tylko liczby dodatnie, ale za to w dwukrotnie większym dozwolonym zakresie (przestrzeń zwolniona po wywaleniu części ujemnej).
* Null - czy pole może przyjmować wartości NULL.
* Domyślne - domyślna wartość tego pola w nowych rekordach.
* Dodatkowo - dla pola ID możemy tu wybrać atrybut AUTO_INCREMENT.

Kolejne cztery pola wyboru pozwalają zdefiniować rodzaj indeksu. Od lewej strony mamy:

* PRIMARY KEY - ustawić dla pola ID.
* INDEX - normalny indeks.
* UNIQUE - pole z unikalnymi wartościami (nie mogą się powtarzać w dwóch rekordach)
* --- - brak indeksu.

Pole pod ikonką "T" umożliwia stworzenie indeksu FULLTEXT ułatwiającego przeszukiwanie zawartości tekstów. Można go utworzyć tylko w tabelach MyISAM, a ponadto aby mieć z niego jakiś pożytek, trzeba umieć pisać odpowiednie zapytania wykorzystujące tzw. "fulltext searching".

Uwaga: zaznaczenie dla kilku pól pozycji INDEX nie spowoduje utworzenia kilku indeksów, tylko jeden indeks łączony! Dlatego jeśli zamierzasz stworzyć więcej indeksów, musisz to zrobić z pomocą dodatkowego edytora już po utworzeniu tabeli. Włączamy go w widoku tabeli w pozycji "Indeksy". Widoczny jest tam formularz zatytułowany "Utwórz indeks dla X kolumn". Po wybraniu liczby kolumn w indeksie, przejdziemy do szczegółowego widoku, gdzie możemy wybrać:

* Nazwę indeksu
* Jego rodzaj
* Określić pola mające wejść w jego skład.

Source: WP



Jeżeli to Ci nie wystarczy, znajdź w necie jakąkolwiek obsługę phpMyAdmin'a.


Źródło: webmasterzy.org/index.php?showtopic=34384


Temat: GIS
Źródła danych wykorzyst. w procesie przetwarzania:
- dane w postaci ob. rozmieszczonych na pow. ziemi np.:drogi, pola, rzeki,
- dane zbierane przez urz rejestrujące: sejsmiczne sygnały, stan zan środ, rejestracja ruchów samochodów
- zbierane bezpośrednio przez ludzi: ankiety, kwestionariusze
- przetwarzane dane analogowe lub cyfrowe: mapy, dane statystyczne
- dane czerpane z istn. syst. informat: spis ludności
Pozyskiwanie danych terenowych pomiary bezpośrednie:
- tradycyjne metody bez stosowania urz elektron; (przyrządy optyczne, przyrz wstęgowe)
- zautomatyzowane metody pomiarów eliminujące ręczne zapisywanie wyników pomiarów w terenie; (Total Station, kodowy niwelator)
- techniki GPS do wyznaczania pozycji
pomiary pośrednie:
- fot. lotnicza do sporządzania map
- lotniczy skaning laserowy do pozyskiwania danych o rzeźbie terenu
- satelitarne syst teledetekcyjne oparte na technikach niefotogrametrycznych
Układy odniesienia:
- systemy posługujące się współrzędnymi np.:kartezjanski
biegunowy-azymutalny
- systemy posługujące się pozycjami względnymi- odniesienie do ważnych obiektów, adresów
Encja-jest to przestrzenny element rzeczywistości stanowiący samodzielna całość
Obiekt-jednostka przestrzenna zapisana w postaci modelu danych ;nośnik informacji opisujący wyodrębnioną jednostke
Obiekty przestrzenne wymiarowości są to rozproszone zjawiska występujące na powierzchni ziemi np;
- punktowych jednostek geometrycznych zero wymiarowe
- liniowych również krzywe, ciągi liniowe otwarte, łuki jednostki geometr jedno wymiarowe
- powierzchniach jednos geometr dwuwymiarowe
- objętościach jedns geometr trójwymiarowe
Prosty model wektorowy obiektu stanowi zbiór nie powiązanych ze sobą obiektów punktowych liniowych i powierzchniowych. Położenie obiektów punktowych określa się pojedyncza parę współrzędnych x,y a położenie i kształt obiektów liniowych i powierzchniowych ciągami par współrzędnych x,y


Topologiczny model obiektu rozpatruje się płaszczyzny x,y podzielona liniami granicznymi L1,L2 na obszary P0,P1,P2..., Pn linie graniczne nie mogą się przecinać, maja określone kierunki i łącza punkty W1,W2..., Wq zwane węzłami. Mamy dwa rodzaje modelu topolo; prostoliniowy i krzywoliniowy w przypadku krzywoliniowego kształt każdej linii określa się dodatkowo współrzędnymi punktów należących do tej linii
Modele lastrowe-teselecja jest to porównywanie przestrzeni dwuwymiarowej z siatkami komórek której elementy powierzchniowe pokrywają całkowicie dany obszar zainteresowania nie nakładając się na siebie
Numeryczny model terenu NMT jest to zbiór odpowiednio wybranych punktów powierzchni o znanych współrzędnych x,y,z oraz algorytmu interpolacyjnych umożliwiających odtworzenie jego kształtu dla określonego obszaru. Model zazwyczaj jest budowany z rozproszonych punktów pomiarowych.
Typy digitalizacji wektorowej;
- punktowa której rezultatem są współrzędne x,y oddzielnych punktów


- liniowa w której przebieg linii zapisywany jest w postaci zbioru par współrzędnych x,y kolejnych punktów


Digitalizer ręczny przypomina prace maszyny optycznej zwanej kursorem która porusza się po specyficznym stole z wbudowaną w jego spodzie siatka krzyżujących się pod kątem prostym drucików podłączonych do prądu elektrycznego, jeden równoległy do osi x, drugi do osi y. Druciki wytwarzają pole magnetyczne. Kursor digit jest wyposażony w cewkę indukcyjna która podczas przemieszczania się po stole reaguje na zmiany położenia w polu elektromagnetycznym
Digitalizacja powierzchniowa skanowanie rastrowe zapisuje się cyfrowo stopień szarości lub barwę każdego elementu obrazu lub rysunku czyli piksela



Skaner służy do zmiany istniejących rysunków i obrazów np.;map analogowych na formę numeryczną w postaci modelu rastrowego Działanie polega na płynnym przesunięciu po skanowanym obrazie lampy fluoroscencyjnej lub kilkunastu fotodiód umieszczonych w odpowiedniej obudowie Jasność obrazu decyduje o ilości odbitego światła miejsca ciemniejsze odbijają mniej światła jaśniejsze więcej Światłoczułe czujniki zapisują obraz bitmapy w pamięci komputera
Sieci komputerowe(network) są wzajemnie połączone mogą pracować samodzielnie i komunikować się z pozostałymi kompu Istnieją różnice w stosunku do systemu wielodostępnego jest możliwość komunikowania się komp miedzy sobą w obszarze sieci
LAN lokalna sieć komp jest to siec zawierająca od 2 do 100 komp połączonych ze sobą małym obszarem geograficznym
Klucz podstawowy to powiązanie rekordów w jednej tabeli z rekordami z innej tabeli czyli jedno lub więcej pól których wartości jednoznacznie identyfikują każdy rekord w tabeli Jeśli istnieje pole zawierające dane unikatowe jak np.; numer katalogowy czy numer identyfikacyjny można je zadeklarować jako klucz podstawowy
Kategorie relacji w bazie relacyjnej
-One to One jeden do jednego każdy rekord w tabeli A może mieć dopasowany rekord z tabeli B i odwrotnie
- One to Many jeden do wielu rek w tab A może mieć wiele dopasowanych do niego rek z tab B, ale rek w tab B ma tylko jeden dopasowany rek w tab A
- Many to Many wiele do wielu rek w tab A może mieć wiele dopasowanych do niego rek w tab B tak samo jak rek w tab B może mieć wiele dopasowanych do niego rek w tab A Jest to możliwe tylko przez zdefiniowanie trzeciej tabeli ( tabeli łącznej) której klucz podstawowy składa się z dwóch kluczy obcych
Własności relacyjnej bazy danych Niezależnie od wielkości i złożoności relacy baz danych musi się ona cechować pewnymi własnościami; wszystkie elementy danych muszą być zorganizowane w tabeli
- w tablicy danych nie mogą występować powtórzenia tych samych wierszy i tych samych kolumn
- w każdym polu może być przechowywany tylko jeden element danych.
Polecenia SQL dotyczą: tworzenie i usuwanie baz danych tabel kluczy
- wprowadzanie uaktualnianie i usuwanie danych
- wyszukiwanie danych
- ustawienia praw dostępu do bazy danych
- zarządzanie transakcjami
- administracja baza danych
Źródło: kornelia.xaa.pl/viewtopic.php?t=6339