1、使用前提
安装MySQL数据库,安装pymysql第三方库。
2、使用连接数据库最初步骤
(1) 声明一个连接对象。使用connect()方法声明一个连接对象conn,参数为数据库的一些信息。依次为主机名、用户名、密码、端口号;
(2) 获得游标。使用cursor()方法获得游标;
(3) 执行 sql 语句。使用execute()方法;
(4)关闭游标;
(5) 关闭连接。
以下代码对数据库进行了连接,执行语句,得到版本。
import pymysql
# (1) 声明一个连接对象
conn = pymysql.connect(host='localhost', user='root',
passwd='1141477238', port=3306)
# (2) 建立游标
cursor = conn.cursor()
# (3) 执行语句
sql = "SELECT VERSION()"
cursor.execute(sql)
data = cursor.fetchone() # fetchone()得到第一条数据
print('DataBase version:', data)
cursor.close() # (4) 关闭游标
conn.close() # (5) 关闭连接
# 输出:DataBase version: ('8.3.0',)
3、创建数据库(创建架构)
# 使用语句create database 数据库名
# 默认编码方式urf-8
sql = "create database spider default character set utf8mb4"
4、创建表
使用CREATE TABLE 表名(表头),此处为id,name,age。
import pymysql
conn = pymysql.connect(host='localhost', user='root',
passwd='1141477238', port=3306, db='spider')
cursor = conn.cursor()
sql = ('CREATE TABLE IF NOT EXISTS student(id VARCHAR(255) NOT NULL, '
'name VARCHAR(255) NOT NULL, '
'age INT NOT NULL, '
'PRIMARY KEY (id))')
cursor.execute(sql)
cursor.close()
conn.close()
5、Pycharm 可视化连接 MySQL 图形界面
在执行代码后观察。具体见链接http://t.csdnimg.cn/ZYZoQ
根据上述代码,我们可以看到我们的数据库spider,点击表student,发现如下图所示:
即建表成功,可以开始之后的操作。
6、插入数据
使用insert into 表名(表头元素) values (%s, %s, %s),之后execute()中传入参数,再比最初步骤多了一个连接提交conn.commit()即可。
import mysql
# 插入数据
conn = pymysql.connect(host='localhost', user='root',
passwd='1141477238', port=3306, db='spider')
cursor = conn.cursor()
id = '10001'
name = 'John'
age = 20
sql = 'insert into student(id, name, age) values (%s, %s, %s)'
cursor.execute(sql, (id, name, age))
conn.commit()
cursor.close()
conn.close()
7、更新数据
使用update 表明 set 要改变量名 = %s where id = %s(id为定位变量)
# 改id为10001的age
sql = 'update student set age = %s where id = %s'
cursor.execute(sql, (25, '10001'))
8、查询数据
使用select * from 表名 where 条件"。执行后结果返回再游标对象里,使用fetchall()方法返回所有符合条件的结果。
初表:
# 查询数据
conn = pymysql.connect(host='localhost', user='root',
passwd='1141477238', port=3306, db='spider')
cursor = conn.cursor()
sql = "select * from student where age >= 25"
cursor.execute(sql)
result = cursor.fetchall()
print(result)
执行代码结果:
9、删除数据
改变 sql 语句即可,使用delete from 表名 where 条件即可
import mysql
conn = pymysql.connect(host='localhost', user='root',
passwd='1141477238', port=3306, db='spider')
cursor = conn.cursor()
sql = "delete from student where age >= 25 "
cursor.execute(sql)
conn.commit()
cursor.close()
conn.close()
本人新手,若有错误,欢迎指正;若有疑问,欢迎讨论。若文章对你有用,点个小赞鼓励一下,谢谢,一起加油吧!