Python操作sqlite3数据库

北城余情 提交于 2020-02-14 20:15:22

关于sqlite数据库

sqlite数据库特点及优点

  • 嵌入式数据库,一个数据库就是一个文件
  • 占用资源低,数据量小时只需几百K内存
  • 关系型数据库,实现大多数SQL标准
  • 使用动态、弱类型的SQL语法
  • Python标准库中自带模块

Python操作数据库

导入模块并使用数据库

import sqlite3

conn = sqlite3.connect('./test.db')
# 有则使用,无则创建

创建游标以操作数据库

cursor = conn.cursor()

sql = 'create table students(id int primary key, name varchar(20) not null , age int not null)'
cursor.execute(sql)  # 创建表的命令

创建表不需要提交,但是插入、删除数据需要提交

conn.commit()

结束时不要忘记关闭游标和数据库连接

cursor.close()
conn.close()

实例(证明,连接可以不关,但是插入数据必须提交)

import sqlite3

conn = sqlite3.connect('scan.db')
cursor = conn.cursor()

scan_sql = 'create table port(ip varchar(16),port varchar(5))'

cursor.execute('insert into port values ("192.168.1.1",8080)')
conn.commit()

cursor.execute('select * from port')
print(cursor.fetchall())

使用变量进行插入数据

import sqlite3

conn = sqlite3.connect('scan.db')
cursor = conn.cursor()

sql = 'insert into port values(?,?)'
cursor.execute(sql,['114.114.114.114',65535])
conn.commit()

cursor.execute('select * from port')
print(cursor.fetchall())

通过sqlite_master表查询数据库中所有表结构

cursor.execute('select * from sqlite_master')
for i in cursor.fetchall():
    print(i)

#结果
('table', 'port', 'port', 2, 'CREATE TABLE port(ip varchar(16),port varchar(5))')
('table', 'qq', 'qq', 3, 'CREATE TABLE qq(id int,num varchar(10),phone varchar(12),name varchar(20))')
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!