SQLite³£¼ûÎÊÌâ½â´ð
1¡¢ÈçºÎ½¨Á¢×Ô¶¯Ôö³¤×Ö¶Î?
¼ò¶Ì»Ø´ð£ºÉùÃ÷Ϊ INTEGER PRIMARY KEY µÄÁн«»á×Ô¶¯Ôö³¤¡£
³¤Ò»µãµÄ´ð°¸£º Èç¹ûÄãÉùÃ÷±íµÄÒ»ÁÐΪ INTEGER PRIMARY KEY£¬ÄÇô£¬ ÿµ±ÄãÔÚ¸ÃÁÐÉϲåÈëÒ»NULLֵʱ£¬ NULL×Ô¶¯±»×ª»»ÎªÒ»¸ö±È¸ÃÁÐÖÐ×î´óÖµ´ó1µÄÒ»¸öÕûÊý£¬Èç¹û±íÊǿյģ¬ ½«»áÊÇ1¡£ (Èç¹ûÊÇ×î´ó¿ÉÄܵÄÖ÷¼ü 9223372036854775807£¬ÄǸö£¬½«¼üÖµ½«ÊÇËæ»úδʹÓõÄÊý¡££© È磬ÓÐÏÂÁÐ±í£º
CREATE TABLE t1(
¡¡a INTEGER PRIMARY KEY,
¡¡b INTEGER
);
¡¡¡¡ÔڸñíÉÏ£¬ÏÂÁÐÓï¾ä
INSERT INTO t1 VALUES(NULL,123);
¡¡¡¡ÔÚÂß¼ÉϵȼÛÓÚ£º
INSERT INTO t1 VALUES((SELECT max(a) from t1)+1,123);
¡¡¡¡ÓÐÒ»¸öеÄAPI½Ð×ö sqlite3_last_insert_rowid()£¬ Ëü½«·µ»Ø×î½ü²åÈëµÄÕûÊýÖµ¡£
¡¡¡¡×¢Òâ¸ÃÕûÊý»á±È±íÖиÃÁÐÉϵIJåÈë֮ǰµÄ×î´óÖµ´ó1¡£ ¸Ã¼üÖµÔÚµ±Ç°µÄ±íÖÐÊÇΨһµÄ¡£µ«ÓпÉÄÜÓëÒÑ´Ó±íÖÐɾ³ýµÄÖµÖØµþ¡£ ÒªÏ뽨Á¢ÔÚÕû¸ö±íµÄÉúÃüÖÜÆÚÖÐΨһµÄ¼üÖµ£¬ÐèÒªÔÚ INTEGER PRIMARY KEY ÉÏÔö¼ÓAUTOINCREMENTÉùÃ÷¡£ÄÇô£¬ÐµļüÖµ½«»á±È¸Ã±íÖÐÔøÄÜ´æÔÚ¹ýµÄ×î´óÖµ´ó1¡£ Èç¹û×î´ó¿ÉÄܵÄÕûÊýÖµÔÚÊý¾Ý±íÖÐÔø¾´æÔÚ¹ý£¬INSERT½«»áʧ°Ü£¬ ²¢·µ»ØSQLITE_FULL´íÎó´úÂë¡£
(2)SQLiteÖ§³ÖºÎÖÖÊý¾ÝÀàÐÍ£¿
¡¡¡¡²Î¼û http://www.sqlite.org/datatype3.html.
(3)SQLiteÔÊÐíÏòÒ»¸öintegerÐÍ×Ö¶ÎÖвåÈë×Ö·û´®£¡
¡¡¡¡ÕâÊÇÒ»¸öÌØÐÔ£¬¶ø²»ÊÇÒ»¸öbug¡£SQLite²»Ç¿ÖÆÊý¾ÝÀàÐÍÔ¼Êø¡£ ÈκÎÊý¾Ý¶¼¿ÉÒÔ²åÈëÈκÎÁС£Äã¿ÉÒÔÏòÒ»¸öÕûÐÍÁÐÖвåÈëÈÎÒⳤ¶ÈµÄ×Ö·û´®£¬ Ïò²¼¶ûÐÍÁÐÖвåÈ븡µãÊý£¬»òÕßÏò×Ö·ûÐÍÁÐÖвåÈëÈÕÆÚÐÍÖµ¡£ ÔÚ CREATE TABLE ÖÐËùÖ¸¶¨µÄÊý¾ÝÀàÐͲ»»áÏÞÖÆÔÚ¸ÃÁÐÖвåÈëÈκÎÊý¾Ý¡£ ÈκÎÁоù¿É½ÓÊÜÈÎÒⳤ¶ÈµÄ×Ö·û´®£¨Ö»ÓÐÒ»ÖÖÇé¿ö³ýÍ⣺ ±ê־ΪINTEGER PRIMARY KEYµÄÁÐÖ»ÄÜ´æ´¢64λÕûÊý£¬ µ±ÏòÕâÖÖÁÐÖвåÊý¾Ý³ýÕûÊýÒÔÍâµÄÊý¾Ýʱ£¬½«»á²úÉú´íÎó¡£
¡¡¡¡µ«SQLiteȷʵʹÓÃÉùÃ÷µÄÁÐÀàÐÍÀ´Ö¸Ê¾ÄãËùÆÚÍûµÄ¸ñʽ¡£ËùÒÔ£¬ ÀýÈçÄãÏòÒ»¸öÕûÐÍÁÐÖвåÈë×Ö·û´®Ê±£¬SQLite»áÊÔͼ½«¸Ã×Ö·û´®×ª»»³ÉÒ»¸öÕûÊý¡£ Èç¹û¿ÉÒÔת»»£¬Ëü½«²åÈë¸ÃÕûÊý£»·ñÔò£¬½«²åÈë×Ö·û´®¡£ ÕâÖÖÌØÐÔÓÐʱ±»³ÆÎª ÀàÐÍ»òÁÐÇ׺ÍÐÔ(type or column affinity).
(4)ΪʲôSQLite²»ÔÊÐíÔÚͬһ¸ö±í²»Í¬µÄÁ½ÐÐÉÏʹÓÃ0ºÍ0.0×÷Ö÷¼ü£¿
¡¡¡¡Ö÷¼ü±ØÐëÊÇÊýÖµÀàÐÍ£¬½«Ö÷¼ü¸ÄΪTEXTÐͽ«²»Æð×÷Óá£
¡¡¡¡Ã¿Ò»ÐбØÐëÓÐÒ»¸öΨһµÄÖ÷¼ü¡£¶ÔÓÚÒ»¸öÊýÖµÐÍÁУ¬ SQLiteÈÏΪ '0' ºÍ '0.0' ÊÇÏàͬµÄ£¬ ÒòΪËûÃÇÔ
Ïà¹ØÎĵµ£º
sqlite¹Ù·½Õ¾
http://www.sqlite.org/
SQL Syntax
http://www.sqlite.org/lang.html
sqliteÖÐÎÄÕ¾
http://www.sqlite.com.cn/
http://www.sqlitechina.org/
½¨Á¢Êý¾Ý¿âµµ°¸
ÓÃsqlite3½¨Á¢Êý¾Ý¿âµÄ·½·¨ºÜ¼òµ¥£¬Ö»ÒªÔÚshellϼüÈ루ÒÔÏÂ$·ûºÅΪshellÌáʾºÅ£¬ÇëÎð¼üÈ룩£º
$ sqlite3 foo.db
Èç¹ûĿ¼ÏÂûÓÐfo ......
SQLite°üº¬ÁËÈçÏÂʱ¼ä/ÈÕÆÚº¯Êý£º
datetime().......................²úÉúÈÕÆÚºÍʱ¼ä
date()...........................²úÉúÈÕÆÚ
time()...........................²úÉúʱ¼ä
strftime().......................¶ÔÒÔÉÏÈý¸öº¯Êý²úÉúµÄÈÕÆÚºÍʱ¼ä½øÐиñʽ»¯
datetime()µÄÓ÷¨ÊÇ£ºdatetime(ÈÕÆÚ/ʱ¼ä,ÐÞÕý·û,ÐÞÕý·û...)
......
1.ÔÚSQLiteÖвåÈ뵱ǰʱ¼ä,±äÁ¿¶¨Òå²»Óöà˵
char *sql = sqlite3_mprintf("insert into Log VALUES(datetime('now', 'localtime'), '%q', '%q')", cUser, cLogContent);
int ret = sqlite3_exec(Sqlite3, sql, NULL, NULL, &pErrMsg);
ÒÔÔ·ÝΪµ¥Î»Í³¼Æ³ö·ûºÏµ±Ç°Ô·ݵļǼ, TimeΪÊý¾Ý¿âÖÐ×Ö¶ÎÃû:
char *sql = s ......
¿ÉÒÔ½Ó×ÅÉÏÒ»²½²Ù×÷£¬Ö±½ÓÏòDOS´°¿ÚÊäÈë.helpÃüÁîÀ´²é¿´SQLiteµÄËùÓÐÃüÁîÐм°½âÊÍÈçÏ£º
F:\>sqlite3
SQLite version 3.6.16
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .help
Ò²¿ÉÒÔctrl+c½áÊøÃüÁÏëDOS´°¿Ú ÊäÈësqlite3Ö´ÐкóÔÙÊäÈë.helpÃüÁîÈçÏ£º
F:\>sqli ......