本地数据库建立
本机上下载MYSQL,自己创建用户名,密码之类。
连接数据库
用python连接数据库需要使用pymysql库,读者自行安装
导入库
import pymysql
连接数据库,将写好的信息放在变量中,
DBhost = 'localhost'
DBuser = 'root'
DBpassword = '******'#mysql密码
DBname = 'dbtest'#数据库名字
最好用try语句捕获一下运行的异常
import pymysql
DBhost = 'localhost'
DBuser = 'root'
DBpassword = '******'
DBname = 'dbtest'
"""用try来看一下若连接失败返回的错误"""
try:
db = pymysql.connect(host=DBhost,user=DBuser,password=DBpassword,database=DBname)
print("数据库连接成功!")
except pymysql.Error as a:
print("数据库连接失败!"+str(a))
创建表
在dbtest这个数据库下创建一个表,
首先需要声明一个游标
cur = db.cursor()
接下来就是对游标进行操作
使用cur.execute()语句参数可以是mysql语句,如:
DROP TABLE IF EXISTS student
代码展示:
try:
db = pymysql.connect(host=DBhost,user=DBuser,password=DBpassword,database=DBname)
print("数据库连接成功!")
cur = db.cursor() # 声明一个游标
cur.execute('DROP TABLE IF EXISTS massage') # 创建表之前先检查是否存在,若存在则删除
sql = "CREATE TABLE Massage(Name char(20) NOT NULL,gread char(30),stu_id char(20))"#表头标签
cur.execute(sql)#给这个表添加标签
sql中代表的是数据库中表的标签,这里下的是姓名,年级,学号
插入数据
"""提交数据库信息"""
sql1 = "insert into student(Name,gread,stu_id)value(%s,%s,%s)"
value = ('Freedom-enthusiast','网络工程','12345678')
cur.execute(sql1,value)
db.commit()#数据提交
注意用commit语句提交
查询数据
"""查找数据库信息"""
sqlselect = "select * from student"
cur.execute(sqlselect)
results = cur.fetchall()#接收查询的信息,是一个列表
op = input("请输出姓名进行查询:")
for i in results:
name = i[0]
gread = i[1]
stuid = i[2]
if name ==op:
print("姓名:%s,年级:%s,学号:%s"%(name,gread,stuid))#对应输出信息
用fetchall函数接受信息,这里我做了一个判断语句,一样就输出
更新信息
sql="UPDATE Student SET Name= %s WHERE Name=%s"
value = ('John', 'updated name')
cur.execute(sql,value)
db.commit()
后面还有删除信息,删除表等,不在一一演示,总之就是将sql语法换一下,再用execute执行一下,值得注意的是,修改信息,提交信息时,不能忘了commit语句,如果删除表中某一个信息也需要有commit语句。
完整代码展示
# -*- coding: utf-8 -*-
# autuor:Freedom enthusiast
import pymysql
DBhost = 'localhost'
DBuser = 'root'#用户名
DBpassword = '******'
DBname = 'dbtest'
"""用try来看一下若连接失败返回的错误"""
try:
db = pymysql.connect(host=DBhost,user=DBuser,password=DBpassword,database=DBname)
print("数据库连接成功!")
cur = db.cursor() # 声明一个游标
# cur.execute('DROP TABLE IF EXISTS massage') # 创建表之前先检查是否存在,若存在则删除
# sql = "CREATE TABLE Massage(Name char(20) NOT NULL,gread char(30),stu_id char(20))"#表头标签
# cur.execute(sql)#给这个表添加标签
cur.execute('DROP TABLE IF EXISTS student') # 创建表之前先检查是否存在,若存在则删除
sql = "CREATE table student(Name char(20) NOT NULL,gread char(30),stu_id char(20))"#表头标签 双引号!
cur.execute(sql)#execute执行sql语句
"""提交数据库信息"""
sql1 = "insert into student(Name,gread,stu_id)value(%s,%s,%s)"
value = ('Freedom','网络工程','12345678')
cur.execute(sql1,value)
db.commit()#数据提交
"""查找数据库信息"""
sqlselect = "select * from student"
cur.execute(sqlselect)
results = cur.fetchall()#接收查询的信息,是一个列表
op = input("请输出姓名进行查询:")
for i in results:
name = i[0]
gread = i[1]
stuid = i[2]
if name ==op:
print("姓名:%s,年级:%s,学号:%s"%(name,gread,stuid))#对应输出信息
except pymysql.Error as a:
print("数据库连接失败!"+str(a))