SQLite ¼ò½é
SQLite ÊÇÒ»¸öʵÏÖÁËÍ걸µÄ£¨self-contained)£¬¿ÉǶÈëµÄ(embeddable)£¬ÁãÅäÖÃ(zero-configuration)µÄSQLÊý¾Ý¿âÒýÇæµÄСÐ͵ÄCº¯Êý¿â¡£Ëü°üº¬ÒÔϵÄÌØµã£º
.
ÊÂÎñ´¦ÀíÔ×Ó»¯(atomic)£¬Ò»Ö»¯(consistent)£¬³Ö¾Ã»¯(isolated)£¬¾øÔµ»¯(durable)£¬¼´Ê¹ÊÇÔÚϵͳ±ÀÀ£ºÍµôµçʱ
ÁãÅäÖ㬲»ÐèÒªÉèÖûòÕß¹ÜÀí
ʵÏÖÁËSQL92µÄ´ó²¿·Ý±ê×¼ £¨²»Ö§³ÖÌØÐÔ£©
Õû¸öµÄÊý¾Ý¿â±»´¢´æÔÚµ¥¸öµÄ´ÅÅÌÎļþÉÏ
Êý¾Ý¿âÎļþÄܹ»±»²»Í¬×Ö½ÚÐòµÄ»úÆ÷Ëù¹²ÓÃ
Ö§³ÖT×Ö½ÚºÍG×Ö½Ú´óСµÄ×Ö·û´®ºÍ¿é(blob)
СÐ͵ĴúÂëºÛ¼£(small code footprint)£¬ÍêÈ«ÅäÖúõÄСÓÚ250kiB£¬Ê¡ÂÔµôһЩ¿ÉÑ¡ÓõÄÌØÐԵĽ«Ð¡ÓÚ150KiB
´ó²¿·ÖµÄÒ»°ã²Ù×÷±ÈÁ÷ÐеÄC/SÊý¾Ý¿âÒª¿ì
¼òµ¥ÈÝÒ×ʹÓõÄAPI¡£
°üº¬ÁËTCLµÄ°ó¶¨£¬ÒÔ¼°ÆäËû¸÷ÖÖ²»Í¬µÄ¿ÉÓÃÓïÑԵİ󶨡£
´úÂëÓÐÁ¼ºÃµÄ×¢ÊÍ£¬²âÊÔ¸²¸ÇÂʳ¬¹ý98£¥
Äܹ»ÒÔµ¥¸ö¼òµ¥ANSI£CµÄÔ´ÎļþµÄÐÎʽÇáÒ׵IJåÈëµ½ÁíÒ»¸ö¹¤³ÌÖÐ
Í걸ÐÔ£¬Ã»ÓжîÍâµÄÒÀÀµ¹ØÏµ¡£
Ô´´úÂëÊǹ«¹²µÄ£¬ÓÃ;¹ã·º
SQLiteµÄ·¢ÐаæÖаüº¬ÁËÒ»¸ö¶ÀÁ¢µÄÃüÁîÐÐÈë¿Ú³ÌÐò£¨sqlite£©£¬Ëû¿ÉÒÔÓÃÀ´¹ÜÀíSQLiteÊý¾Ý¿â£¬²¢ÇÒÒ²¿ÉÒÔ×÷Ϊһ¸öʹÓÃSQLiteº¯Êý¿âµÄÒ»¸öÀý×Ó¡£
ÔÚ¹Ù·½ÍøÕ¾ÉÏÌṩÁË¿ìËÙÈëÃŽ̳̣¬Ò»°ãµÄÔÚlinuxÏÂÓÐC±à³ÌµÄÈË»ù±¾É϶¼ÄÜÁ˽⣬ֻÊǸоõÓеãǷȱ¡£
´´½¨database
$sqlite3 test.db
¾Í¿ÉÒÔ´´½¨ÄãËùÒªµÄdatabaseÁË£¬Äã¿ÉÒÔÔÚsqllite3ÖеÄÃüÁîÐеÄÌáʾ·ûºóÖÐÓÃsqlÓïÑÔ´´½¨Ìí¼Ó×Ô¼ºµÄ±íºÍÊý¾Ý£¬µ±È»ÄãÒ²¿ÉÒÔʹÓÃËûÌṩµÄCµÄapiÀ´×öÀàËÆµÄÊ¡£
ÏÂÃæµÄ³ÌÐòÊǹÙÍøÉϵÄÒ»¸öʵÀý,Ö÷ÒªµÄ¹¦ÄÜÊÇ»ù±¾µÄʵÏÖÁËÒ»¸öÀàËÆÓësqlite3ÃüÁîµÄ³ÌÐò
test.c
#include <stdio.h>
#include <sqlite3.h>
static int callback(void *NotUsed, int argc, char **argv, char **azColName){
int i;
for(i=0; i<argc; i++){
printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf("\n");
return 0;
}
int main(int argc, char **argv){
sqlite3 *db;
char *zErrMsg = 0;
int rc;
Ïà¹ØÎĵµ£º
ǰһÕó×Ö×öÏîÄ¿(ǶÈëʽlinux)£¬ÓÉÓÚÒª±£´æ´óÁ¿µÄÊý¾Ý£¬¶øÇÒ×Ҫ±£´æ30ÌìµÄʱ¼ä¡£±¾À´´òËã±£´æµ½ÎļþÖУ¬Ã¿´ÎÆô¶¯Ó¦ÓóÌÐòµÄʱºòÖØÐ½âÎöÒ»±é£¬¿ÉÊǵ±Êý¾ÝÁ¿ºÜ´óµÄʱºò£¬¾Í³öÏÖЧÂʵÄÎÊÌâÁË¡£ËùÒÔ×îºó»¹ÊÇ·ÅÆúÁËʹÓÃÎļþµÄ´òË㣬¾ö¶¨Ê¹ÓÃÊý¾Ý¿â´æÈ¡Êý¾Ý¡£
linuxϵÄÊý¾Ý¿âÒ²ºÜ¶à£¬ÓпªÔ´µÄ£¬Ò²ÓÐÊշѵġ£¶ÔÓÚÎÒÃÇÀ´Ëµ£¬¿Ï ......
.dump ?TABLE? ... ÒÔSQLÓï¾ä·½Ê½ÏÔʾ±íµÄ½á¹¹¡£È磺
sqlite> .dump websties
BEGIN TRANSACTION;
COMMIT;
sqlite> .dump websites
BEGIN TRANSACTION;
CREATE TABLE [websites] (
[WebID] INTEGER NOT NULL PRIMARY KEY,
[WebName] VARCHAR(20) NULL
);
INSERT INTO "websites" VALUES(1,'CTOChina.net'); ......
¸ã¶¨ÁËÒ»¸öÀ§ÈÅÐí¾ÃµÄÎÊÌ⣬ÔÀ´sqliteÖеÄÖ÷¼üÒ²ÊÇ¿ÉÒÔÉèÖÃΪ×ÔÔöµÄ£º£©·½·¨¾ÍÊÇÉùÃ÷Ϊ INTEGER PRIMARY KEY µÄ×ֶοÉÒÔ×Ô¶¯Ôö¼Ó¡£
ÍøÉϲ鵽×ÊÁÏ˵£¬´Ó SQLite µÄ 2.3.4 °æ±¾¿ªÊ¼£¬Èç¹û½«Ò»¸ö±íÖеÄÒ»¸ö×Ö¶ÎÉùÃ÷Ϊ INTEGER PRIMARY KEY£¬ÄÇôֻÐèÏò¸Ã±íµÄ¸Ã×ֶβåÈëÒ»¸ö NULL Öµ£¬ ......
SQLiteÊý¾Ý¿âµÄÌåϵ½á¹¹(·Òë×Ôsqlite.org)
1 ¼ò½é
±¾ÎĵµÃèÊöÁËSQLite¿âµÄÌåϵ½á¹¹£¬ÕâЩÐÅÏ¢¶ÔÄÇЩÏëÀí½âºÍÐÞ¸ÄSQLiteµÄÄÚ²¿¹¤×÷»úÖÆµÄÈËÊÇÓÐÓõġ£
±¾ÎĵµÃèÊöSQLite 3.0°æ±¾£¬2.8°æ»ò¸üÔçÆÚµÄ°æ±¾Óë´ËÏàËÆ£¬Ö»ÊÇϸ½ÚÉÏÓÐËù²»Í¬¡£
2 ½Ó¿Ú
......
Ò»¡¢SQLite¼ò½é
SQLite ÊÇÓÃCÓïÑÔ±àдµÄ¿ªÔ´Êý¾Ý¿â£¬Ö÷ÒªÓÃÓÚǶÈëʽ£¬ÄãÒ²¿ÉÒÔ°ÑËü¼¯³ÉÔÚ×Ô¼ºµÄ×ÀÃæ³ÌÐòÖУ¬Ò²ÓÐÈ˽«ÆäÌæ´úAccess£¬ÓÃ×÷ºǫ́Êý¾Ý¿â¡£
SQLite Ö§³Ö¶àÊýSQL92±ê×¼£¬ÀýÈ磺Ë÷Òý¡¢ÏÞÖÆ¡¢´¥·¢ºÍ²é¿´Ö§³Ö¡£
Ö§³Ö NULL¡¢INTEGER¡¢REAL¡¢TEXT ºÍ BLOB Êý¾ÝÀàÐÍ£¬Ö§³ÖÊÂÎñ¡£
¶þ¡¢ÏÂÔØSQLite
SQLite¿ÉÒÔµ½¹Ù·½Õ¾µ ......