首页 > 数据库 >Python使用sqlite数据库快速创建库和表

Python使用sqlite数据库快速创建库和表

时间:2024-09-05 09:55:50浏览次数:12  
标签:sqlite name exists Python 数据库 db cursor 库和表 new

一、安装SQLite

1、下载sqlite

SQLite Download Page

2、解压安装包

3、设置环境变量

二、快速创建库和表的代码

import sqlite3
import os

# 数据库文件名
db_name = 'StarVerification.db'
new_db_name_base = 'StarVerification_old.db'
new_db_name = new_db_name_base
# 检查数据库文件是否存在
db_exists = os.path.exists(db_name)

# 如果数据库文件存在,按顺序重命名为StarVerification_old2,StarVerification_old3 ...
if db_exists:
    counter = 1
    while os.path.exists(new_db_name):
        counter += 1
        new_db_name = f'db{counter}.db'
    
    os.rename(db_name, new_db_name)
    db_name = new_db_name
    print(f"数据库文件已重命名为 {new_db_name}")

# 连接到SQLite数据库(如果数据库不存在,会自动创建)
db_name = 'StarVerification.db'
conn = sqlite3.connect(db_name)
cursor = conn.cursor()

# 如果数据库文件不存在,创建name表
if not db_exists:
    cursor.execute('''
        CREATE TABLE name (
            id INTEGER PRIMARY KEY AUTOINCREMENT,
            username TEXT NOT NULL,
            password TEXT NOT NULL
        )
    ''')
    print("数据库和表已创建。")
else:
    # 检查是否存在name表
    cursor.execute('''
        SELECT name FROM sqlite_master WHERE type='table' AND name='name'
    ''')
    table_exists = cursor.fetchone()

    if not table_exists:
        cursor.execute('''
            CREATE TABLE name (
                id INTEGER PRIMARY KEY AUTOINCREMENT,
                username TEXT NOT NULL,
                password TEXT NOT NULL
            )
        ''')
        print("表已创建。")
    else:
        print("表已存在。")

# 插入username和password
username = 'xxxx'
password = '123456'


query = "INSERT INTO name (username, password) VALUES (?, ?)"
cursor.execute(query, (username, password))

print("数据已插入。")

# 提交事务并关闭连接
conn.commit()
cursor.close()
conn.close()

标签:sqlite,name,exists,Python,数据库,db,cursor,库和表,new
From: https://blog.csdn.net/weixin_52037378/article/details/140958676

相关文章

  • 最全面教程!在 R 语言中使用 python 与 conda(reticulate包)
    reticulate是一个在R语言中访问Python的强大工具。它允许R用户直接调用Pytho中的代码、函数和模块,以及在R环境中与Python进行无缝交互。reticulate的主要功能包括:调用Python:reticulate允许用户在R中直接调用Python代码和函数。无论是在RMarkdown文档中、源Python脚......
  • 12 Python面向对象编程:运算符重载
    本篇是Python系列教程第12篇,更多内容敬请访问我的Python合集在理解运算符重载之前我们已经知道了什么是方法重载,方法重载就是子类继承父类并且定义了一个和父类一样的方法。知道了什么是重载,也知道了什么是运算符(加减乘除等),那么运算符重载也很好理解了,其实就是在......
  • 13 Python面向对象编程:装饰器
    本篇是Python系列教程第13篇,更多内容敬请访问我的Python合集Python装饰器是一种强大的工具,用于修改或增强函数或方法的行为,而无需更改其源代码。装饰器本质上是一个接收函数作为参数的函数,并返回一个新的函数。装饰器的用途包括日志记录、性能测试、事务处理、缓......
  • 12 Python面向对象编程:运算符重载
    本篇是Python系列教程第12篇,更多内容敬请访问我的Python合集在理解运算符重载之前我们已经知道了什么是方法重载,方法重载就是子类继承父类并且定义了一个和父类一样的方法。知道了什么是重载,也知道了什么是运算符(加减乘除等),那么运算符重载也很好理解了,其实就是在类里面......
  • 13 Python面向对象编程:装饰器
    本篇是Python系列教程第13篇,更多内容敬请访问我的Python合集Python装饰器是一种强大的工具,用于修改或增强函数或方法的行为,而无需更改其源代码。装饰器本质上是一个接收函数作为参数的函数,并返回一个新的函数。装饰器的用途包括日志记录、性能测试、事务处理、缓存、权......
  • 用python编写web 界面可以用哪些库
    背景:很多人熟悉python,但不熟悉前端语言js,为了项目快速落地,也不太想去专门学习React/Angular/Vue这些框架,那么就会问一个问题,能不能用Python直接写出一个简单web界面呢?答案是可以的,而且有多种框架可以用。常见的有下面的几种,可自行搜索学习,选用适合自己的 PlotlyDash,基......
  • python2
    /转义字符,告诉python输入的符号就是符号本身,没有其他的含义join函数输入字符串,需要用str()进行转换功能:join:用于将一个可迭代对象(如列表或元组)中的元素连接成一个字符串。它需要一个字符串作为分隔符。append:用于向列表的末尾添加一个元素。它直接修改原列表。......
  • 【Python学习笔记】 第2章 Python如何运行程序
    Python解释器简介我们在Python的官网下载并安装Python后,它会生成一些组件,包括解释器和一套支持库。Python的代码必须在解释器中运行。程序运行程序员的视角一个Python程序仅是一个包含Python语句的文本文件。例:创建script0.py文件,并写上:print("Hello,world!")print(2**1......
  • 每天五分钟深度学习:广播机制(以python语言为例)
    本文重点因为向量化的计算方式导致效率的提升,所以现在很多时候,我们都是用向量化的计算,但是向量化计算有一个问题让人头痛就是维度的问题,本节课程我们将讲解python中的广播机制,你会发现这个机制的优秀之处。代码实例importnumpyasnpa=np.random.randn(3,4)b=np.random.r......
  • 2024年 Windows Python 下载、安装教程,附详细图文
    大家好,今天为大家带来的是2024年WindowsPython下载、安装教程,附详细图文,适用于Python3所有版本,包括Python3.7,Python3.8,Python3.103.9,Python3.10等版本。希望对大家有所帮助Python目前已支持所有主流操作系统,在Linux,Unix,Mac系统上自带Python环境,一般默认装的是Py......