转载:http://hi.baidu.com/424660053/item/b7672999683de836326eeb36
一,sqlite常见的数据类型@H_403_13@ sqlite是无类型的。这意味着你可以保存任何类型的数据到你所想要保存的任何表的任何列中,无论这列声明的数据类型是什么(只有自动递增IntegerPrimaryKey才有用)。对于sqlite来说对字段不指定类型是完全有效的。即使sqlite允许忽略数据类型,但是仍然建议在你的CreateTable语句中指定数据类型。因为数据类型对于你和其他的程序员交@H_403_13@流,或者你准备换掉你的数据库引擎是非常有用的。sqlite只支持常见的5种存储类,@H_403_13@NULL@H_403_13@INTEGER--整型@H_403_13@REAL--浮点数@H_403_13@TEXT--文本@H_403_13@BLOB--大二进制对象@H_403_13@以下定义的数据类型都会转到相应的存储类中。@H_403_13@createtabletab(--注意其中的注释方式@H_403_13@aVARCHAR(10),--长度不固定且其最大长度为n的字符串@H_403_13@bNVARCHAR(15),@H_403_13@cTEXT,--二进制对象@H_403_13@dINTEGER,--带符号的整型,具体取决于存入数字的范围大小@H_403_13@eFLOAT,arial; font-size:14px; line-height:21px">fBOOLEAN,arial; font-size:14px; line-height:21px">gCLOB,--使用CHAR来保存数据@H_403_13@hBLOB,--使用二进制对象保存数据,如保存位图@H_403_13@iTIMESTAMP,arial; font-size:14px; line-height:21px">jNUMBERIC(10,5),arial; font-size:14px; line-height:21px">kVARYINGCHARACTER(24),arial; font-size:14px; line-height:21px">lNATIONALVARYINGCHARACTER(16),//@H_403_13@jREAL--浮点数字,存储为8-byteIEEE浮点数@H_403_13@);@H_403_13@二,基本的数据操作@H_403_13@1,建立表@H_403_13@Createtableadmin(@H_403_13@usernametext,arial; font-size:14px; line-height:21px">ageinteger);@H_403_13@2,插入数据@H_403_13@insertinto表名(字段列表)values(值列表);@H_403_13@例如:insertintoadminvalues(‘song’,25);@H_403_13@3,查询@H_403_13@select字段名from表名;@H_403_13@select*fromadmin;@H_403_13@selectdistinctfieldfromtable_name;(distinct去掉重复项,将列中各字段值单个列出)@H_403_13@@H_403_13@4,删除数据@H_403_13@Deletefrom表名where条件子句。@H_403_13@deletefromadminformwhereusername=’song’;@H_403_13@5,修改@H_403_13@update表名set字段名=值where条件子句。@H_403_13@updateadminsetusername=’zhang’,age=24whereusername=’song’andage=25;@H_403_13@6,按条件分组@H_403_13@select*from表名where条件子句groupby分组子句having…orderby排子句@H_403_13@例如:@H_403_13@select*fromadminorderbyiddesc(降序)|asc(升序);@H_403_13@selectusernamefromadmingroupbyusernamehavingcount(*)>1;@H_403_13@7,多条件查询语句@H_403_13@select字段名from表名where子句1按子句二@H_403_13@select*fromadminwhereusername=’song’andage=24;@H_403_13@select*fromtable_namewherefieldin(‘val1’,’val2’,‘val3’);@H_403_13@select*fromtable_namewherefieldbetweenval1andval2;@H_403_13@select*fromadminlimit5;--限制输出数据记录数量@H_403_13@8,多条件排序@H_403_13@select字段名from表名orderby字段1(desc),字段2(desc);@H_403_13@select*fromadminorderbyt1,t2desc;@H_403_13@9,索引@H_403_13@例如建立复合索引:createindexidxT1onadmin(username,age);@H_403_13@各自建立索引:createindexidxUsernameonadmin(username);@H_403_13@createindexidxAgeonadmin(age);@H_403_13@10,外键FOREIGNKEY(UNIQUE|PRIMARYKEY|NOTNULL)的用法()@H_403_13@createtablea(@H_403_13@a1INTEGERPRIMARYKEY|UNIQUE|NOTNULL,arial; font-size:14px; line-height:21px">a2TEXT,arial; font-size:14px; line-height:21px">a3INTEGER);@H_403_13@createtableb()(@H_403_13@b1INTEGER,arial; font-size:14px; line-height:21px">b2TEXT,arial; font-size:14px; line-height:21px">b3INTEGER,arial; font-size:14px; line-height:21px">foreignkey(b3)referencesa(a1));@H_403_13@11,分页@H_403_13@select*fromaccountlimit5offset3;@H_403_13@或者select*fromaccountlimit5,3;@H_403_13@12,模糊查询@H_403_13@SELECT字段FROM表WHERE某字段LIKE条件@H_403_13@(1)%:表示任意0个或多个字符@H_403_13@(2)_:表示任意单个字符,匹配单个任意字符,常用来限制表达式的字符长度语句。@H_403_13@(3)[]:表示括号内所列字符中的一个(类似正则表达式)@H_403_13@select*fromadminwhereusernamelike‘[张李王]三’;@H_403_13@表示搜索的是“张三”,“李三”或“王三”@H_403_13@[4]:[^]表示不在括号所列之类的单个字符。@H_403_13@[5]:查询内容包含通配符时,用“[]”括起来。@H_403_13@13,删除表|索引@H_403_13@droptable[IFEXISTS]admin;@H_403_13@dropindexindex_name@H_403_13@14,查询记录数目@H_403_13@selectcount(*)fromtable_name;