Python使用sqlite3數據庫
python3.x標準庫內置了SQLite3
查看sqlite的版本
import sqlite3
sqlite_version = sqlite3.sqlite_version
print(f"SQLite version: {sqlite_version}")
顯示
導入模塊連接sqlitte3
import sqlite3 con=sqlite3.connect("d:/first.db",isolation_level=None)
#數據庫文件first.db,如果不存在則會自動創建
#isolation_level=None,事務隔離級別;隔離模式為None時,插入操作不用 commit cur=con.cursor()
#新建表
sql="create table student (id INTEGER PRIMARY KEY AUTOINCREMENT,name varchar(30) NOT NULL,yuwen INTEGER)"
cur.execute(sql)cur.close()
con.close()
查看表
查看所有表
在SQLite數據庫中,所有的表信息都存儲在一個名為sqlite_master的內置表中
sql = "SELECT name FROM sqlite_master WHERE type='table';"
cur.execute(sql)
print(cur.fetchall())
顯示
查看表結構
sql="pragma table_info(student)"
cur.execute(sql)
print(cur.fetchall())
#包括列的編號、列名、數據類型、是否非空、默認值 以及是否為主鍵
顯示
每個元組中分別是:列的編號;列名;數據類型;是否非空;默認值;是否為主鍵
新建表
sql="create table student (id INTEGER PRIMARY KEY AUTOINCREMENT,name varchar(30) NOT NULL,yuwen INTEGER)"
cur.execute(sql)
刪除表
sql="create table student2 (id INTEGER PRIMARY KEY AUTOINCREMENT,name varchar(30) NOT NULL,yuwen INTEGER)"
cur.execute(sql) #新建 表student2sql = "drop table student2" #刪除表student2
cur.execute(sql)
插入數據
sql = " insert into student values(Null,?,?)"
cur.execute(sql,("張三",70))
con.commit()
插入多條數據
sql = " insert into student values(Null,?,?)"
cur.executemany(sql,[("張三",82),("李四",75),("小紅",76),("小李",92)])
con.commit()
刪除數據
sql = “delete from student where name=?;”
cur.execute(sql,(”張三”,))
修改數據
sql = "update student set yuwen=? where name =?"
cur.execute(sql,(80,"小紅",))
con.commit()
查詢
sql=”select * from student”;
cur.execute(sql);
print(cur.fetchall());
顯示