python基础——数据库操作

首先导入数据库模块sqlite3

然后建立数据库连接,执行命令,提交执行的命令:

import sqlite3
# database
# 连接到一个数据库如果一个数据库存在则链接,
# 如果数据库不存在则创建
con =  sqlite3.connect('myDB')
# 下条命令设置数据库光标   光标是用来执行数据库命令的
cursor = con.cursor()

cursor.execute('CREATE TABLE IF NOT EXISTS  my_info(name text,age int,des text)')
#上条命令的参数是要执行的数据库语句,if not exists 如果不存在则插入
con.commit()#提交数据把所做的操作保存到数据库,查询语句可不用此句

增删改查都是cursor.execute里的参数改变。但是查询我们需要接受它返回的值

因此我们可以用fetchall(),fetcgibe().fetchmay()这几个方法接受返回的值.

cursor.execute('SELECT name from my_info WHERE age > 0')
result = cursor.fetchone()
print(result)
result = cursor.fetchall()
print(result)
# many()里边表示要获取几条数据,不写表示获取所有数据这时的数据指的是所有查询出来的数据
result = cursor.fetchmany(3)
print(result)

案例:

 新建一个数据库,里面有一个数据表
1.要求有这些字段手机牌子,手机价格,手机进货日期,手机内存,手机功能(yuele ,),手机存货量
2.新建一个对象,顾客 
  新建一个对象,售货员,售货员必须有部分手机存量为0
  顾客有一个属性,叫做需求,消费能力
  售货员根据顾客需求,在数据库中查找相应的手机
  并将所有结果返回给顾客,如果找不到指定手机则提示 

import sqlite3

con = sqlite3.connect('KU')
cursor = con.cursor()
cursor.execute('CREATE TABLE IF NOT EXISTS phone_info(paizi text,price int,riqi date,neicun int,gongneng text,huoliang int)')
con.commit()

class guke():
    def __init__(self, xuqiu, nengli):
        self.xuqiu = xuqiu
        self.nengli = nengli


class xiaoshou():
    def __init__(self):
        pass

    def search(self,guke):
        exec1 = 'SELECT * from phone_info WHERE {} and price <= {}'.format(guke.xuqiu,guke.nengli)
        cursor.execute(exec1)
        result = cursor.fetchall()
        if result == []:
            print('没有该手机')
        else:
            for x in result:
                if x[5] ==0:
                    print('{}该进货了老铁'.format(x[0]))
                else:
                    print(x)

def insert(paizi1,price1,riqi1 ,neicun1,gongneng1,huoliang1):
    exec2 = 'INSERT INTO phone_info(paizi,price,riqi,neicun,gongneng,huoliang) VALUES("{}",{},"{}",{},"{}",{})'.format(paizi1,price1,riqi1,neicun1,gongneng1,huoliang1)
    cursor.execute(exec2)
    con.commit()

insert("三星",196,"2017-08-02",2,"老年",120)
insert("苹果",366,"2017-02-02",2,"娱乐",620)
insert("小米",266,"2017-09-02",3,"娱乐",330)
insert("小米",266,"2017-09-02",4,"高端",0)

laowang = guke('paizi="vivo"',nengli=880)

pangzi = xiaoshou()
pangzi.search(laowang)



猜你喜欢

转载自blog.csdn.net/za_pai_xiao_ba/article/details/80948916