>ç¶èï¼æ¬èå ä¸ç¥è¶³çå¿ä¾¿æ¯å¤§å©äºï¼å 为æä»¬æ²¡æå¸¦ä»ä¹å°ä¸ä¸æ¥ï¼ä¹ä¸è½å¸¦ä»ä¹å»ï¼åªè¦æè¡£æé£ï¼å°±å½ç¥è¶³ãä½é£äºæ³è¦åè´¢ç人ï¼å°±é·å¨è¿·æãè½å¨ç½ç½åè®¸å¤æ ç¥æå®³çç§æ¬²éï¼å«äººæ²å¨è´¥ååç亡ä¸ã贪财æ¯ä¸æ¶ä¹æ ¹ãæäººè´ªæé±è´¢ï¼å°±è¢«å¼è¯±ç¦»äºçéï¼ç¨è®¸å¤æè¦æèªå·±åºéäºã(1 TIMOTHY 6:6-10)
#SQLiteæ°æ®åº
SQLiteæ¯ä¸ä¸ªå°åçå
³ç³»åæ°æ®åºï¼å®æå¤§çç¹ç¹å¨äºä¸éè¦æå¡å¨ãé¶é
ç½®ãåé¢çä¸¤ä¸ªæ°æ®åºï¼ä¸ç®¡æ¯MySQLè¿æ¯MongoDBï¼é½éè¦âå®è£
âï¼å®è£
ä¹åï¼è¿è¡èµ·æ¥ï¼å
¶å®æ¯å·²ç»æä¸ä¸ªç¸åºçæå¡å¨å¨è·çå¢ã
èSQLiteä¸éè¦è¿æ ·ãé¦å
Pythonå·²ç»å°ç¸åºç驱卿¨¡åä½ä¸ºæ ååºä¸é¨åäºï¼åªè¦å®è£
äºPythonï¼å°±å¯ä»¥ä½¿ç¨ï¼å¦å¤ï¼å®ä¹ä¸éè¦æå¡å¨ï¼å¯ä»¥ç±»ä¼¼æä½æä»¶é£æ ·æ¥æä½SQLiteæ°æ®åºæä»¶ãè¿æä¸ç¹ä¹ä¸éï¼SQLiteæºä»£ç ä¸åçæéå¶ã
SQLite乿¯ä¸ä¸ªå
³ç³»åæ°æ®åºï¼æä»¥SQLè¯å¥å¯ä»¥å¨éé¢ä½¿ç¨ã
è·æä½MySQLæ°æ®åºç±»ä¼¼ï¼å¯¹äºSQLiteæ°æ®åºï¼ä¹è¦éè¿ä»¥ä¸å æ¥ï¼
- 建ç«è¿æ¥å¯¹è±¡
- è¿æ¥å¯¹è±¡æ¹æ³ï¼å»ºç«æ¸¸æ 对象
- 游æ å¯¹è±¡æ¹æ³ï¼æ§è¡sqlè¯å¥
##建ç«è¿æ¥å¯¹è±¡
ç±äºSQLiteæ°æ®åºç驱å¨å·²ç»å¨Pythonéé¢äºï¼æä»¥ï¼åªè¦å¼ç¨å°±å¯ä»¥ç´æ¥ä½¿ç¨ãå¹¶ä¸å¨å¦è¿MySQLçåºç¡ä¸ï¼çè§£æ¬èè½å®¹å°±å®¹æå¤äºã
>>> import sqlite3
>>> conn = sqlite3.connect("23301.db")
è¿æ ·å°±å¾å°äºè¿æ¥å¯¹è±¡ï¼æ¯ä¸æ¯æ¯MySQLè¿æ¥è¦ç®åäºå¾å¤å¢ãå¨`sqlite3.connect("23301.db")`ä¸ï¼å¦æå·²ç»æäºé£ä¸ªæ°æ®åºï¼å°±è¿æ¥ä¸å®ï¼å¦ææ²¡æï¼å°±æ°å»ºä¸ä¸ªã注æï¼è¿éçè·¯å¾å¯ä»¥éææå®çã
ä¸å¦¨å°ç®å½ä¸çä¸çï¼æ¯å¦åå¨äºåæå»ºç«çæ°æ®åºæä»¶ã
/2code$ ls 23301.db
23301.db
æç¶æäºä¸ä¸ªæä»¶ãè¿æ¥å¯¹è±¡å»ºç«èµ·æ¥ä¹åï¼å°±è¦ä½¿ç¨è¿æ¥å¯¹è±¡çæ¹æ³ç»§ç»å·¥ä½äºã
>>> dir(conn)
['DataError', 'DatabaseError', 'Error', 'IntegrityError', 'InterfaceError', 'InternalError', 'NotSupportedError', 'OperationalError', 'ProgrammingError', 'Warning', '__call__', '__class__', '__delattr__', '__doc__', '__enter__', '__exit__', '__format__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'close', 'commit', 'create_aggregate', 'create_collation', 'create_function', 'cursor', 'enable_load_extension', 'execute', 'executemany', 'executescript', 'interrupt', 'isolation_level', 'iterdump', 'load_extension', 'rollback', 'row_factory', 'set_authorizer', 'set_progress_handler', 'text_factory', 'total_changes']
##游æ 对象
è¿ä¸æ¥è·MySQLä¹ç±»ä¼¼ï¼è¦å»ºç«æ¸¸æ 对象ã
>>> cur = conn.cursor()
æ¥ä¸æ¥å¯¹æ°æ®åºå
容çæä½ï¼é½æ¯ç¨æ¸¸æ å¯¹è±¡æ¹æ³æ¥å®ç°ï¼
>>> dir(cur)
['__class__', '__delattr__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__iter__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'arraysize', 'close', 'connection', 'description', 'execute', 'executemany', 'executescript', 'fetchall', 'fetchmany', 'fetchone', 'lastrowid', 'next', 'row_factory', 'rowcount', 'setinputsizes', 'setoutputsize']
çå°çæçåç§°äºï¼`close(), execute(), executemany(), fetchall()`
###åå»ºæ°æ®åºè¡¨
é¢å¯¹SQLiteæ°æ®åºï¼è¯»è
æ¾ç»æ°æ®çsqlæä»¤é½å¯ä»¥ç
§æ ·ä½¿ç¨ã
>>> create_table = "create table books (title text, author text, lang text) "
>>> cur.execute(create_table)