sqlite´úÂëµÄ±àд
ÏÂÔØ´úÂë
È¡µÃÒ»·Ý¶þ½øÖÆ¿½±´, »òÕßÊÇÔ´´úÂë²¢×Ô¼º±àÒëËü. ¹ØÓÚ ÏÂÔØÒ³£¨download£© µÄ¸ü¶àÐÅÏ¢.
´´½¨Ò»¸öÐÂÊý¾Ý¿â
ÔÚ DOS ÃüÁîÐÐÏÂ, ÊäÈë: "sqlite3 test.db". ½«´´½¨Ò»¸öеÄÊý¾Ý¿âÎļþÃû½Ð"test.db". (Äã¿ÉÒÔʹÓò»Í¬µÄÃû×Ö)
ÊäÈë SQL ÃüÁîÔÚÌáʾ·ûÏ´´½¨ºÍдÈëеÄÊý¾Ý.
д³ÌÐòʹÓà SQLite
ÏÂÃæÊÇÒ»¸ö¼òµ¥µÄ TCL ³ÌÐòÈÃÎÒÃÇ¿´¿´ÔõôʹÓà sqlite µÄ TCL ½Ó¿Ú. ´Ë³ÌÐòÖ´ÐÐ SQL ÉùÃ÷µÄµÚ¶þ¸ö²ÎÊý Ö´ÐÐSQLÃüÁî. Õâ¸öÃüÁîÊÇ sqlite3 ÔÚµÚ 7 Ðдò¿ªÒ»¸ö SQLite Êý¾Ý¿â²¢ÇÒ´´½¨Ò»¸öÐ嵀 TCL ÃüÁÃû×ÖÊÇ"db" Á¬½Óµ½Êý¾Ý¿â,Õâ¸ö db ÃüÁîÔÚµÚ 8 ÐÐÖ´ÐÐ SQL ÃüÁî¶ÔÊý¾Ý¿â,²¢ÇҹرÕÓëÊý¾Ý¿âµÄÁ¬½Ó.
´úÂë:
#!/usr/bin/tclsh
if {$argc!=2} {
puts stderr "Usage: %s DATABASE SQL-STATEMENT"
exit 1
}
load /usr/lib/tclsqlite3.so Sqlite3
sqlite3 db [lindex $argv 0]
db eval [lindex $argv 1] x {
foreach v $x(*) {
puts "$v = $x($v)"
}
puts ""
}
db close
ÏÂÃæÊÇÒ»¸öC³ÌÐòµÄÀý×Ó£¬ÏÔʾÔõôʹÓà sqlite µÄ C/C++ ½Ó¿Ú. Êý¾Ý¿âµÄÃû×ÖÓɵÚÒ»¸ö²ÎÊýÈ¡µÃÇÒµÚ¶þ¸ö²ÎÊý»ò¸ü¶àµÄ²ÎÊýÊÇ SQL Ö´ÐÐÓï¾ä. Õâ¸öº¯Êýµ÷ÓÃsqlite3_open() ÔÚ 22 Ðдò¿ªÊý¾Ý¿â, sqlite3_exec() ÔÚ 27 ÐÐÖ´ÐÐ SQL ÃüÁî, ²¢ÇÒsqlite3_close() ÔÚ 31 ÐйرÕÊý¾Ý¿âÁ¬½Ó.
´úÂë:
#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;
if( argc!=3 ){
fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]);
exit(1);
}
rc = sqlite3_open(argv[1], &db);
if( rc ){
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
exit(1);
}
rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg);
if( rc!=SQLITE_OK ){
fprintf(stderr, "SQL error: %s\n", zErrMsg);
}
sqlite3_close(db);
return 0;
}
Ïà¹ØÎĵµ£º
ÎÄÕÂÀ´Ô´ÓÚhttp://blog.csdn.net/ast_224/archive/2009/01/08/3734099.aspx
......
1. ´ò¿ªÄÚ´æÊý¾Ý¿â
Ö±½Ó´ò¿ªÒ»¸öÃûΪ":memory:"»òÕß Ãû×ÖÖ±½ÓΪ¿ÕµÄÊý¾Ý¿â£¬ Á½ÖÖÊý¾Ý¿âÂÔ΢ÓÐÐ©Çø±ð¡£
²Î¿¼ £ºhttp://www.sqlite.org/inmemorydb.html
2. ±£´æÄÚ´æÊý¾Ý¿â
3. ÅжϱíÊÇ·ñ´æÔÚ
ͨ¹ý²éѯϵͳ±ísqlite_masterÀ´»ñÈ¡Ïà¹ØÐÅÏ¢
select * f ......
SQL-92ÌØÐÔ·½Ãæ
ÕýÈçÇ°ÃæÌáµ½µÄ£¬SQLite²»Ö§³ÖSQL-92µÄÔںܶàÆóÒµÊý¾Ý¿âϵͳÖпÉÓõÄÒ»Ð©ÌØÐÔ¡£
È磺
Íâ¼üÔ¼Êø£¨¿É½âÎöµÄ£¬µ«·ÇÇ¿ÖÆ£©
ºÜ¶àALTER TABLEÌØÐÔ
һЩTRIGGERÏà¹ØµÄÌØÐÔ
RIGHTºÍFULL OUTER JOIN
¸üÐÂÒ»¸öVIEW
GRANTºÍREVOKE
Äã¿ÉÒÔÔÚSQLiteµÄÖ÷Ò³ÉÏ»ñÈ¡×îÐÂÐÅÏ¢¡£
http://www.sqlite.org/omitted.html
......
£¨4£© ÊÂÎñ´¦Àí
sqlite ÊÇÖ§³ÖÊÂÎñ´¦ÀíµÄ¡£Èç¹ûÄãÖªµÀÄãҪͬ²½É¾³ýºÜ¶àÊý¾Ý£¬²»·Â°ÑËüÃÇ×ö³ÉÒ»¸öͳһµÄÊÂÎñ¡£
ͨ³£Ò»´Î sqlite3_exec ¾ÍÊÇÒ»´ÎÊÂÎñ£¬Èç¹ûÄãҪɾ³ý1ÍòÌõÊý¾Ý£¬sqlite¾Í×öÁË1Íò´Î£º¿ªÊ¼ÐÂÊÂÎñ->ɾ³ýÒ»ÌõÊý¾Ý->Ìá½»ÊÂÎ ......
Ê×ÏÈÉùÃ÷£ºÈç¹ûÄãÏëÖ±½Óalter£¬·ÅÆú°É¡£ÒÔÏÂÄÚÈÝ¿ÉÒÔºöÂÔÁË¡£
sqlite¹Ù·½ËµÃ÷ÈçÏ£º
SQLite supports a limited subset of ALTER TABLE. The ALTER TABLE command in SQLite allows the user to rename a table or to add a new column to an existing table. It is not possible to rename a column, remove a column, o ......