SQLite是一种嵌入式数据库,它的数据库就是一个文件。由于SQLite本身是C写的,而且体积很小,所以,经常被集成到各种应用程序中,甚至在iOS和Android的App中都可以集成。
Python就内置了SQLite3,所以,在Python中使用SQLite,不需要安装任何东西,直接使用。
在使用SQLite前,我们先要搞清楚几个概念:
表是数据库中存放关系数据的集合,一个数据库里面通常都包含多个表,比如学生的表,班级的表,学校的表,等等。表和表之间通过外键关联。
要操作关系数据库,首先需要连接到数据库,一个数据库连接称为Connection;
连接到数据库后,需要打开游标,称之为Cursor,通过Cursor执行SQL语句,然后,获得执行结果。
Python定义了一套操作数据库的API接口,任何数据库要连接到Python,只需要提供符合Python标准的数据库驱动即可。
由于SQLite的驱动内置在Python标准库中,所以我们可以直接来操作SQLite数据库。
#导入数据库驱动 import sqlite3 #连接到数据库 #数据库文件是“test.db” #如果数据库不存在的话,将会自动创建一个 数据库 conn = sqlite3.connect("test.db") #创建一个游标 curson cursor = conn.cursor() #执行一条语句,创建 user表 # sql = "create table login (id varchar(20) primary key, name varchar(30), password varchar(30))" # cursor.execute(sql) #插入一条记录 #sql = "insert into login (name, password) values (\'love\', \'520520')" #cursor.execute(sql) #查询一条记录: # sql = "select * from login" # cursor.execute(sql) # sql = "select * from login where id=?" # cursor.execute(sql, ("2",)) #获取查询结果: # values = cursor.fetchall() # # print(values) # 通过rowcount获得插入的行数: #cursor.rowcount() #关闭游标: cursor.close() #提交事物 conn.commit() #关闭连接 conn.close()
在 my.db 里面有 student 和 person 表.
create index age_index_name on student (age);
不要再在对于声明为:INTEGER PRIMARY KEY的主键上创建索引。
一个UNIQUE(唯一约束)就可以了
"create table contactslist(contactstableID integer primary key autoincrement,name VARCHAR UNIQUE, id VARCHAR, address VARCHAR,)";