ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

【python】数据库学习笔记,设计自己的大学排名

2020-06-18 20:56:08  阅读:389  来源: 互联网

标签:SQLite python 数据库 cursor 大学排名 sqlite3 import conn


SQLite:

       SQLite是一种嵌入式数据库,它的数据库就是一个文件。由于SQLite本身是C写的,而且体积很小,所以,经常被集成到各种应用程序中,iOS和Android的App中都可以集成。 Python就内置了SQLite3,所以,在Python中使用SQLite,不需要安装任何东西,直接使用。

       在使用SQLite前,我们先要搞清楚几个概念: 表是数据库中存放关系数据的集合,一个数据库里面通常都包含多个表,比如学生的表,班级的表,学校的表,等等。表和表之间通过外键关联。 要操作关系数据库,首先需要连接到数据库,一个数据库连接称为Connection; 连接到数据库后,需要打开游标,称之为Cursor,通过Cursor执行SQL语句,然后,获得执行结果。 Python定义了一套操作数据库的API接口,任何数据库要连接到Python,只需要提供符合Python标准的数据库驱动即可。

使用Python操作SQLite数据库

1、已内嵌在Python中,使用时需要导入sqlite3。

2、通过数据库级上的独占性和共享锁定来实现独立事务,当多个线程和进程同一时间访问同一数据库时,只有一个可以写入数据。

3、支持140TB的数据库,每个数据库完全存储在单个磁盘文件中,以B+数据结构的形式存储,一个数据库就是一个文件,通过复制即可实现备份。

常用的SQLite可视化管理工具 www.sqlabs.com==>SQLiteManager SQLite Database Browser

访问和操作SQLite数据时,需要首先导入sqlite3模块,然后创建一个与数据库关联的Connection对象:

import sqlite3 #导入模块

conn = sqlite3.connect('example.db') #连接数据库

# 连接到SQLite数据库

# 数据库文件是example.db

# 如果文件不存在,会自动在当前目录创建:

成功创建Connection对象以后,再创建一个Cursor对象,并且调用Cursor对象的execute()方法来执行SQL语句创建数据表以及查询、插入、修改或删除数据库中的数据:

c = conn.cursor()

# 创建表,

c.execute('''CREATE TABLE stocks (date text, trans text, symbol text, qty real, price real)''')

# 插入一条记录

c.execute("INSERT INTO stocks VALUES ('2006-01-05','BUY', 'RHAT', 100, 35.14)")

# 提交当前事务,保存数据

conn.commit()

# 关闭数据库连接

conn.close()

如果需要查询表中内容,那么重新创建Connection对象和Cursor对象之后,可以使用下面的代码来查询。

for row in c.execute('SELECT * FROM stocks ORDER BY price'):

      print(row)

connect(database[, timeout, isolation_level, detect_types, factory]) :连接数据库文件,也可以连接":memory:"在内存中创建数据库。

sqlite3.Connection.execute():执行SQL语句

sqlite3.Connection.cursor():返回游标对象

sqlite3.Connection.commit():提交事务

sqlite3.Connection.rollback():回滚事务

sqlite3.Connection.close():关闭连接

在sqlite3连接中创建并调用自定义函数:

import sqlite3

import hashlib

#自定义Python函数

def md5sum(t):

      return hashlib.md5(t).hexdigest()

# 在内存中创建临时数据库

conn = sqlite3.connect(":memory:")

# 创建可在SQL调用的函数,其中第二个参数表示函数的参数个数 conn.create_function("md5", 1, md5sum) cur = conn.cursor()

# 在SQL语句中调用自定义函数

cur.execute("select md5(?)", ["中国山东烟台".encode()])

print(cur.fetchone()[0])

Cursor对象常用方法:

close(...): 关闭游标

execute(...):执行SQL语句

executemany(...):重复执行多次SQL语句

executescript(...):一次执行多条SQL语句

fetchall(...):从结果集中返回所有行记录

fetchmany(...): 从结果集中返回多行记录

fetchone(...):从结果集中返回一行记录

查询“广东技术师范学院”的排名和得分信息

import pandas
import csv
import sqlite3
 
conn = sqlite3.connect("db+2019310143031.db")
df = pandas.read_csv('C:/python/作业.csv',encoding='gbk')
df.to_sql('w2019310143128', conn, if_exists='append', index=False)
 
cursor = conn.cursor()
 
cursor.execute('select * from w2019310143128')
all = cursor.fetchall()
for line in all:
    if "广东技术师范学院" in line:
        print(line)
        break

cursor.close()
conn.commit()
cursor.close()

 广东省的高校的排名和得分情况

import pandas
import sqlite3
import pandas
conn= sqlite3.connect("db+2019310143031.db")
df = pandas.read_csv('C:/python练习/作业.csv',encoding='gbk')
df.to_sql('w28', conn, if_exists='append', index=False)
cur = conn.cursor()
cur.execute('SELECT * FROM w28')
all = cur.fetchall()
for line in all:
    if "广东" in line:
        print("{} {} {} {}".format(line[0],line[1],line[2],line[7]))
conn.close()

 

 

标签:SQLite,python,数据库,cursor,大学排名,sqlite3,import,conn
来源: https://www.cnblogs.com/litchi666/p/13159949.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有