前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >(四十六) 初遇python之Sqlite3创建数据库、表、运行查询

(四十六) 初遇python之Sqlite3创建数据库、表、运行查询

作者头像
XXXX-user
修改2019-07-30 10:35:11
1.1K0
修改2019-07-30 10:35:11
举报
文章被收录于专栏:不仅仅是python

各位读者大大们大家好,今天学习使用Sqlite3创建数据库、表、运行查询,并记录学习过程欢迎大家一起交流分享。

首先新建一个python文件命名为employee.py类,定义类的基本属性方法:

代码语言:javascript
复制
class Employee(object):
  """do first,last,payring for Employee"""
  def __init__(self, first,last,pay):
    self.first = first
    self.last = last
    self.pay = pay

  @property
  def email(self):
    return '{}.{}@email.com'.format(self.first,self.last)

  @property
  def fullname(self):
    return '{} {}'.format(self.first,self.last)

  def __repr__(self):
    return "Employee('{}','{}',{})".format(self.first,self.last,self.pay)

接下来新建一个python文件命名为py3_sqlite3.py,在这个文件中进行操作代码编写:

代码语言:javascript
复制
#sqlite3是一个内置的python模块
#使用该模块进行创建数据库,表,运行查询等
#注:以下内容需要具有数据库知识基础
import sqlite3
#创建数据库并获得连接
conn = sqlite3.connect('employee.db')
#获得游标
c = conn.cursor()
#创建数据库表employees
c.execute("""CREATE TABLE IF NOT EXISTS employees(
      first TEXT,
      last TEXT,
      pay INTEGER
  )""")
#提交事务
conn.commit()
conn.close()
#定义一个函数获取数据库连接
def getConn():
  conn = sqlite3.connect('employee.db')
  return conn




conn = getConn()
c = conn.cursor()
#插入数据到表中
#c.execute("INSERT INTO employees VALUES('yale','Andy',50000)")
#c.execute("INSERT INTO employees VALUES('T','Bag',60000)")
conn.commit()
conn.close()

#查询数据
conn = getConn()
c = conn.cursor()
c.execute("SELECT * FROM employees WHERE first='yale' ")
#获取一条数据 返回的是元组
print(c.fetchone())#('yale', 'Andy', 50000)
conn.commit()
conn.close()


#查询数据
conn = getConn()
c = conn.cursor()
c.execute("SELECT * FROM employees")
#获取所有数据
print(c.fetchall())
#[('yale', 'Andy', 50000), ('T', 'Bag', 60000)]
conn.commit()
conn.close()
#接下来我们导入Employee类模块
from employee import Employee

emp1 = Employee('Trace','Mack',10000)
emp2 = Employee('Beast','Monster',87887)

#插入emp1对象到数据库
conn = getConn()
c = conn.cursor()
#插入数据到表中
#c.execute("INSERT INTO employees VALUES('{}','{}',{})".format(emp1.first,emp1.last,emp1.pay))
#或者使用?占位符
#c.execute("INSERT INTO employees VALUES(?,?,?)",(emp1.first,emp1.last,emp1.pay))
#或者名称占位:
#c.execute("INSERT INTO employees VALUES(:first,:last,:pay)",{'first':emp1.first,'last':emp1.last,'pay':emp1.pay})
conn.commit()
conn.close()
#接下来定义数据库增删该查函数进行操作
#这里使用内存数据库
conn = sqlite3.connect(':memory:')

c = conn.cursor()

c.execute("""CREATE TABLE employees (
            first text,
            last text,
            pay integer
            )""")

#添加员工函数
def insert_emp(emp):
    with conn:
        c.execute("INSERT INTO employees VALUES (:first, :last, :pay)", {'first': emp.first, 'last': emp.last, 'pay': emp.pay})

#查询员工函数
def get_emps_by_name(lastname):
    c.execute("SELECT * FROM employees WHERE last=:last", {'last': lastname})
    return c.fetchall()

#更新员工函数
def update_pay(emp, pay):
    with conn:
        c.execute("""UPDATE employees SET pay = :pay
                    WHERE first = :first AND last = :last""",
                  {'first': emp.first, 'last': emp.last, 'pay': pay})

#删除员工函数
def remove_emp(emp):
    with conn:
        c.execute("DELETE from employees WHERE first = :first AND last = :last",
                  {'first': emp.first, 'last': emp.last})

emp_1 = Employee('John', 'Doe', 80000)
emp_2 = Employee('Jane', 'Doe', 90000)

insert_emp(emp_1)
insert_emp(emp_2)

emps = get_emps_by_name('Doe')
print(emps)

update_pay(emp_2, 95000)
remove_emp(emp_1)

emps = get_emps_by_name('Doe')
print(emps)
conn.close()

今天初学python用Sqlite3创建数据库、表、运行查询学习就到这里!

关注公号

下面的是我的公众号二维码图片,欢迎关注。

yale记公众号

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 yale记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 关注公号
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档