{"id":1055,"date":"2023-03-24T09:47:07","date_gmt":"2023-03-24T01:47:07","guid":{"rendered":""},"modified":"2023-03-24T09:47:07","modified_gmt":"2023-03-24T01:47:07","slug":"Python SQLite","status":"publish","type":"post","link":"https:\/\/bianchenghao6.com\/1055.html","title":{"rendered":"Python SQLite"},"content":{"rendered":"
\n
\u641e\u61c2Python SQLite\u7684\u57fa\u672c\u64cd\u4f5c<\/span>\n <\/div>\n \u4f7f\u7528import\u8bed\u53e5\u5bfc\u5165sqlite3\u6a21\u5757\u3002<\/span> \u4f7f\u7528connect\uff08\uff09\u65b9\u6cd5\u4e0e\u6570\u636e\u5e93\u5efa\u7acb\u8fde\u63a5\u3002<\/span>Python\u5b89\u88c5sqlite3<\/h2>\n
\u67e5\u770b\u662fPython\u662f\u5426\u6709\u8be5\u5e93<\/h3>\n
>>> import site; site.getsitepackages()
['\/home\/user\/usr\/python\/python2.7\/lib\/python2.7\/site-packages', '\/home\/user\/usr\/python\/python2.7\/lib\/site-python'] <\/span><\/code><\/pre>\n<\/p><\/div>\n
\n
\u770b\u770b\u662f\u5426\u6709_sqlite3.so\u8fd9\u4e2a\u6587\u4ef6\uff0c
\n
\u53d1\u73b0\u6ca1\u6709\u8fd9\u4e2a\u6587\u4ef6\uff0c\u8bf4\u660e\u6ca1\u6709\u5b89\u88c5\u6b64\u6269\u5c55\u3002\n <\/div>\n\u5b89\u88c5SQLITE3<\/h3>\n
\n
\u5728 https:\/\/sqlite.org\/download.html \u8fd9\u91cc\u4e0b\u8f7d\u3002
\n
\u5b89\u88c5\u65b9\u6cd5\u662f\uff1a
\n
\u89e3\u538b
\n
.\/configure --prefix=\/home\/user\/usr\/db\/sqlite
\n
make
\n
make install\n <\/div>\n\u91cd\u65b0\u5b89\u88c5python<\/h3>\n
\n
\u7f16\u8f91 setup.py
\n
\u6dfb\u52a0sqlite\u7684\u641c\u7d22\u8def\u5f84\n <\/div>\n\u67e5\u770b\u662f\u5426\u5df2\u7ecf\u5b89\u88c5\u6210\u529f<\/h3>\n
\n
\u53d1\u73b0\u4e86 _sqlite3.so \u6587\u4ef6\n <\/div>\n >>> import sqlite3 <\/span><\/code><\/pre>\n<\/p><\/div>\n
\n
\u8981\u4f7f\u7528sqlite3\u6a21\u5757\uff0c\u5fc5\u987b\u9996\u5148\u521b\u5efa\u4e00\u4e2a\u4ee3\u8868\u6570\u636e\u5e93\u7684\u8fde\u63a5\u5bf9\u8c61\uff0c\u7136\u540e\u53ef\u4ee5\u9009\u62e9\u521b\u5efa\u4e00\u4e2a\u6e38\u6807\u5bf9\u8c61\uff0c\u8be5\u5bf9\u8c61\u5c06\u5e2e\u52a9\u4f60\u6267\u884c\u6240\u6709SQL\u8bed\u53e5\u3002\n <\/div>\nPython SQLite3\u6a21\u5757API<\/h2>\n
\n\n
\n \u7f16\u53f7<\/td>\n API & \u63cf\u8ff0<\/td>\n<\/tr>\n \n 1<\/td>\n sqlite3.connect(database [,timeout ,other optional arguments])<\/b>
\u8be5API\u6253\u5f00\u4e0eSQLite\u6570\u636e\u5e93\u6587\u4ef6\u7684\u8fde\u63a5\u3002\u4f60\u53ef\u4ee5\u4f7f\u7528\u201c\uff1amemory\uff1a\u201d\u6253\u5f00\u4e0e\u9a7b\u7559\u5728RAM\u4e2d\u800c\u4e0d\u662f\u78c1\u76d8\u4e0a\u7684\u6570\u636e\u5e93\u7684\u6570\u636e\u5e93\u8fde\u63a5\u3002\u5982\u679c\u6570\u636e\u5e93\u6210\u529f\u6253\u5f00\uff0c\u5b83\u5c06\u8fd4\u56de\u4e00\u4e2a\u8fde\u63a5\u5bf9\u8c61\u3002 <\/td>\n<\/tr>\n\n 2<\/td>\n connection.cursor([cursorClass])<\/b>
\u6b64\u4f8b\u7a0b\u521b\u5efa\u4e00\u4e2a\u6e38\u6807\uff0c\u8be5\u6e38\u6807\u5c06\u5728\u6574\u4e2aPython\u6570\u636e\u5e93\u7f16\u7a0b\u4e2d\u4f7f\u7528\u3002\u6b64\u65b9\u6cd5\u63a5\u53d7\u5355\u4e2a\u53ef\u9009\u53c2\u6570cursorClass\u3002\u5982\u679c\u63d0\u4f9b\uff0c\u5219\u5fc5\u987b\u662f\u6269\u5c55sqlite3.Cursor\u7684\u81ea\u5b9a\u4e49\u5149\u6807\u7c7b\u3002 <\/td>\n<\/tr>\n\n 3<\/td>\n cursor.execute(sql [, optional parameters])<\/b>
\u8be5\u4f8b\u7a0b\u6267\u884c\u4e00\u6761SQL\u8bed\u53e5\u3002\u53ef\u4ee5\u5bf9SQL\u8bed\u53e5\u8fdb\u884c\u53c2\u6570\u5316\uff08\u5373\uff0c\u4f7f\u7528\u5360\u4f4d\u7b26\u4ee3\u66ffSQL\u6587\u5b57\uff09\u3002sqlite3\u6a21\u5757\u652f\u6301\u4e24\u79cd\u5360\u4f4d\u7b26\uff1a\u95ee\u53f7\u548c\u547d\u540d\u5360\u4f4d\u7b26\uff08\u547d\u540d\u6837\u5f0f\uff09\u3002
\u4f8b\u5982\uff1a<\/b> \u2212 cursor.execute(\"insert into people values (?, ?)\", (who, age)) <\/td>\n<\/tr>\n\n 4<\/td>\n connection.execute(sql [, optional parameters])<\/b>
\u6b64\u4f8b\u7a0b\u662f\u6e38\u6807\u5bf9\u8c61\u63d0\u4f9b\u7684\u4e0a\u8ff0execute\u65b9\u6cd5\u7684\u5feb\u6377\u65b9\u5f0f\uff0c\u5b83\u901a\u8fc7\u8c03\u7528cursor\u65b9\u6cd5\u521b\u5efa\u4e2d\u95f4\u6e38\u6807\u5bf9\u8c61\uff0c\u7136\u540e\u4f7f\u7528\u7ed9\u5b9a\u7684\u53c2\u6570\u8c03\u7528\u6e38\u6807\u7684execute\u65b9\u6cd5\u3002 <\/td>\n<\/tr>\n\n 5<\/td>\n cursor.executemany(sql, seq_of_parameters)<\/b>
\u6b64\u4f8b\u7a0b\u9488\u5bf9\u5e8f\u5217sql\u4e2d\u627e\u5230\u7684\u6240\u6709\u53c2\u6570\u5e8f\u5217\u6216\u6620\u5c04\u6267\u884cSQL\u547d\u4ee4\u3002 <\/td>\n<\/tr>\n\n 6<\/td>\n connection.executemany(sql[, parameters])<\/b>
\u6b64\u4f8b\u7a0b\u662f\u4e00\u79cd\u5feb\u6377\u65b9\u5f0f\uff0c\u5b83\u901a\u8fc7\u8c03\u7528cursor\u65b9\u6cd5\u521b\u5efa\u4e2d\u95f4\u5149\u6807\u5bf9\u8c61\uff0c\u7136\u540e\u4f7f\u7528\u7ed9\u5b9a\u7684\u53c2\u6570\u8c03\u7528cursor.s executemany\u65b9\u6cd5\u3002 <\/td>\n<\/tr>\n\n 7<\/td>\n cursor.executescript(sql_script)<\/b>
\u6b64\u4f8b\u7a0b\u4ee5\u811a\u672c\u5f62\u5f0f\u4e00\u6b21\u6267\u884c\u591a\u4e2aSQL\u8bed\u53e5\u3002\u5b83\u9996\u5148\u53d1\u51faCOMMIT\u8bed\u53e5\uff0c\u7136\u540e\u6267\u884c\u4f5c\u4e3a\u53c2\u6570\u83b7\u53d6\u7684SQL\u811a\u672c\u3002\u6240\u6709SQL\u8bed\u53e5\u90fd\u5e94\u4ee5\u534a\u5192\u53f7\uff08;\uff09\u5206\u9694\u3002 <\/td>\n<\/tr>\n\n 8<\/td>\n connection.executescript(sql_script)<\/b>
\u8be5\u4f8b\u7a0b\u662f\u4e00\u79cd\u5feb\u6377\u65b9\u5f0f\uff0c\u5b83\u901a\u8fc7\u8c03\u7528cursor\u65b9\u6cd5\u6765\u521b\u5efa\u4e2d\u95f4\u5149\u6807\u5bf9\u8c61\uff0c\u7136\u540e\u4f7f\u7528\u7ed9\u5b9a\u7684\u53c2\u6570\u8c03\u7528\u5149\u6807\u7684executescript\u65b9\u6cd5\u3002 <\/td>\n<\/tr>\n\n 9<\/td>\n connection.total_changes()<\/b>
\u6b64\u4f8b\u7a0b\u8fd4\u56de\u81ea\u6253\u5f00\u6570\u636e\u5e93\u8fde\u63a5\u4ee5\u6765\u5df2\u88ab\u4fee\u6539\uff0c\u63d2\u5165\u6216\u5220\u9664\u7684\u6570\u636e\u5e93\u884c\u7684\u603b\u6570\u3002 <\/td>\n<\/tr>\n\n 10<\/td>\n connection.commit()<\/b>
\u6b64\u65b9\u6cd5\u63d0\u4ea4\u5f53\u524d\u4e8b\u52a1\u3002\u5982\u679c\u4e0d\u8c03\u7528\u6b64\u65b9\u6cd5\uff0c\u5219\u4ece\u5176\u4ed6\u6570\u636e\u5e93\u8fde\u63a5\u4e2d\u770b\u4e0d\u5230\u81ea\u4e0a\u6b21\u8c03\u7528commit\uff08\uff09\u4ee5\u6765\u6240\u505a\u7684\u4efb\u4f55\u64cd\u4f5c\u3002 <\/td>\n<\/tr>\n\n 11<\/td>\n connection.rollback()<\/b>
\u81ea\u4e0a\u6b21\u8c03\u7528commit\uff08\uff09\u4ee5\u6765\uff0c\u6b64\u65b9\u6cd5\u5c06\u56de\u6eda\u5bf9\u6570\u636e\u5e93\u7684\u6240\u6709\u66f4\u6539\u3002 <\/td>\n<\/tr>\n\n 12<\/td>\n connection.close()<\/b>
\u6b64\u65b9\u6cd5\u5173\u95ed\u6570\u636e\u5e93\u8fde\u63a5\u3002\u8bf7\u6ce8\u610f\uff0c\u8fd9\u4e0d\u4f1a\u81ea\u52a8\u8c03\u7528commit\uff08\uff09\u3002\u5982\u679c\u53ea\u5173\u95ed\u6570\u636e\u5e93\u8fde\u63a5\u800c\u6ca1\u6709\u5148\u8c03\u7528commit\uff08\uff09\uff0c\u5219\u66f4\u6539\u5c06\u4e22\u5931\uff01 <\/td>\n<\/tr>\n\n 13<\/td>\n cursor.fetchone()<\/b>
\u6b64\u65b9\u6cd5\u83b7\u53d6\u67e5\u8be2\u7ed3\u679c\u96c6\u7684\u4e0b\u4e00\u884c\uff0c\u8fd4\u56de\u5355\u4e2a\u5e8f\u5217\uff0c\u5982\u679c\u6ca1\u6709\u66f4\u591a\u6570\u636e\u53ef\u7528\uff0c\u5219\u8fd4\u56deNone\u3002 <\/td>\n<\/tr>\n\n 14<\/td>\n cursor.fetchmany([size = cursor.arraysize])<\/b>
\u8be5\u4f8b\u7a0b\u83b7\u53d6\u67e5\u8be2\u7ed3\u679c\u7684\u4e0b\u4e00\u7ec4\u884c\uff0c\u5e76\u8fd4\u56de\u4e00\u4e2a\u5217\u8868\u3002\u5f53\u6ca1\u6709\u66f4\u591a\u884c\u53ef\u7528\u65f6\uff0c\u5c06\u8fd4\u56de\u4e00\u4e2a\u7a7a\u5217\u8868\u3002\u8be5\u65b9\u6cd5\u5c1d\u8bd5\u83b7\u53d6\u7531size\u53c2\u6570\u6307\u793a\u7684\u5c3d\u53ef\u80fd\u591a\u7684\u884c\u3002 <\/td>\n<\/tr>\n\n 15<\/td>\n cursor.fetchall()<\/b>
\u8be5\u4f8b\u7a0b\u83b7\u53d6\u67e5\u8be2\u7ed3\u679c\u7684\u6240\u6709\uff08\u5269\u4f59\uff09\u884c\uff0c\u5e76\u8fd4\u56de\u4e00\u4e2a\u5217\u8868\u3002\u5982\u679c\u6ca1\u6709\u53ef\u7528\u7684\u884c\uff0c\u5219\u8fd4\u56de\u4e00\u4e2a\u7a7a\u5217\u8868\u3002 <\/td>\n<\/tr>\n<\/tbody>\n<\/table>\nSQLite\u5efa\u7acb\u8fde\u63a5<\/h2>\n
<\/p>\n
\u4f7f\u7528Python\u5efa\u7acb\u8fde\u63a5<\/h2>\n
\n
\u8981\u4f7f\u7528python\u4e0eSQLite3\u6570\u636e\u5e93\u5efa\u7acb\u8fde\u63a5\uff0c\u4f60\u9700\u8981-\n <\/div>\n
\n connect\uff08\uff09\u65b9\u6cd5\u5c06\u4f60\u9700\u8981\u8fde\u63a5\u7684\u6570\u636e\u5e93\u7684\u540d\u79f0\u4f5c\u4e3a\u53c2\u6570\u63a5\u53d7\uff0c\u5e76\u8fd4\u56de\u4e00\u4e2aConnection\u5bf9\u8c61\u3002<\/span> <\/p>\n\u5b9e\u4f8b<\/h3>\n
# Filename : example.py<\/span>
# Copyright : 2020 By Lidihuo<\/span>
# Author by : www.lidihuo.com<\/span>
# Date : 2020-08-15<\/span>
import <\/span>sqlite3
conn = sqlite3.connect<\/span>('example.db'<\/span>)
<\/span><\/code><\/pre>\n<\/p><\/div>\n\u6267\u884c\u7ed3\u679c\uff1a<\/h3>\n
print(\"Connection established ..........\"<\/span>)
<\/span><\/code><\/pre>\n<\/p><\/div>\nSQLite\u521b\u5efa\u8868<\/h2>\n
\u8bed\u6cd5<\/h3>\n
CREATE TABLE database_name.table_name<\/span>(
column1 datatype PRIMARY KEY(one or <\/span>more columns),
column2 datatype,
column3 datatype,
.....
columnN datatype
);
<\/span><\/code><\/pre>\n<\/p><\/div>\n\u5b9e\u4f8b<\/h3>\n
\n CRICKETERS<\/b>\u7684\u8868-\n <\/div>\n # Filename : example.py<\/span>
# Copyright : 2020 By Lidihuo<\/span>
# Author by : www.lidihuo.com<\/span>
# Date : 2020-08-15<\/span>
sqlite> CREATE TABLE CRICKETERS (
First_Name VARCHAR(255),
Last_Name VARCHAR(255),
Age int,
Place_Of_Birth VARCHAR(255),
Country <\/span>VARCHAR(255)
);
sqlite>
<\/span><\/code><\/pre>\n<\/p><\/div>\n # Filename : example.py<\/span>
# Copyright : 2020 By Lidihuo<\/span>
# Author by : www.lidihuo.com<\/span>
# Date : 2020-08-15<\/span>
sqlite> CREATE TABLE ODIStats (
First_Name VARCHAR(255),
Matches INT,
Runs INT,
AVG FLOAT,
Centuries INT,
HalfCenturies INT
);
sqlite>
<\/span><\/code><\/pre>\n<\/p><\/div>\n # Filename : example.py<\/span>
# Copyright : 2020 By Lidihuo<\/span>
# Author by : www.lidihuo.com<\/span>
# Date : 2020-08-15<\/span>
sqlite> . tables
CRICKETERS ODIStats
sqlite>
<\/span><\/code><\/pre>\n<\/p><\/div>\n\u4f7f\u7528Python\u521b\u5efa\u8868<\/h2>\n
\n
\u56e0\u6b64\uff0c\u8981\u4f7f\u7528python\u5728SQLite\u6570\u636e\u5e93\u4e2d\u521b\u5efa\u8868-\n <\/div>\n
\n \u73b0\u5728\uff0c\u4f7f\u7528Cursor\u7c7b\u7684execute\uff08\uff09\u65b9\u6cd5\u6267\u884cCREATE TABLE\u8bed\u53e5\u3002<\/span>
\n \u901a\u8fc7\u5728\u4e0a\u9762\u521b\u5efa\u7684\u8fde\u63a5\u5bf9\u8c61\u4e0a\u8c03\u7528cursor()\u65b9\u6cd5\u6765\u521b\u5efa\u6e38\u6807\u5bf9\u8c61\u3002<\/span> <\/p>\n\u5b9e\u4f8b<\/h3>\n
# Filename : example.py<\/span>
# Copyright : 2020 By Lidihuo<\/span>
# Author by : www.lidihuo.com<\/span>
# Date : 2020-08-15<\/span>
import <\/span>sqlite3
# \u8fde\u63a5\u5230sqlite
<\/span> conn = sqlite3.connect<\/span>('example.db'<\/span>)
# \u4f7f\u7528cursor()\u65b9\u6cd5\u521b\u5efa\u6e38\u6807\u5bf9\u8c61
<\/span> cursor = conn.cursor<\/span>()
# \u5220\u9664\u5df2\u5b58\u5728\u7684\u8868
<\/span> cursor.execute<\/span>(\"DROP TABLE if <\/span>EXISTS EMPLOYEE\"<\/span>)
# \u6309\u8981\u6c42\u521b\u5efa\u8868
<\/span> sql =''<\/span><\/span>'CREATE TABLE EMPLOYEE(
FIRST_NAME CHAR(20) not <\/span>NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT
)'''
cursor.execute<\/span>(sql)
print(\"Table created successfully........\"<\/span>)
# \u63d0\u4ea4
<\/span> conn.commit<\/span>()
# \u5173\u95ed\u8fde\u63a5
<\/span> conn.close<\/span>()
<\/span><\/code><\/pre>\n<\/p><\/div>\nOutput<\/h3>\n
Table created successfully........
<\/span><\/code><\/pre>\n<\/p><\/div>\nSQLite\u63d2\u5165\u6570\u636e<\/h2>\n
\u8bed\u6cd5<\/h3>\n
INSERT INTO TABLE_NAME (column1, column2, column3,...columnN)
VALUES (value1, value2, value3,...valueN);
<\/span><\/code><\/pre>\n<\/p><\/div>\n\u5b9e\u4f8b<\/h3>\n
# Filename : example.py<\/span>
# Copyright : 2020 By Lidihuo<\/span>
# Author by : www.lidihuo.com<\/span>
# Date : 2020-08-15<\/span>
sqlite> CREATE TABLE CRICKETERS (
First_Name VARCHAR(255),
Last_Name VARCHAR(255),
Age int,
Place_Of_Birth VARCHAR(255),
Country <\/span>VARCHAR(255)
);
sqlite>
<\/span><\/code><\/pre>\n<\/p><\/div>\n # Filename : example.py<\/span>
# Copyright : 2020 By Lidihuo<\/span>
# Author by : www.lidihuo.com<\/span>
# Date : 2020-08-15<\/span>
sqlite> insert into CRICKETERS (First_Name, Last_Name, Age, Place_Of_Birth, Country)
values('Shikhar'<\/span>, 'Dhawan'<\/span>, 33, 'Delhi'<\/span>, 'India'<\/span>);
sqlite>
<\/span><\/code><\/pre>\n<\/p><\/div>\n # Filename : example.py<\/span>
# Copyright : 2020 By Lidihuo<\/span>
# Author by : www.lidihuo.com<\/span>
# Date : 2020-08-15<\/span>
sqlite> insert into CRICKETERS (First_Name, Last_Name, Country)
values ('Jonathan'<\/span>, 'Trott'<\/span>, 'SouthAfrica'<\/span>);
sqlite>
<\/span><\/code><\/pre>\n<\/p><\/div>\n # Filename : example.py<\/span>
# Copyright : 2020 By Lidihuo<\/span>
# Author by : www.lidihuo.com<\/span>
# Date : 2020-08-15<\/span>
sqlite> insert into CRICKETERS values('Kumara'<\/span>, 'Sangakkara'<\/span>, 41, 'Matale'<\/span>, 'Srilanka'<\/span>);
sqlite> insert into CRICKETERS values('Virat'<\/span>, 'Kohli'<\/span>, 30, 'Delhi'<\/span>, 'India'<\/span><\/span>);
sqlite> insert into CRICKETERS values('Rohit'<\/span>, 'Sharma'<\/span>, 32, 'Nagpur'<\/span>, 'India');
sqlite>
<\/span><\/code><\/pre>\n<\/p><\/div>\n
\r\n# Filename : example.py<\/span>\r\n# Copyright : 2020 By Lidihuo<\/span>\r\n# Author by : www.lidihuo.com<\/span>\r\n