python中使用数据库sqlite3
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) #新建 表student2
sql = "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());
显示