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ϵÄÊý¾Ý¿âÒ²ºÜ¶à£¬ÓпªÔ´µÄ£¬Ò²ÓÐÊշѵġ£¶ÔÓÚÎÒÃÇÀ´Ëµ£¬¿Ï ......
1¡¢.back ?DB? FILE ±¸·ÝDB(ĬÈÏΪmain)µ½Îļþ
2¡¢.bail ON|OFF Óöµ½Ò»¸ö´íÎó¿ÛÍ£Ö¹£¬¸ÃֵĬÈÏΪOFF
3¡¢.databases Áоٸ½¼Óµ½Êý¾Ý¿âµÄÊý¾Ý¿âÃûºÍÎļþÃû
4¡¢.dump ?TABLE? ... ÓÃSQLÎı¾¸ñʽÁоÙÊý¾Ý¿â£¬Èç¹ûÖ¸¶¨TABLE£¬½ö½öÁÐ¾ÙÆ¥ÅäµÄ±í£¬LIKEÀàÐÍTABLE
5¡¢.echo ON|OFF ÉèÖÃechoµÄ״̬ ......
Ê×ÏÈ×öµãÆÌµæËµÃ÷£º
sqlite³ÌÐòͨ¹ý²éÕÒ·ÖºÅ(;)À´¾ö¶¨Ò»¸öSQLÓï¾äµÄ½áÊø,ËùÒÔÒªÖ´ÐÐSQLÓï¾äÇëÈ·±£ÔÚSQLÓï¾äºóÓзֺÅ(;).Èç¹ûÄãÊ¡ÂԷֺţ¬sqlite3½«¸øÄãÒ»¸öÁ¬ÐøµÄÃüÁîÌáʾ·û(...> )²¢µÈÄã¸øµ±Ç°µÄSQLÃüÁîÌí¼Ó¸ü¶àµÄÎÄ×Ö¡£Õâ¸öÌØµãÈÃÄãÊäÈë¶àÐеĶà¸öSQLÓï¾ä.µ«µãºÅ(.)ÃüÁî²»Òª·ÖºÅ(;).ctrl+c¿ÉÒÔ½áÊøµ±Ç°ÃüÁî¡£
ÔÚdos´ ......
.nullvalue STRING ÓÃSTRING´úÌænullÖµÏÔʾ,²»ÄÑÀí½â£¬¾Í²»ÔÙÀÛÊöÁË¡£
.output FILENAME ÉèÖðѲéѯÊä³öµ½Îļþ,ºóÃæµÄÊä³ö½á¹û¶¼±£´æµ½ÎļþÖÐ,È磺
sqlite> .mode list
sqlite> .output websites.txt
sqlite> select * from websites;
sqlite>
¿ÉÒÔÔÚFÅÌÏ·¢ÏÖ½¨Á¢ÁËwebsites.txtÎļþ£¬ÆäÄÚÈÝÈçÏ£º
......