sqlite3基础学习

尝试学习做人像识别,涉及到数据库来存取照片,sqsever基本都忘记得差不多了。干脆重新学习一个更简单,与python联合更加精密的数据库。

下面这一段是借鉴RikkaTakanashi博客的课堂笔记。

#1.导入相应的数据库模块
  import sqlite3
#2.建立数据库连接
  con=sqlite3.connect()
#3.创建游标对象
  cur=con.cursor()
#4.使用execute()执行sql语句
  cur.execute()
#5.结果
#6.数据库的提交或回滚
  con.commit()
  con.rollback()
#7.关闭
  con.close()
 
#创建范例
imoprt sqlite3
#存在则是访问,不存在则是创建
con=sqlite3.connect(r"D:\sale.db")
#创建表
con.execute("create table region(id primary key,name)")#此处省略类型,sqlite可以省略类型
 
#插入范例
import sqlite3
con=sqlite3.connect(r"d:\sale.db")
#插入一条记录 直接写sql语句就好
con.execute("insert into region(id,name) values('020','广东')")
con.execute("insert into region(id,name) values('?','?')",("010,北京"))  #效率更高的批处理形式
#插入多条记录
regions=[("021","上海"),("022","天津"),("023","重庆")]
con.excutemany("insert into region(id,name) values('?','?')",regions)
#提交
con.commit()
con.close()
 
#修改删除范例
import sqlite3
con=sqlite3.connect(r"d:\sale.db")
#修改
con.execute("update region set name = ? where id = ?",("广州","020"))
#删除一条记录
n=con.execute("delete from region where id=?",("024,")) #逗号不能省,元组元素只有一个的时候一定要加,print("删除了",n.rowcount,"行记录")
 
#提交
con.commit()
con.close()

下面这一段是涉及自己项目的代码(一部分,待后期更新与改正):

信息的写入(只为自己方便记忆,贴上注释部分)

def insert_information(self, row, mark):  # 信息的写入(窗体,列信息,传入标记)
    # 创建数据库的连接,sqlite 是使用的本地文件进行存储的
    conn = sqlite3.connect('information.db')
    cur = conn.cursor()
    '''对于数据库的表的操作是通过游标进行的
       所以在操作之前要获取游标对象,要注意的是使用完之后进行关闭'''
    if mark == 1:
        # 执行sql语句
        cur.execute("insert into student_info (student_id, student_name, face_feature) values(?,?,?)",
                    (row[0], row[1], self.adapt_array(row[2])))
        print("人像数据写入完成")
    if mark == 2:
        cur.execute("insert into data_info (student_id,student_name,datetime,is_late) values(?,?,?,?)",
                    (row[0], row[1], row[2], row[3]))
        print("考勤表写入成功")
        pass
    cur.close()  # 游标关闭
    conn.commit()  # 数据库提交
    conn.close()  # 数据库关闭
    pass

以前学习数据库,总是搞不清primary key和not null是否需要同时需要,今天查了一下。可以指定not null,也可以不指定,但只要你指定primary key,不论你是否指定,系统自动会为你指定。

发布了42 篇原创文章 · 获赞 13 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_39395805/article/details/100567119