首页 > 数据库 >sqlite3 执行带参数的sql语句

sqlite3 执行带参数的sql语句

时间:2022-12-27 16:44:20浏览次数:46  
标签:语句 self arg id sql sqlite3 数据库 conn

c = conn.cursor() # 获取游标
sql1 = '''insert into company (id , name , age , address , salary) values (? , ? ,? , ? , ?)'''
arg = (None, '王五', 32, '天堂', 5555)
c.execute(sql1, arg) # 执行sql
conn.commit() # 提交数据库
conn.close() # 关闭数据库

在执行的时候,使用arg参数化带入数据,执行即可
sql语句中用“?”占位,执行的时候用arg中的参数代替。
其中主键id为自增id,所以用None

class SqlLiteDB:
    def __init__(self):
        self.conn = sqlite3.connect("sqlite3.db")

    def creat_table(self):
        # 初始化数据库,创建表
        conn = self.conn  # 打开或创建数据库文件
        c = conn.cursor()  # 获取游标
        creat_sql = """CREATE TABLE "company1" (
              "id" integer NOT NULL PRIMARY KEY AUTOINCREMENT,
              "name" text NOT NULL,
              "age" int NOT NULL,
              "address" char(50),
              "salary" real
            );"""

        c.execute(creat_sql)  # 执行sql御酒
        conn.commit()  # 提交数据库
        conn.close()  # 关闭数据库
        print("建表成功")

    def insert_data(self, sql):
        # 插入数据
        conn = self.conn  # 打开或创建数据库文件
        c = conn.cursor()  # 获取游标
        sql1 = '''insert into company (id , name , age , address , salary) values (55 , '王五' , 32 , '天堂' , 5555)'''
        sql1 = '''insert into company (id , name , age , address , salary) values (? , ? ,? , ? , ?)'''
        arg = (None, '王五', 32, '天堂', 5555)
        c.execute(sql1, arg)  # 执行sql
        conn.commit()  # 提交数据库
        conn.close()  # 关闭数据库

    def select_data(self, sql):
        # 查询数据
        conn = self.conn
        c = conn.cursor()  # 获取游标
        cursor = c.execute(sql)  # 执行sql御酒
        for row in cursor:
            print(row)
        conn.close()  # 关闭数据库

标签:语句,self,arg,id,sql,sqlite3,数据库,conn
From: https://www.cnblogs.com/qiuyubai/p/17008378.html

相关文章

  • SQL Server标量函数例子
    SQLServer的函数是非常实用的功能,简单的有自带的Convert等类型转换的函数,如果需要复杂点的功能则需要用户自定义函数。自定义函数又分为表值函数、标量函数等,其中标量函......
  • Mysql的个人总结
    一、Mysql查询语句--查询Mysql所有库中所有表的系统信息SELECT*FROMINFORMATION_SCHEMA.TABLES;--查询Mysql具体表的最新更新时间SELECTUPDATE_TIMEFROM......
  • python mysql操作,更新数据
    importmysql.connectortest_db=mysql.connector.connect(host="localhost",user="root",passwd="123456",database="test")test_cursor=test_db.cursor()将......
  • 第01章_Linux下MySQL的安装与使用
    第01章_Linux下MySQL的安装与使用1.安装前说明1.1Linux系统的准备安装并启动好两台虚拟机:CentOS7安装有Xshell和Xftp等访问CentOS系统的工具CentOS6和CentOS......
  • 找出PostgreSQL schema变更差异
    管理PostgreSQL的例行操作之一是定期更新数据库系统的架构。PostgreSQL在更新schema、添加type、函数、触发器或修改表添加和删除列、更新列数据类型等方面提供了可靠的方......
  • 火山引擎工具技术分享:用 AI 完成数据挖掘,零门槛完成 SQL 撰写
     更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,并进入官方交流群文/DataWind团队封声 在使用BI工具的时候,经常遇到的问题是:“不会SQL怎么......
  • 论文复现丨基于ModelArts实现Text2SQL
    摘要:该论文提出了一种基于预训练BERT的新神经网络架构,称为M-SQL。基于列的值提取分为值提取和值列匹配两个模块。本文分享自华为云社区《​​基于ModelArts实现Text2SQL......
  • 【INDEX】使用“alter index ××× monitoring usage;”语句监控索引使用与否
    随着时间的累积,在没有很好的规划的情况下,​​数据库​​​中也许会存在大量长期不被使用的索引,如果快速的定位这些索引以便清理便摆在案头。我们可以使用“alter ​​index......
  • MYSQL的常用实用功能
    (1)showcreatetable比如>>desc'order' 能够看到order表中的字段名称、字段类型、字段长度、是否允许为空,是否主键、默认值等信息。不能看到该表的索引信息查看字段和索......
  • Mysql到TiDB迁移,双写数据库兜底方案
    作者:京东零售石磊TiDB作为开源NewSQL数据库的典型代表之一,同样支持SQL,支持事务ACID特性。在通讯协议上,TiDB选择与MySQL完全兼容,并尽可能兼容MySQL的语法。因......