📜  使用Python和SQLite的SQL 2

📅  最后修改于: 2020-04-10 14:49:23             🧑  作者: Mango

数据库提供了许多功能,通过这些功能可以轻松地在Web上管理大量信息,并在典型文件(例如文本文件)上输入和输出大量数据。SQL是一种查询语言,在数据库中非常流行。许多网站使用MySQL。SQLite是一个“轻量级”版本,其语法与SQL非常相似。
SQLite是一个自包含的,高可靠性,嵌入式,功能齐全的公共域SQL数据库引擎。它是万维网上最常用的数据库引擎。
Python有一个用于访问SQLite数据库的库,称为sqlite3,用于与该数据库一起使用,该库自2.5版以来已包含在Python软件包中。
在本文中,我们将讨论如何使用诸如Update和Delete之类的命令查询数据库,以及如何通过图形显示数据。
建议使用Python的SQL 1

更新和删除操作 

# 更新操作代码
import sqlite3
# 要作为参数传递的数据库名称
conn = sqlite3.connect('mydatabase.db')
# 更新学生记录
conn.execute("UPDATE Student SET name = 'Sam' where unix='B113059'")
conn.commit()
print "总行数已更新 :", conn.total_changes
cursor = conn.execute("SELECT * FROM Student")
for row in cursor:
   print row,
conn.close()

输出: 

总行数已更新 : 1
(u'B113053', u'芒果', u'2017-01-11 13:53:39', 21.0),
(u'B113058', u'Saan', u'2017-01-11 13:53:39', 21.0),
(u'B113059', u'Sam', u'2017-01-11 13:53:39', 22.0)

 

# 删除操作的代码
import sqlite3
# 要作为参数传递的数据库名称
conn = sqlite3.connect('mydatabase.db')
# 从数据库中删除学生记录
conn.execute("DELETE from Student where unix='B113058'")
conn.commit()
print "删除的总行数 :", conn.total_changes
cursor = conn.execute("SELECT * FROM Student")
for row in cursor:
   print row,
conn.close()

输出: 

删除的总行数 : 1
(u'B113053', u'芒果', u'2017-01-11 13:53:39', 21.0),
 (u'B113059', u'Sam', u'2017-01-11 13:53:39', 22.0)

 

用户输入的数据

# 使用输入数据执行查询的代码
import sqlite3
# 在RAM中创建数据库
con = sqlite3.connect(":memory:")
cur = con.cursor()
cur.execute("create table person (name, age, id)")
print ("输入5个学生姓名:")
who = [raw_input() for i in range(5)]
print ("分别输入他们的年龄:")
age = [int(raw_input()) for i in range(5)]
print ("分别输入其ID:")
p_id = [int(raw_input()) for i in range(5)]
n = len(who)
for i in range(n):
    # 这是q mark样式:
    cur.execute("insert into person values (?, ?, ?)", (who[i], age[i], p_id[i]))
    # 这就是命名的样式:
    cur.execute("select * from person")
    # 从表中获取所有条目
    print cur.fetchall()

输出:

(u'Navin', 34, 113053)
(u'Basu', 42, 113058)
(u'Firoz', 65, 113059)
(u'Tim', 47, 113060)
(u'Varun', 54, 113061)

用SQLite绘图 

# 使用matplotlib库进行图形可视化
import matplotlib.pyplot as plt
def graph_data(p_id,age):
    # 绘制点
    plt.plot(p_id, age, color='yellow', linestyle='dashed', linewidth = 3,
    marker='*', markerfacecolor='blue', markersize=12)
    # 命名x轴
    plt.xlabel('Persons Id')
    # 命名y轴
    plt.ylabel('Ages')
    # plt.plot(p_id,age)
    plt.show()
print ("输入5个学生姓名:")
who = [raw_input() for i in range(5)]
print ("分别输入他们的年龄:")
age = [int(raw_input()) for i in range(5)]
print ("分别输入其ID:")
p_id = [int(raw_input()) for i in range(5)]
# 调用图函数
graph_data(p_id,age) 

通过这种方式,我们可以使用SQL查询来执行此类操作,以与数据库进行通信并显着绘制Graph以绘制其特征.