Python SQLite3简介
最近需要用Python写一个简易通讯录,但是对于数据存储很发愁。大家都知道,使用Python中的列表和字典进行存储数据是很不靠谱的,所以就想到Python有没有内置的数据库模块。
SQLite3简介
SQLite3可使用sqlite3模块与Python进行集成。sqlite3模块是由GerhardHaring编写的。它提供了一个与PEP249描述的DB-API2.0规范兼容的SQL接口。您不需要单独安装该模块,因为Python2.5.x以上版本默认自带了该模块。
为了使用sqlite3模块,您首先必须创建一个表示数据库的连接对象,然后您可以有选择地创建光标对象,这将帮助您执行所有的SQL语句。
怎么样,听起来不错吧!那就快来学习使用吧。
连接数据库
下面的Python代码显示了如何连接到一个现有的数据库。如果数据库不存在,那么它就会被创建,最后将返回一个数据库对象。
#-*-coding:utf-8-*- importsqlite3 conn=sqlite3.connect('mysql_person.db') print"Openeddatabasesuccessfully";
在这里,您也可以把数据库名称复制为特定的名称:memory:,这样就会在RAM中创建一个数据库。现在,让我们来运行上面的程序,在当前目录中创建我们的数据库mysql_person.db。您可以根据需要改变路径。保存上面代码到sqlite.py文件中,并按如下所示执行。如果数据库成功创建,那么会显示下面所示的消息:
$chmod+xsqlite.py $./sqlite.py Opendatabasesuccessfully
创建表
下面的Python代码段将用于在先前创建的数据库中创建一个表:
#-*-coding:utf-8-*- importsqlite3 conn=sqlite3.connect('mysql_person.db') print"Openeddatabasesuccessfully"; conn.execute('''CREATETABLEMT (IDINTPRIMARYKEYNOTNULL, NAMETEXTNOTNULL, AGEINTNOTNULL, ADDRESSCHAR(50), SALARYREAL);''') print"Tablecreatedsuccessfully"; conn.close()
上述程序执行时,它会在test.db中创建MT表,并显示下面所示的消息:
Openeddatabasesuccessfully Tablecreatedsuccessfully
INSERT操作
下面的Python程序显示了如何在上面创建的MT表中创建记录:
#-*-coding:utf-8-*- importsqlite3 conn=sqlite3.connect('mysql_person.db') print"Openeddatabasesuccessfully"; conn.execute("INSERTINTOCOMPANY(ID,NAME,AGE,ADDRESS,SALARY)\ VALUES(1,'Paul',32,'California',20000.00)"); conn.execute("INSERTINTOCOMPANY(ID,NAME,AGE,ADDRESS,SALARY)\ VALUES(2,'Allen',25,'Texas',15000.00)"); conn.execute("INSERTINTOCOMPANY(ID,NAME,AGE,ADDRESS,SALARY)\ VALUES(3,'Teddy',23,'Norway',20000.00)"); conn.execute("INSERTINTOCOMPANY(ID,NAME,AGE,ADDRESS,SALARY)\ VALUES(4,'Mark',25,'Rich-Mond',65000.00)"); conn.commit() print"Recordscreatedsuccessfully"; conn.close()
上述程序执行时,它会在MT表中创建给定记录,并会显示以下两行:
Openeddatabasesuccessfully Recordscreatedsuccessfully
SELECT操作
下面的Python程序显示了如何从前面创建的MT表中获取并显示记录:
#-*-coding:utf-8-*- importsqlite3 conn=sqlite3.connect('mysql_person.db') print"Openeddatabasesuccessfully"; cursor=conn.execute("SELECTid,name,address,salaryfromMT") forrowincursor: print"ID=",row[0] print"NAME=",row[1] print"ADDRESS=",row[2] print"SALARY=",row[3],"\n" print"Operationdonesuccessfully"; conn.close()
上述程序执行时,它会产生以下结果:
Openeddatabasesuccessfully ID=1 NAME=Paul ADDRESS=California SALARY=20000.0 ID=2 NAME=Allen ADDRESS=Texas SALARY=15000.0 ID=3 NAME=Teddy ADDRESS=Norway SALARY=20000.0 ID=4 NAME=Mark ADDRESS=Rich-Mond SALARY=65000.0 Operationdonesuccessfully
UPDATE操作
下面的Python代码显示了如何使用UPDATE语句来更新任何记录,然后从COMPANY表中获取并显示更新的记录:
#-*-coding:utf-8-*- importsqlite3 conn=sqlite3.connect('mysql_person.db') print"Openeddatabasesuccessfully"; conn.execute("UPDATECOMPANYsetSALARY=25000.00whereID=1") conn.commit() print"Totalnumberofrowsupdated:",conn.total_changes cursor=conn.execute("SELECTid,name,address,salaryfromMT") forrowincursor: print"ID=",row[0] print"NAME=",row[1] print"ADDRESS=",row[2] print"SALARY=",row[3],"\n" print"Operationdonesuccessfully"; conn.close()
上述程序执行时,它会产生以下结果:
Openeddatabasesuccessfully Totalnumberofrowsupdated:1 ID=1 NAME=Paul ADDRESS=California SALARY=25000.0 ID=2 NAME=Allen ADDRESS=Texas SALARY=15000.0 ID=3 NAME=Teddy ADDRESS=Norway SALARY=20000.0 ID=4 NAME=Mark ADDRESS=Rich-Mond SALARY=65000.0 Operationdonesuccessfully
DELETE操作
下面的Python代码显示了如何使用DELETE语句删除任何记录,然后从COMPANY表中获取并显示剩余的记录:
#-*-coding:utf-8-*- importsqlite3 conn=sqlite3.connect('mysql_person.db') print"Openeddatabasesuccessfully"; conn.execute("DELETEfromCOMPANYwhereID=2;") conn.commit() print"Totalnumberofrowsdeleted:",conn.total_changes cursor=conn.execute("SELECTid,name,address,salaryfromMT") forrowincursor: print"ID=",row[0] print"NAME=",row[1] print"ADDRESS=",row[2] print"SALARY=",row[3],"\n" print"Operationdonesuccessfully"; conn.close()
上述程序执行时,它会产生以下结果:
Openeddatabasesuccessfully Totalnumberofrowsdeleted:1 ID=1 NAME=Paul ADDRESS=California SALARY=20000.0 ID=3 NAME=Teddy ADDRESS=Norway SALARY=20000.0 ID=4 NAME=Mark ADDRESS=Rich-Mond SALARY=65000.0 Operationdonesuccessfully
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。