Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Sqlite - типы данных полей таблиц
|
|||
|---|---|---|---|
|
#18+
create table test (i integer, r real, t text, b blob); insert into test values (3142,3142,3142,3142); insert into test values (3.142,3.142,3.142,3.142); insert into test values ('3.142','3.142','3.142','3.142'); insert into test values (x'3142',x'3142',x'3142',x'3142'); insert into test values (null,null,null,null); select rowid, i, r, t, b from test; rowid i r t b 1 3142 3142.0 3142 3142 2 3.142 3.142 3.142 3.142 3 3.142 3.142 3.142 3.142 4 31 42 31 42 31 42 31 42 5 select rowid, typeof(i), typeof(r), typeof(t), typeof(b) from text; rowid typeof(i) typeof(r) typeof(t) typeof(b) 1 integer real text integer 2 real real text real 3 real real text text 4 blob blob blob blob 5 null null null null кто может грамотно прокоментировать данную ситуацию (типы полей заданы явно а значения в них сохраняються разных типов) ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2007, 14:31 |
|
||
|
Sqlite - типы данных полей таблиц
|
|||
|---|---|---|---|
|
#18+
Внимательнее читай доки. Типы полей при создании таблицы ДЕКЛАРАТИВНЫЕ! Т.е. ты описал их так, но ничто не мешает тебе сохранять там что угодно. Сейчас подзабыл, но кажется при сохранении записи движок сам определяет в каком формате сохранять. Базовыми являются -- int, float, string, blob. Тип данных конкретного столбца может меняться от строки к строке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2007, 18:24 |
|
||
|
Sqlite - типы данных полей таблиц
|
|||
|---|---|---|---|
|
#18+
P.S. Сразу не обратил внимания на то, что один и тот же "формат" он по разному определяет... А это банальный БАГ! Это можно запостить им в багсистему, пофиксят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2007, 18:30 |
|
||
|
Sqlite - типы данных полей таблиц
|
|||
|---|---|---|---|
|
#18+
Серж вот как бы и получается что они не савсем "Декларотивные" т.е. при определении типа значения поля учитывается тип заданный для поля при создании таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2007, 10:17 |
|
||
|
Sqlite - типы данных полей таблиц
|
|||
|---|---|---|---|
|
#18+
sark_nnСерж вот как бы и получается что они не савсем "Декларотивные" т.е. при определении типа значения поля учитывается тип заданный для поля при создании таблицы. insert into test values (3142, 3142, 3142, 3142); тут везде должен быть int, а не integer real text integer insert into test values (3.142,3.142,3.142,3.142); тут float insert into test values ('3.142','3.142','3.142','3.142'); тут строка insert into test values (x'3142',x'3142',x'3142',x'3142'); блобы он правильно сохранил Бага это просто, т.к. никакой закономерности там нет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2007, 10:50 |
|
||
|
Sqlite - типы данных полей таблиц
|
|||
|---|---|---|---|
|
#18+
ТИПЫ ДАННЫХ ПОЛЕЙ ТАБЛИЦ В SQLite - ДЕКЛАРАТИВНЫЕ т.е. независимо от того какой тип данных для поля был указан при создании таблицы в этом поле могут сохраняться значения разных типов, при этом SQLite сам определяет тип данных для сохранения значения поля. Задание типа данных поля таблицы при создании указывает SQLite на предпочтительный тип данных для сохренения значений. Чтобы избежать путаницы для типов данных полей таблиц лудше использовать базовые типы данных SQLite. INTEGER - Числовой тип данных (целые положительные или отрицательные числа). Данный тип данных имеет переменный размер 1,2,3,4,6 или 8 байтов. Максимальный размер для данных данного типа состовляет 8 байтов и может хранить числовые значения в диапазоне [-9223372036854775808,-1,0,1,-9223372036854775807]. SQLite автоматически изменяет размер данного типа данных в зависимости от значения. REAL - Числовой тип данных имеющий размер 8 байтов и может хранить любые (в том числе и не целые) числа. TEXT - Текстовый тип данных который может хранить текстовые строки произвольной длины в кодировке UTF-8 или UTF-16. Максимальная длина строки для данного типа данных не лимитирована. Этот же тип данных используется для хранения даты и времени. BLOB - Тип данных для хранения двоичных объектов. Максимальный размер данных данного типа не лимитирован. Пример: select typeof(314), typeof(3.14), typeof('3.14'), typeof(x'3142'); typeof(314) typeof(3.14) typeof('3.14') typeof(x'3142') integer real text blob select CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP; CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP 2007-04-01 09:21:55 2007-04-01 09:21:55 select typeof(CURRENT_DATE), typeof(CURRENT_TIME), typeof(CURRENT_TIMESTAMP); typeof(CURRENT_DATE) typeof(CURRENT_TIME) typeof(CURRENT_TIMESTAMP) text text text create table test (i integer, r real, t text, b blob); insert into test values (3142, 3142, 3142, 3142); insert into test values (3.142, 3.142, 3.142, 3.142); insert into test values ('3.142', '3.142', '3.142', '3.142'); insert into test values (x'3142', x'3142', x'3142', x'3142'); insert into test values (null, null, null, null); select rowid, i, r, t, b from test; rowid i r t b 1 3142 3142.0 3142 3142 2 3.142 3.142 3.142 3.142 3 3.142 3.142 3.142 3.142 4 31 42 31 42 31 42 31 42 5 select rowid, typeof(i), typeof(r), typeof(t), typeof(b) from text; rowid typeof(i) typeof(r) typeof(t) typeof(b) 1 integer real text integer 2 real real text real 3 real real text text 4 blob blob blob blob 5 null null null null ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2007, 11:38 |
|
||
|
|

start [/forum/topic.php?fid=54&msg=34430595&tid=2009527]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
126ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 423ms |

| 0 / 0 |
