1.配置mysql上的权限
image.png
2.创建你要操作连接的库文件
create database shark_db default CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
3.在python的机子上进行连接
import pymysql
----------------------------------------------
# 创建连接
conn = pymysql.connect(host='172.16.153.10',
port=3306,
user='root',
passwd='123',
db='shark_db',
charset='utf8mb4')
------------------------------------------------
# 获取游标对象
cursor = conn.cursor()
------------------------------------------------
# 定义 sql 语句(创建表)
create_table_sql = """create table t1
(id int auto_increment primary key,
name varchar(10) not null,
age int not null)"""
# 执行 sql 语句
cursor.execute(create_table_sql)
--------------------------------------------------
#一次插入一条数据, 并且使用变量占位符
insert_data_sql = "insert into t1(name, age) values(%s, %s);"
row = cursor.execute(insert_data_sql, ('shark', 18))
------------------------------------------------
#定义插入数据的语句
many_sql = "insert into t1 (name, age) values(%s, %s)"
#一次插入多条数据
row = cursor.executemany(many_sql, [('shark1', 18),('xiguatian', 20),('qf', 8)])
------------------------------------------------
#查询数据
query_sql = "select id,name,age from t1;"
row_nums = cursor.execute(query_sql)
print("查询到了{}行数据".format(row_nums))
# 获取数据中的第一条
one_data = cursor.fetchone()
print(f"数据结果集中的第一条{one_data}")
# 获取数据中的指定数量的条目
many_data = cursor.fetchmany(2)
print(f"数据结果集中的第 2 行和第 3 行数据{many_data}")
# 获取数据中剩余的全部数据
all_data = cursor.fetchall()
print(f"结果集中剩余所有数据{all_data}")
-----------------------------------------------
# 提交更改
conn.commit()
# 关闭游标对象
cursor.close()
# 关闭连接对象
conn.close()
如何改变获取到的数据的类型
image.png
- 获取到数据结果集具有迭代器的特性:
- 可以通过索引取值,可以切片
- 结果集中的数据每次取出一条就少一条