python操作mysql数据库,python如何给mysql增加数据
本节课主要介绍了:安装数据库、用navicat链接数据库、用python链接数据库、python创建数据库表、增加字段、批量增加变量随机字段、
mysql数据库安装 官网https://www.mysql.com/ 安装教程:https://www.51zxw.net/Show.aspx?cid=1310&id=149959 使用navicat操作数据库如果是链接本地数据库就使用默认localhost就可以,不需要填远程IP
pyton链接mysql数据库:
import pymysql #引入python mysql库
class main():
#-------以下这些数据,都赋值给了相应的变量,
host="localhost" #链接本地mysql,赋值给变量host
port=3306 #记得使用数字,端口号赋值给变量port
user="zhanghao" #账号赋值给变量用户
password="mima" #密码赋值给变量password
db="data" #数据库名称
charset="utf8" #数据库编码
#创建数据库连接对象,建立连接,把变量等于相对应的参数。
conn=pymysql.Connect(host=host,port=port,user=user,password=password,db=db,charset=charset)
try:
print("数据库已连接.....")
#......相关操作
except Exception as e:
print("出现异常:",e)
finally:
conn.close() #关闭数据库连接
#---------------------------
if __name__ == '__main__':
main()# python创建mysql表,和删除msql 表。:
import pymysql
# 获取数据库连接公共方法
def getConnection():
host = "localhost"
port = 3306 # 记得使用数字
user = "zhanghao"
password = "mima"
db = "data" # 数据库名称
charset = "utf8"
# 创建数据库连接对象,建立连接
conn = pymysql.Connect(host=host, port=port, user=user, password=password, db=db, charset=charset)
return conn
def main():
conn = getConnection()
# 创建游标对象(1.执行sql语句;2.处理查询结果)
cursor = conn.cursor()
try:
print("数据库已连接.....")
# 编写sql语句1,创建一个表
sql1 = '''
CREATE TABLE stu2 (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(255) DEFAULT NULL,
age int(11) DEFAULT NULL,
hobby varchar(255) DEFAULT NULL,
PRIMARY KEY (id)
)
'''
# 编写sql语句2,删除一个表
sql2 = '''
drop table stu2
'''
# 这两句话那句取消注释了,就会执行那句sql语句。
cursor.execute(sql1)
# cursor.execute(sql2) #这句话如果取消注释,sql语句2,的删除表语句也会被执行。
# 提交数据
conn.commit()
except Exception as e:
print("出现异常:", e)
finally:
cursor.close() # 关闭游标
conn.close() # 关闭数据库连接
# ---------------------------
if __name__ == '__main__':
main()pyton给数据库的表增加字段:
import pymysql
# 获取数据库连接公共方法
def getConnection():
host = "localhost"
port = 3306 # 记得使用数字
user = "zhanghao"
password = "mima"
db = "data" # 数据库名称
charset = "utf8"
# 创建数据库连接对象,建立连接
conn = pymysql.Connect(host=host, port=port, user=user, password=password, db=db, charset=charset)
return conn
def main():
conn = getConnection()
# 创建游标对象(1.执行sql语句;2.处理查询结果)
cursor = conn.cursor()
try:
print("数据库已连接.....")
# 编写sql语句1,创建一个表
sql1 = '''
CREATE TABLE stu2 (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(255) DEFAULT NULL,
age int(11) DEFAULT NULL,
hobby varchar(255) DEFAULT NULL,
PRIMARY KEY (id)
)
'''
#INSERT INTO stu(name, age, hobby) VALUES('张三', 12, '打球') 这句话就是给表新增了一个字段。
zid = '''
INSERT INTO stu2(name, age, hobby) VALUES('张三', 12, '打球')
'''
# 编写sql语句2,删除一个表
sql2 = '''
drop table stu2
'''
# 执行SQL语句
#cursor.execute(sql1) #执行sql1语句
cursor.execute(zid) #执行zid 语句,插入字段。
# cursor.execute(sql2) #有注释,所以sql2语句不会被执行
# 提交数据
conn.commit()
except Exception as e:
print("出现异常:", e)
finally:
cursor.close() # 关闭游标
conn.close() # 关闭数据库连接
# ---------------------------
if __name__ == '__main__':
main()pyton给数据库的表增加字段:但是字段由变量定义
import pymysql
# 获取数据库连接公共方法
def getConnection():
host = "localhost"
port = 3306 # 记得使用数字
user = "zhanghao"
password = "mima"
db = "data" # 数据库名称
charset = "utf8"
# 创建数据库连接对象,建立连接
conn = pymysql.Connect(host=host, port=port, user=user, password=password, db=db, charset=charset)
return conn
def main():
conn = getConnection()
# 创建游标对象(1.执行sql语句;2.处理查询结果)
cursor = conn.cursor()
try:
print("数据库已连接.....")
# 编写sql语句1,创建一个表
sql1 = '''
CREATE TABLE stu2 (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(255) DEFAULT NULL,
age int(11) DEFAULT NULL,
hobby varchar(255) DEFAULT NULL,
PRIMARY KEY (id)
)
'''
# INSERT INTO stu(name, age, hobby) VALUES('张三', 12, '打球') 这句话就是给表新增了一个字段。
name="王五"
age=14
hobby="看书"
zid ="INSERT INTO stu2(name, age, hobby) VALUES('"+name+"', "+str(age)+", '"+hobby+"')"
# 编写sql语句2,删除一个表
sql2 = '''
drop table stu2
'''
# 执行SQL语句
#cursor.execute(sql1) # 执行sql1语句
cursor.execute(zid) # 执行zid 语句,插入字段。
# cursor.execute(sql2) #有注释,所以sql2语句不会被执行
# 提交数据
conn.commit()
except Exception as e:
print("出现异常:", e)
finally:
cursor.close() # 关闭游标
conn.close() # 关闭数据库连接
# ---------------------------
if __name__ == '__main__':
main()随机案例:pyton给数据库的表增加字段:字段由变量定义,批量增加100条。并且,姓名、年龄、爱好,都是随机的。
import random
import pymysql
# 获取数据库连接公共方法
def getConnection():
host = "localhost"
port = 3306 # 记得使用数字
user = "zhanghao"
password = "mima"
db = "data" # 数据库名称
charset = "utf8"
# 创建数据库连接对象,建立连接
conn = pymysql.Connect(host=host, port=port, user=user, password=password, db=db, charset=charset)
return conn
def main():
conn = getConnection()
# 创建游标对象(1.执行sql语句;2.处理查询结果)
cursor = conn.cursor()
try:
print("数据库已连接.....")
# 编写sql语句1,创建一个表
sql1 = '''
CREATE TABLE stu2 (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(255) DEFAULT NULL,
age int(11) DEFAULT NULL,
hobby varchar(255) DEFAULT NULL,
PRIMARY KEY (id)
)
'''
# INSERT INTO stu(name, age, hobby) VALUES('张三', 12, '打球') 这句话就是给表新增了一个字段。
for i in range(100):
name = random.choice(["王五","赵六","吴芳","张三"])
age = random.choice([23,26,24,21])
hobby = random.choice(["看书","听歌","打球","跑步"])
zid = "INSERT INTO stu2(name, age, hobby) VALUES('" + name + "', " + str(age) + ", '" + hobby + "')"
# 编写sql语句2,删除一个表
sql2 = '''
drop table stu2
'''
# 执行SQL语句
# cursor.execute(sql1) # 执行sql1语句
cursor.execute(zid) # 执行zid 语句,插入字段。
# cursor.execute(sql2) #有注释,所以sql2语句不会被执行
# 提交数据
conn.commit()
except Exception as e:
print("出现异常:", e)
finally:
cursor.close() # 关闭游标
conn.close() # 关闭数据库连接
# ---------------------------
if __name__ == '__main__':
main()随机案例:【优化版】pyton给数据库的表增加字段:字段由变量定义,批量增加100条。并且,姓名、年龄、爱好,都是随机的。
优化了拼接:
以前的拼接:zid = "INSERT INTO stu2(name, age, hobby) VALUES('" + name + "', " + str(age) + ", '" + hobby + "')" ,拼接非常麻烦。
现在的拼接:zid1 = "INSERT INTO stu2(name, age, hobby) VALUES((%s),(%s),(%s))",拼接变得简单。
现在修改了执行语句:cursor.execute(zid1,[name,age,hobby]) #cursor.execute 尾部增加了拼接的变量。
import random
import pymysql
# 获取数据库连接公共方法
def getConnection():
host = "localhost"
port = 3306 # 记得使用数字
user = "zhanghao"
password = "mima"
db = "data" # 数据库名称
charset = "utf8"
# 创建数据库连接对象,建立连接
conn = pymysql.Connect(host=host, port=port, user=user, password=password, db=db, charset=charset)
return conn
def main():
conn = getConnection()
# 创建游标对象(1.执行sql语句;2.处理查询结果)
cursor = conn.cursor()
try:
print("数据库已连接.....")
# 编写sql语句1,创建一个表
sql1 = '''
CREATE TABLE stu2 (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(255) DEFAULT NULL,
age int(11) DEFAULT NULL,
hobby varchar(255) DEFAULT NULL,
PRIMARY KEY (id)
)
'''
# INSERT INTO stu(name, age, hobby) VALUES('张三', 12, '打球') 这句话就是给表新增了一个字段。
for i in range(100):
name = random.choice(["王五","赵六","吴芳","张三"])
age = random.choice([23,26,24,21])
hobby = random.choice(["看书","听歌","打球","跑步"])
zid1 = "INSERT INTO stu2(name, age, hobby) VALUES((%s),(%s),(%s))"
# 编写sql语句2,删除一个表
sql2 = '''
drop table stu2
'''
# 执行SQL语句
# cursor.execute(sql1) # 执行sql1语句
cursor.execute(zid1,[name,age,hobby]) # 执行zid 语句,插入字段。
# cursor.execute(sql2) #有注释,所以sql2语句不会被执行
# 提交数据
conn.commit()
except Exception as e:
print("出现异常:", e)
finally:
cursor.close() # 关闭游标
conn.close() # 关闭数据库连接
# ---------------------------
if __name__ == '__main__':
main()