Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5017
  • 博文数量: 4
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 30
  • 用 户 组: 普通用户
  • 注册时间: 2013-12-27 10:30
个人简介

一品威客网是中国首家全免费威客平台,是威客和雇主最信赖的威客网站,中国最有价值的创意交易平台,是继猪八戒威客网之后领先新型威客网站品威客网是中国首家全免费威客平台,是威客和雇主最信赖的威客网站,中国最有价值的创意交易平台,是继猪八戒威客网之后领先新型威客网!

文章分类

全部博文(4)

文章存档

2014年(2)

2013年(2)

我的朋友
最近访客

分类: iOS平台

2013-12-30 17:35:47

的客户端存储数据一般是存储在SQLite3中。在进行数据库Sql操作之前,首先有个问题需要说明,就是Sqlite的数据类型,和其他的数据库不同,Sqlite支持的数据类型有他自己的特色,这个特色有时会被认为是一个潜在的缺点,但是这个问题并不在我们的讨论范围之内。
如何使用Sqlite3数据库
    Sqlite3数据类型及存储类
    每个存放在sqlite数据库中(或者由这个数据库引擎操作)的值都有下面中的一个存储类:
   (1)NULL,值是NULL
   (2)INTEGER,值是有符号整形,根据值的大小以1,2,3,4,6或8字节存放
   (3)REAL,值是浮点型值,以8字节IEEE浮点数存放
   (4)TEXT,值是文本字符串,使用数据库编码(UTF-8,UTF-16BE或者UTF-16LE)存放
   (5)BLOB,只是一个数据块,完全按照输入存放(即没有准换)
    注:①Sqlite没有单独的布尔存储类型,它使用INTEGER作为存储类 型,0为false,1为true
            ②Sqlite没有另外为存储日期和时间设定一个存储类集,内置的sqlite日期和时间函数能够将日期和时间以TEXT,REAL或INTEGER形式存放
      TEXT 作为IS08601字符串("YYYY-MM-DD HH:MM:SS.SSS")
      REAL 从格林威治时间11月24日,4174 B.C中午以来的天数
      INTEGER 从 1970-01-01 00:00:00 UTC以来的秒数
    SQLiteTypeAffinity(类型检测)
    用于自动检测值的类型,以下列举Affinity如何决定类型的规则
    (1)如果类型声明中有"CHAR","CLOB",or"TEXT",则使用Textaffinity
    (2)如果类型声明中有int,则使用INTEGERaffinity.
    (3)如果类型声明中有"REAL","FLOA",or"DOUB",则使用REALaffinity
    (4)如果类型声明中有BLOB或没有指定类型,则使用affinityNONE
    (5)否则使用Numericaffinity
    类型比较NULL
    memcmp函数原型
    intmemcmp(constvoid*ptr1,constvoid*ptr2,size_tnum); 
    比较两个指针指向内存的前num个byte
    比较之前的类型转换
    l(INTEGER,REALorNUMERIC)和(TEXTorNONE)比较,则TEXT,NONE会被转换成NUMERIC
    lTEXT和NONE比较,则NONE会被转换成TEXT
    其他情况直接比较。
    值得注意的是大多数的数据库在数据类型上都有严格的限制,在建立表的时候,每一列都必须制定一个数据类型,只有符合该数据类型的数据可以被保存在这一列当中。而在 Sqlite 2.X中,数据类型这个属性只属于数据本生,而不和数据被存在哪一列有关,也就是说数据的类型并不受数据列限制(有一个例外:INTEGER PRIMARY KEY,该列只能存整型数据)。希望通过iOS SQLite的操作内容的学习能对你有所帮助。
阅读(406) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~