虽然CSV文件读写方便,但我们更希望把数据写道数据库中,方便查询和保存
数据库系统包括数据库、数据库管理系统、数据库的用户和支撑数据库管理系统运行的软硬件
数据模型是现实生活中数据的抽象,用来描述数据的概念和定义,是数据库中数据的存储方式,是数据库系统的基础。
常用的数据模型有以下三种:
根据数据库的数据模型划分,数据库可以分为以下类型:
关系型数据库常用的5个对象
SQL是一种结构化程序查询语言,是关系型数据库的标准语言,可以用来:
SQL的常用命令主要分为:
SQL语句以关键字SELECT,INSERT,UPDATE等开始,所有语句以分号为结束
eg:
SELECT column1 FROM table1 WHERE condition;
查询结果如下:
下图为SQL语句的书写顺序和执行顺序:
Python连接SQL的常用包:
以pymysql为例:
import pymysql
import pymysql.cursors
结合pymysql,使用python所给的数据库API,我们将介绍如下常用的操作命令:
使用pymysql创建数据库连接:
# 连接数据库
connect = pymysql.Connect(host='localhost',port=3306,user='root',passwd='199712','minfo1','mvinfo',charset = "utf-8")
获取数据库的游标,使用游标对数据库进行操作
# 获取游标
cursor = connect.cursor()
通过cursor可以直接进行数据库操作:
创建数据库:
cursor.execute('CREATE DATABASE test;')
cursor.execute("show databases;")
查看数据库名称:
for db in cursor.fetchall():
print(db)
完整代码:
import traceback
import pymysql as pymysql
def mysql(sql):
db = pymysql.connect(host='localhost',port=3306,user='root',passwd='199712',charset = 'utf8')
# 使用cursor()方法获取操作游标
cursor = db.cursor()
try:
print(sql)
# 执行sqk语句
result = cursor.execute(sql)
#
db.commit()
results = cursor.fetchall()
except:
traceback.print_exc()
# 发生错误时回滚
db.rollback()
# 关闭数据库连接
db.close()
return results
results = mysql('create database Lihuaxin')
for result in results:
print(result)
通过cursor实现向数据库插入数据:
import traceback
import pymysql as pymysql
def mysql(sqls):
db = pymysql.connect(host='localhost',port=3306,user='root',passwd='199712',charset = 'utf8')
# 使用cursor()方法获取操作游标
cursor = db.cursor()
results=[]
try:
print("get sqlqueries = ",len(sqls))
# 执行sqk语句
for sql in sqls:
result = cursor.execute(sql)
print(sql,":",result)
db.commit()
results = cursor.fetchall()
except:
traceback.print_exc()
# 发生错误时回滚
db.rollback()
# 关闭数据库连接
db.close()
return results
results = mysql(['use hackdata','show tables'])
for result in results:
print(result)
刚开始我们看到的是没有show tables的:
然后通过添加下图红线处部分
如果多次执行一个数据库可以这样写:
插入数据:
results = mysql(['insert into user values (1, "Tom");','insert into user values (2, "Li");','select * from user ;'])