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,)";