Praca z typami danych w bazie danych

Adobe AIR 1.0 i starsze wersje

Podczas tworzenia tabeli w bazie danych instrukcja SQL przeznaczona do utworzenia tabeli definiuje powinowactwo lub typ danych dla każdej kolumny w tabeli. Możliwe jest pominięcie deklaracji powinowactwa, jednak dobrym rozwiązaniem jest jawne zadeklarowanie powinowactwa kolumny w instrukcjach SQL CREATE TABLE .

Zwykle obiekt zapisany w bazie danych za pomocą instrukcji INSERT jest zwracany jako instancja tego samego typu danych po wykonaniu instrukcji SELECT . Jednak typ danych pobranej wartości może być inny w zależności od powinowactwa kolumny bazy danych, w której zapisana jest wartość. Gdy wartość jest zapisana w kolumnie, a jej typ danych nie jest zgodny z powinowactwem kolumny, wówczas baza danych podejmuje próbę konwersji wartości w celu dopasowania jej do powinowactwa kolumny. Na przykład: jeśli kolumna bazy danych jest zadeklarowana z powinowactwem NUMERIC , wówczas baza danych podejmuje próbę konwersji wstawionych danych na klasę zapisu liczb ( INTEGER lub REAL ) przed zapisaniem danych. Baza danych zgłasza błąd, jeśli nie ma możliwości konwersji danych. Zgodnie z tą regułą: jeśli ciąg znaków „12345” zostanie wstawiony do kolumny NUMERIC , wówczas przed zapisaniem w bazie danych ciąg znaków zostanie automatycznie przekonwertowany na wartość całkowitą 12345. W przypadku pobrania za pomocą instrukcji SELECT wartość zostanie zwrócona jako instancja typu danych liczbowych (np. Number), a nie jako instancja String.

Najlepszym sposobem uniknięcia niepożądanej konwersji danych jest przestrzeganie dwóch reguł. Po pierwsze: należy zdefiniować każdą kolumnę z powinowactwem, które jest zgodne z typem danych, jakie mają być zapisywane w tej kolumnie. Po drugie: należy wstawiać tylko wartości, których typ danych jest zgodny ze zdefiniowanym powinowactwem. Przestrzeganie tych zasad przynosi dwie korzyści. Wstawiane dane nie będą nieoczekiwanie konwertowane (co wiąże się z możliwością utraty znaczenia). Ponadto pobierane dane są zwracane w oryginalnym typie danych.

Więcej informacji o dostępnych typach powinowactwa kolumn i korzystaniu z typów danych w instrukcjach SQL zawiera sekcja Obsługa typów danych .