Sqlite3

 一:Sqlite3

1.连接对象
•Connect()创建连接:host/server /user/password/db connect方法生成一个connect对象, 我们通过这个对象来访问数据库。符合标准的模块都会实现connect方法。

sqlite3.connect[database[.timeout,其他可选参数])

function:此API打开与SQLite数据库的连接。如果成功打开数据库,则返回一个连接对象。

database:数据库文件的路径,或":memory:",后者表示再RAM中创建临时数据库

timeout:指定连接在引发异常之前等待消失得到时间,默认为5.0秒

2.cursor()

cursor():创建游标。系统为用户开通的一个数据缓冲区,用于存放SQL语句执行结果。cursor游标是有状态的,它可以记录当前已经取到结果的第几个记录了,因此,一般你只可以遍历结果集一次。在上面的情况下,如果执行fetchone()会返回为空。这一点在测试时需要注意

connection.cursor([cursorClass])

3.对象方法

A.connection对象的方法

connect.cursor()          返回游标对象

connect.execute(sql[,parameters])       创建中间游标对象执行一个sql命令

connect.executemany(sql[,parameters])      创建中间游标对象执行一个sql命令

connect.executescript(sql_scripe)               创建中间游标对象,以脚本的形式执行sql命令

connect.total_changes()                       返回自打开数据库以来,已增删改的行的总数

connect.commit()           提交当前事务,不使用时为放弃所做的修改,即不保存

connect.rollback()         回转自上次调用commit()以来所做的修改,撤销

connect.close()              断开数据库连接

B.cursor对象的方法

cursor.execute(sql[,parameters])    执行一个sql命令

cursor.executemany(sql,seq_of_parameters)        对seq_of_parameters中的所有参数或映射执行一个sql命令

cursor.executescript(sql_script)    以脚本的形式执行多个sql命令

cursor.fetchone()                      获取查询结果集中的下一行,返回一个单一的序列,当没有更多可用的数据时,则返回 None。

cursor.fetchmany ([size=cursor.arraysize])          获取查询结果集中的下一行组,返回一个列表。当没有更多的可用的行时,则返回一个空的列表。size指定特定行数。

cursor.fetchall()           获取查询结果集中所有(剩余)的行,返回一个列表。当没有可用的行时,则返回一个空的列表

 二:db文件

a.db+学号

# -*- coding: utf-8 -*-
"""
Created on Wed May 29 16:03:52 2019
@author: 27
"""
# -*- coding: utf-8 -*-
"""
Created on Tue May 28 21:08:09 2019
@author: asus
"""
import sqlite3
import openpyxl
lists=sqlite3.connect('27.db')
c=lists.cursor()
c.execute('''CREATE TABLE paim("序号","排名","学校名称","省市","总分","生源质量","培养结果","社会声誉","科研规模","科研质量","顶尖成果","顶尖人才","科技服务","成果转化","学生国际化"
)''')
listinsheet=openpyxl.load_workbook(r'C:/Users/asus/python/新建文件夹/University_Rank.xlsx')
datainlist=listinsheet.active #获取excel文件当前表格
data_truck=('''INSERT INTO paim("序号","排名","学校名称","省市","总分","生源质量","培养结果","社会声誉","科研规模","科研质量","顶尖成果","顶尖人才","科技服务","成果转化","学生国际化") VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)''')
for row in datainlist.iter_rows(min_row=2,max_col=15,max_row=datainlist.max_row):
#使excel各行数据成为迭代器
    cargo=[cell.value for cell in row]
    c.execute(data_truck,cargo)
for row in c.execute('SELECT * FROM paim ORDER BY "序号"'):
    print(row)
lists.commit()
lists.close()

b.2018科研质量

# -*- coding: utf-8 -*-
"""
Created on Tue May 28 21:08:09 2019
@author: 27
"""
import sqlite3
import openpyxl
lists=sqlite3.connect('27.db')
c=lists.cursor()
c.execute('''CREATE TABLE z("序号","排名","学校名称","省市","总分","生源质量","培养结果","社会声誉","科研规模","科研质量","顶尖成果","顶尖人才","科技服务","成果转化","学生国际化"
)''')
listinsheet=openpyxl.load_workbook(r'C:/Users/asus/python/新建文件夹/University_Rank.xlsx')
datainlist=listinsheet.active #获取excel文件当前表格
data_truck=('''INSERT INTO z("序号","排名","学校名称","省市","总分","生源质量","培养结果","社会声誉","科研规模","科研质量","顶尖成果","顶尖人才","科技服务","成果转化","学生国际化") VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)''')
for row in datainlist.iter_rows(min_row=2,max_col=15,max_row=datainlist.max_row):
#使excel各行数据成为迭代器
    cargo=[cell.value for cell in row]
    c.execute(data_truck,cargo) 
c.execute('SELECT * FROM z WHERE "学校名称"="广东技术师范学院"')
r = c.fetchall()
print(r)
lists.commit()
lists.close()

 

c.将广东省的学校进行排名

import sqlite3
import openpyxl
lists=sqlite3.connect('27.db')
c=lists.cursor()
c.execute('''CREATE TABLE zeng("序号","排名","学校名称","省市","总分","生源质量","培养结果","社会声誉","科研规模","科研质量","顶尖成果","顶尖人才","科技服务","成果转化","学生国际化"
)''')
listinsheet=openpyxl.load_workbook(r'C:/Users/asus/python/新建文件夹/University_Rank.xlsx')
datainlist=listinsheet.active #获取excel文件当前表格
data_truck=('''INSERT INTO zeng("序号","排名","学校名称","省市","总分","生源质量","培养结果","社会声誉","科研规模","科研质量","顶尖成果","顶尖人才","科技服务","成果转化","学生国际化") VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)''')
for row in datainlist.iter_rows(min_row=2,max_col=15,max_row=datainlist.max_row):
#使excel各行数据成为迭代器
    cargo=[cell.value for cell in row]
    c.execute(data_truck,cargo) 
c.execute('SELECT * FROM zeng WHERE "省市"="广东省" ORDER BY "科研质量"')
r = c.fetchall()
print(r)
lists.commit()
lists.close()

 

posted @ 2019-05-29 16:36  简笺  阅读(392)  评论(0编辑  收藏  举报