python 数据库 SQLite3

python 有一套自带的数据库API接口 SQLite
上代码:

#导入驱动
import os, sqlite3

#创建一个cursor,我的理解是创建一个可以操作数据库的实例
cursor=conn.cursor()
#创建一个user表,使用的语法就是.execute('SQL 语法')
#如果有数据库就连接,没有就创建一个然后再连接
db_file = os.path.join(os.path.dirname(__file__), 'test.db')
if os.path.isfile(db_file):
    os.remove(db_file)

# 初始数据:
#连接数据库
conn = sqlite3.connect(db_file)
#创见一个数据库的实例
cursor = conn.cursor()
cursor.execute('create table user(id varchar(20) primary key, name varchar(20), score int)')
cursor.execute(r"insert into user values ('A-001', 'Adam', 95)")
cursor.execute(r"insert into user values ('A-002', 'Bart', 62)")
cursor.execute(r"insert into user values ('A-003', 'Lisa', 78)")
#每一次使用完数据库之后要先关闭数据库的实例,在关闭数据库
cursor.close()
#关闭之前提交一遍
conn.commit()
conn.close()
def get_score_in(low, high):
#    ' 返回指定分数区间的名字,按分数从低到高排序 '
    try:
        conn = sqlite3.connect(db_file)
        cursor = conn.cursor()
        cursor.execute("select name from user where score>=? and score<=? order by score ",(low,high))
        values = cursor.fetchall()
        print( 'val=',values)
        # x=[]
        # for x in values:
        #     print('x=',x)
        #     print('x[0]=',x[0])
        #     print('x[0] for x in values=',[x[0] for x in values])
        #x[0] for x in values
    finally:
        cursor.close()
        # conn.commit()
        conn.close()
    return [x[0] for x in values]
#----
# # 测试:
assert get_score_in(80, 95) == ['Adam'], get_score_
assert get_score_in(60, 100) == ['Bart', 'Lisa', 'Adam'], get_score_in(60, 100)
print('Pass')

使用MYSql需要安装一个驱动
驱动:
pip install mysql-connector-python --allow-external mysql-connector-python
或者:当以安装Anaconda可以用:conda install mysql-connector-python

mysqld的使用方式是:
conn = mysql.connector.connect(user='root', password='password', database='test')
其他都一样

你可能感兴趣的:(Python基础)