操作mysql数据库常见方法
- 1、第三方库:pymysql
- 1.1、安装pymysql
- 1.2、连接数据库
- 1.3、连接指定数据库
- 1.4 创建数据库、创建表
- 1.5、表中插入数据
- 1.6、批量插入数据
- 1.7、获取查询结果数据
- 1.8、防sql注入,sql语句中一般用占位符传值
- 2、标准库 :mysql.connector
- 2.1、安装mysql-connector
- 2.2、操作方法
1、第三方库:pymysql
1.1、安装pymysql
终端输入:pip install pymysql -i https://pypi.tuna.tsinghua.edu.cn/simple/
1.2、连接数据库
import pymysqldef connect():# 连接数据库conn = pymysql.connect(host="localhost",user="root",password="123456")print(conn)return(conn)
# 调用
connect()
1.3、连接指定数据库
def connect_database(database):# 连接数据库conn = pymysql.connect(host="localhost",user="root",password="123456",database=database)print(conn)return(conn)connect_database("test")
1.4 创建数据库、创建表
# 创建数据库
def creatdatabase(databasename):# 连接数据库conn = pymysql.connect(host="localhost",user="root",password="123456")# 创建游标对象cursor = conn.cursor()# sql中使用变量,格式化输出# 创建数据库sql ="CREATE DATABASE IF NOT EXISTS {0}".format(databasename)cursor.execute(sql)# 展示所有数据库cursor.execute("SHOW DATABASES;")# 展示执行结果for database in cursor:print(database)
# 调用
creatdatabase("test")# 创建表
def createtable():conn = pymysql.connect(host="localhost",user="root",password="123456",database="test")cursor = conn.cursor()# 删除表格cursor.execute("drop table if exists student")# 创建表格sql="create table student(id int auto_increment primary key, name varchar(20), class varchar(255))"cursor.execute(sql)# 调用
createtable()
1.5、表中插入数据
def insertdata():conn = pymysql.connect(host="localhost",user="root",password="123456",database="test")# 创建游标对象cursor=conn.cursor()# 插入数据sql,2种方式,推荐使用第一种占位符的方式,避免sql注入# 方式一addsheshou_sql="insert into student(name,class)values(%s, %s)"addsheshou_value = ("luban", "1")cursor.execute(addsheshou_sql,addsheshou_value)# 方式二addfashi_sql = "insert into student(name,class)values('anqila','2')"cursor.execute(addfashi_sql)# 提交conn.commit()# 查询语句cursor.execute("select * from student where name='luban' ")# 查看返回结果res = cursor.fetchall()print(res)# 调用
insertdata()
查看数据库增加了2条数据(也可通过命令行窗口查看):
1.6、批量插入数据
def insertmany(database):conn = connect_database(database)# 创建游标对象cursor=conn.cursor()# 插入数据sqladdmany_sql="insert into student(name,class)values(%s, %s)"addmany_values = (("huangzhong", "1"),("direnjie", "1"),("zhenji", "2"),("zhongwuyan", "3"))cursor.executemany(addmany_sql,addmany_values)# 提交conn.commit()select_showall(database, "select * from student")insertmany('test')
查看数据库增加了多条数据(也可通过命令行窗口查看):
1.7、获取查询结果数据
常用方法:
fetchall() 获取所有的记录
fetchone()获取第一行记录
fetchmany(size)获取前几行记录
def select_showall(database,sql):conn=connect_database(database)# 创建游标对象cursor = conn.cursor()cursor.execute(sql)# 每次执行cur.fetchone()语句,游标都会向下走,所以不能同时查询# 查询所有记录# allrows = cursor.fetchall()# print(allrows)# 查询多条记录# manyrows = cursor.fetchmany(2)# print(manyrows)# 查询第一条数据onerow = cursor.fetchone()print(onerow)print(type(onerow))# 调用
select_showall('test','select * from student where class="1"')
1.8、防sql注入,sql语句中一般用占位符传值
def select_data(database):conn=connect_database(database)# 创建游标对象cursor = conn.cursor()# 避免sql注入sql="select * from student where name=%s"svalue=("luban",)data=cursor.execute(sql,svalue)print(data)select_data('test')
2、标准库 :mysql.connector
2.1、安装mysql-connector
终端输入:pip install mysql-connector -i https://pypi.tuna.tsinghua.edu.cn/simple/
2.2、操作方法
实现的逻辑跟pysql一致,相同的操作,操作方法也一致