sqlite3
использует систему динамического типа.Существует только пять классов хранения: NULL, integer, real, text и blob.(Источник: Типы данных в SQLite версии 3 .)
И, чтобы процитировать эту страницу:
Любой столбец в базе данных SQLite версии 3, кроме INTEGERСтолбец PRIMARY KEY, может использоваться для хранения значения любого класса хранения.
Помимо исключения integer primary key
, SQLite вообще не применяет типы.Это означает, что имя типа, которое вы вводите в create table
, является чисто информативным.
create table mytab (a apples, b bananas);
является действительным оператором create table
.Вы можете вставлять метки времени, текст, большие двоичные объекты в оба столбца (не говоря о том, что вы должны , но можете это сделать).
Для получения дополнительной информации см. Связанную справочную документацию по системе типов.
sqlite> create table mytab (a apples, b bananas);
sqlite> insert into mytab values (CURRENT_TIME, NULL);
sqlite> insert into mytab values ('hello', 3.14159);
sqlite> select * from mytab;
14:59:18|
hello|3.14159
Чтобы ответить на ваш вопрос напрямую: по умолчанию нет.Тип хранилища связан с каждым значением, хранящимся в базе данных, а не со столбцами таблицы.