Archiwa tagu: bazy danych

Użycie pola czasowego jako daty – bez informacji o godzinie

W bazie danych często rejestruje się czas wpisania danego rekordu – najprościej wykorzystać do tego funkcję bazy danych now(), a typami pól dla takich danych są przykładowo datetime w przypadku MySQL oraz timestamp without time zone dla PostgreSQL. Chcielibyśmy zrealizować prostego selecta, w którym czas będzie warunkiem, ale interesuje nas tylko data więc informacje o godzinie chcielibyśmy pominąć. Czytaj dalej

Zapytanie z like wykorzystujące pole z bazy danych

W przypadku realizacji prostego wyszukiwania zwłaszcza tam gdzie wydajność nie jest aż tak ważna można skorzystać z klauzuli like czy też ilike, która ignoruje wielkośc liter (PostgreSQL). Można również ten mechanizm wykorzystać aby sprawdzić nazwijmy to podejrzenia konfliktów jakiś zasobów – rodzi się pytanie jak sobie poradzić kiedy chcielibyśmy np. sprawdzić czy dane pole zawiera w sobie tekst z jakiegokolwiek innego rekordu tej samej tabeli. Czytaj dalej

Jak dodać jakiś okres czasu do daty w bazie danych PostgreSQL ?

Załóżmy, że mam jakąś bazkę (tutaj opieramy się na Postgresie), w której pewne rekordy są powiązane z datą czy jakimś znacznikiem czasu. Z jakiegoś powodu spotyka nas potrzeba przesunięcia dat w przód przykładowo o rok. Możemy rzecz jasna pobrać wszystkie rekordy, zmodyfikować je po stronie PHP funkcjami strtotime i date, a następnie zrobić update. Gdyby to była operacja jednorazowa to od biedy można tak zrobić, pytanie tylko po co skoro można łatwiej ? I jak zawsze twierdzę, warto uczyć się dobrych nawyków. Czytaj dalej

Kilkukrotny join do tej samej tabeli

Bywa tak, że w bazie danych mamy tabelę, w której znajduje się więcej niż jeden klucz obcy do tej samej (innej) tabeli. Na pierwszy „rzut oka” można pomyśleć, że bredzę i takich rzeczy się nie robi tylko wykorzystuje kolejną tabelę do stworzenia relacji – niby tak, niby nie :) Ale o tym później. Skupmy się na sytuacji kiedy potrzeba nam wyciągnąć dane z owej tabeli wraz z informacjami z tej, do której prowadzą klucze. Pojawia się pytanie jak w SQLu zapisać warunek kilkukrotnego złączenia do tej samej tabeli, co z duplikującymi się nazwami atrybutów (pól) itd., jak to ogarnąć ? Ja powiem Ci jak – do dzieła ! Czytaj dalej