Типы столбцов SQLite3 в основном сводятся к:
- TEXT
- NUMERIC (REAL, FLOAT)
- INTEGER (различные длины целых чисел; но INT будетобычно делают)
- BLOB (двоичные объекты)
Обычно в CSV-файле вы встретите строки (TEXT), десятичные числа (FLOAT) и целые числа (INT).Если производительность не критична, вам нужны только три типа столбцов.(CHAR(80)
меньше на диске, чем TEXT
, но для нескольких тысяч строк это не такая большая проблема.)
Что касается помещения данных в столбцы, SQLite3 использует тип принуждение для преобразования входного типа данных в тип столбца, где бы ни имел смысл преобразование.Поэтому все, что вам нужно сделать, это указать правильный тип столбца, и SQLite позаботится о его правильном хранении.
Например, число -1230.00
, строка "-1230.00"
и строка "-1.23e3"
все приведёт к 1230 при сохранении в столбце FLOAT
.
Обратите внимание, что если SQLite3 не может применить значимое преобразование типа, он просто сохранит исходные данные, не пытаясь преобразовать их ввсе.SQLite3 очень рад вставить "Hello World!"
в столбец FLOAT
.Обычно это плохо.
См. Документацию SQLite3 о типах столбцов и преобразовании для таких драгоценных камней, как:
Тип сродства
Чтобы максимизировать совместимость между SQLite и другими механизмами баз данных, SQLite поддерживает концепцию «соответствия типов» для столбцов.Сходство типов столбца является рекомендуемым типом для данных, хранящихся в этом столбце.Важной идеей здесь является то, что тип рекомендуется, не требуется. Любой столбец может хранить данные любого типа.Просто некоторые столбцы, при выборе, предпочитают использовать один класс хранения над другим.Предпочтительный класс хранения для столбца называется его «сродством».