SQLite ÖÐÎÄ FAQ
zz from https://www.dream4ever.org/showthread.php?t=86440 feuvan @ DRL
ÔÎÄÔÚhttp://sqlitecn.feuvan.net/faq.html
Óï·¨²¿·ÖÕýÔÚ·ÒëÖУ¬¾´ÇëÆÚ´ý
FAQÖÐÎİæ
ÈçºÎ´´½¨×ÔÔö×ֶΣ¿
SQLite Ö§³ÖÄÄЩÊý¾ÝÀàÐÍ£¿
ΪʲôÄÜÏò SQLite Êý¾Ý¿âµÄÕûÐÍ×Ö¶ÎÖвåÈë×Ö·û´®£¿
Ϊʲô SQLite ÈÏΪ±í´ïʽ '0'=='00' ÎªÕæ£¿
Ϊʲô SQLite ²»ÔÊÐíÔÚͬһÕűíÀïʹÓà '0' ºÍ '0.0' ×÷ΪÁ½¸ö²»Í¬µÄÐеÄÖ÷¼ü£¿
Ϊʲô²»ÄÜÔÚ Linux box ÖжÁÈ¡ÔÚ SparcStation Öд´½¨µÄ SQLite Êý¾Ý¿â£¿
¶à¸öÓ¦ÓóÌÐò»òÕßͬһ¸öÓ¦ÓóÌÐòµÄ¶à¸öÀý³ÌÄÜͬʱ´æÈ¡Í¬Ò»¸öÊý¾Ý¿âÎļþÂð£¿
SQLiteÊÇḬ̈߳²È«µÄÂð?
ÈçºÎÁгöÒ»¸ö SQLite Êý¾Ý¿âÖеÄËùÓеıí/Ë÷Òý£¿
SQLiteÊý¾Ý¿âÊÇ·ñÓÐÒÑÖªµÄ´óСÏÞÖÆ£¿
ÔÚ SQLite ÖÐ VARCHAR µÄ×î´ó³¤¶ÈÊǶàÉÙ£¿
SQLite ÊÇ·ñÖ§³Ö BLOB ÀàÐÍ£¿
ÈçºÎ´ÓÒ»¸öÒÑ´æÔÚµÄ SQLite Êý¾Ý±íÖÐÌí¼Ó/ɾ³ý×ֶΣ¿
ÎÒɾ³ýÁ˺ܶàÊý¾Ýµ«ÊÇÊý¾Ý¿âÎļþ²¢Ã»ÓмõС£¬ÊDz»ÊÇ Bug£¿
ÊÇ·ñÄܽ« SQLite ÓÃÓÚÉÌÒµÓÃ;¶ø²»Óý»°æÈ¨·ÑÓã¿
ÎÒÈçºÎʹÓú¬Óе¥ÒýºÅ(')µÄ×Ö·û´®£¿
SQLITE_SCHEMA ´íÎó´ú±íʲô£¿
ΪʲôROUND(9.95,1) ·µ»Ø 9.9 ¶ø²»ÊÇ 10.0? ÄѵÀ9.95 ²»¸ÃÏòÉϽøÎ»Ã´£¿
--------------------------------------------------------------------------------
(1) ÈçºÎ´´½¨×ÔÔö×ֶΣ¿
¼òµ¥µÄ»Ø´ð£ºÒ»¸öÉùÃ÷Ϊ INTEGER PRIMARY KEY µÄ×ֶν«×Ô¶¯Ôö¼Ó¡£
ÕâÀïÊÇÏêϸµÄ´ð°¸£º ´Ó SQLite µÄ 2.3.4 °æ±¾¿ªÊ¼£¬Èç¹ûÄ㽫һ¸ö±íÖеÄÒ»¸ö×Ö¶ÎÉùÃ÷Ϊ INTEGER PRIMARY KEY£¬ÄÇôÎÞÂÛÄãºÎʱÏò¸Ã±íµÄ¸Ã×ֶβåÈëÒ»¸ö NULL Öµ£¬Õâ¸ö NULL Öµ½«×Ô¶¯±»¸ü»»Îª±È±íÖиÃ×Ö¶ÎËùÓÐÐеÄ×î´óÖµ´ó 1 µÄÕûÊý£»Èç¹û±íΪ¿Õ£¬ÄÇô½«±»¸ü»»Îª 1¡£±ÈÈ磬¼ÙÉèÄãÓÐÕâÑùµÄÒ»ÕÅÊý¾Ý±í:
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() ·µ»Ø×î½üµÄ²åÈë²Ù×÷µÄÕûÐμü
×¢ÒâÕâ¸öÕûÐͼüʼÖÕ±È֮ǰ²åÈë±íÖеÄ×îºóÒ»¸ö¼ü´ó1¡£Ð¼üÏà¶ÔÓÚ±íÖеÄÒÑÓмüÀ´ËµÊÇΨһµÄ£¬ µ«Ëü¿ÉÄÜÓë֮ǰ´Ó±íÖÐɾ³ýµÄ¼üÖµÖØµþ¡£ÒªÊ¼Öյõ½ÔÚÕû¸ö±íÖÐΨһµÄ¼ü£¬ÔÚINTEGER PRIMARY KEYµÄÉùÃ÷֮ǰ¼Ó¹Ø¼ü´ÊAUTOINCREMENT.ÕâÑù±»Ñ¡µÄ¼ü½«×ÜÊDZȱíÖÐÒÑ´æÔÚµÄ×î´ó¼ü´ó1¡£Èô¿ÉÄÜµÄ ×î´ó¼üÒÑ´æÔÚÓÚ±íÖУ¬INSERT²Ù×÷½«Ê§°Ü²
Ïà¹ØÎĵµ£º
AutoIt3¿ª·¢µÄ²Ù×÷SQliteÊý¾Ý¿âµÄÔ´ÂëÏÂÔØ
²¿·ÖÔ´Âë
_SQLite_Startup () ;¼ÓÔØ SQLite.dll
If Not FileExists($SQLite_Data_Path) Then
SQLCreate()
EndIf
$GUI_Form = GUICreate($Title, 300, 435, -1, -1)
GUISetBkColor(0xECE9D8) ; will change background color
$GUI_ListBox = GUIC ......
ÔÚ .NET ÀïÃæÊ¹Óà SQLite£¬ ÎÒÕâÀïʹÓõÄwrapperÊÇ System.Data.SQLite£¬ËüÖ»ÐèÒªÒ»¸ödll,½Ó¿Ú·ûºÏADO.Net 2.0µÄ¶¨Òå,ÐÔÄÜÒ²²»´í,NHibernateÓõÄÒ²ÊÇËü£¬Ä¿Ç°Ö§³ÖADO.NET 3.5ÁË£¬Ö§³Ö¼¯³ÉÔÚ VS2005 ºÍ VS2008ÀïÃæ£¬¶øÇÒÖ§³Öwince£¬ÊǸöÁÁµã
ÒòΪ·ûºÏADO.NETµÄ¹æ·¶£¬ËùÒÔʹÓ÷½Ê½£¬»ù±¾ºÍ SqlClient, OleDbµÈÔÉúµÄÒ»ÖÂ
us ......
1. ÏÂÔØ×îаæ SQLite (sqlite-3_6_23_1), copyµ½C:\ÏÂ.
2. н¨Êý¾Ý¿â:
C:\>sqlite3.exe "d:\testdb.db"
3.½øÈëÁËsqlite3Ö®ºó£¬»á¿´µ½ÒÔÏÂÎÄ×Ö£º
SQLite version 3.1.3
Enter ".help" for instructions
sqlite>
4.½¨Ò»¸öÃû½ÐfilmµÄÊý¾Ý¿â±í
create table film(title, length, year, starring);
5.²åÈë¼Ç¼ ......
sqliteÊÇ
Ò»¸ö·Ç³£Ð¡ÇÉµÄ¿çÆ½Ì¨Ç¶ÈëʽÊý¾Ý¿â£¬Ëü±¾Éí²»Ìṩ¼ÓÃܹ¦ÄÜ£¬²»¹ýÉè¼ÆÕßÃ÷ÏÔÒ²¿¼ÂÇÁ˼ÓÃܵķ½°¸£¬ÎÒÃÇÔÚÔ´ÂëÖпÉÒÔÕÒµ½Á½¸öÔ¤ÁôµÄ¼ÓÃܽÓ
¿Ú£ºsqlite3_keyºÍsqlite3_rekey£¬¿ÉÒÔͨ¹ýʵÏÖÕâÁ½¸ö½Ó¿ÚÀ´´ïµ½¼ÓÃܵÄÄ¿µÄ¡£
ÈçºÎ¼ÓÃÜ£¬ÒѾÓкܶàÎÄÕÂÃèÊö£¬¿ÉÒԲο¼:¡¶
......
ÓÃÁËADO.NET 2.0 SQLite Data Provider ÕâÑù¿ÉÒÔÖ±½ÓÀûÓÃËüÀ´´´½¨Ò»¸ö¼ÓÃܵÄsqliteÊý¾Ý¿â¡£
ÓйØc#´úÂëÈçÏ£º
1¡¢´´½¨¿ÕµÄsqliteÊý¾Ý¿â¡£
//Êý¾Ý¿âÃûµÄºó׺Äã¿ÉÒÔÖ±½ÓÖ¸¶¨£¬ÉõÖÁûÓкó׺¶¼¿ÉÒÔ
//·½·¨Ò»£º´´½¨Ò»¸ö¿ÕsqliteÊý¾Ý¿â£¬ÓÃIOµÄ·½Ê½
FileStream fs = File.Create(“c:\\test.db“);
//·½·¨¶þ£ºÓ ......