-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathweek3~
More file actions
71 lines (57 loc) · 2.24 KB
/
Copy pathweek3~
File metadata and controls
71 lines (57 loc) · 2.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# Week 03
## SQL - Data Type
### example
* In SQlite, 1 is same as 1.0
因为一个内部优化,没带有小数部分的浮点值和并存储在纵列有着真实的类(affinity)被写入硬盘以整数的形式,为了花更小的空间并且在读取的时候自动地转换回浮点数。这个优化是完全不可见的。只有通过检查数据文件raw bit(未经修改的字节)才能看出来。
NULL
* NULL是一个合法的值在任何的纵列。NULL是在任何数据类的领域之外的。
* NULL通常代表了信息的缺乏或者不适用值
* 不建议使用null
1. nothing
2. false
3. 0
[code]
CREATE TABLE biaoge (name TEXT, number INTEGER);
INSERT INTO biaoge ('Ziyan Long', NULL);
[/code]
INTEGER
* 有符INT有最多8bytes长(64bits) 1bytes = 8bits
REAL
* 能够以小数(decimal)或者指数表示法表示
* ex: 1.5 or 5.6E12.4
TEXT
* 字符要用单引号
* exmaple: 'I''m a string'
Date and Time
* 文本: '年-月-日 小时:分钟:秒'
* INTEGER 以unix时间
BLOB
* 被用于存储任意二进制数据(通常有:图片,视频,或者其他非文字数据)
* 没有储存限制
* 很少用到在INSERT语句,更多用在变成语言api的parameterized(参数的)查询(query).
NUMERIC
* sqlite有另外一个类 NUMERIC
* 一个纵列能有NUMERIC类可以包含值去使用全部5种存储类.当文本数据被插入到NUMERIC纵列的时候,那个储存类属于文本会被转换成INT或者REAL.
* 如果前15个小数位被保留,那么TEXT和REAL之间的转换是无损的和可逆的.
* 如果text的无损转换不可能,那么值将会存成text,不尝试去转换.
Non SQLITE DATA TYPES
* Memo 能存有超多字符
* Enum 受限字符串
#Sql - Python and Database
How to 描绘represent a database in python
* Project2要求
* sqlite的输入和输出都需要一样风格
* 剩下的需实现内容都是建议以一种方式实现
Sqlite to python
类型等换:
NULL == None
INTEGER == int
REAL == float
fTEXT == str
BLOB == bytes
Type Checking
* 如果一个纵列被公告去有个类,那么每个元素在那个纵列都必须一致(conform)或者被转换成xxx类
* sqlite不介意错误匹配的类发生, 爆炸自己负责
* example:
CREATE TABLE BIAO (name text);
INSERT INTO BIAO value(5);