python连接MySQL
1.导入模块
import pymysql
没有这个包的话先用 pip安装一下
pip install pymysql
2.建立连接对象
conn = pymysql.connect(host="localhost", port=3306, user="root", password="123456", database="mydb")
参数:
host 主机,本机就写localhost就行
user 用户名
password 密码
database 指定数据库
port 端口号默认是3306,可以不写
3.创建游标对象
cur = conn.cursor()
4.使用游标对象执行SQL语句
result = cur.execute("select * from goods")
也可以把SQL语句赋给一个变量,把变量作为参数.
result 返回值 :
1)增删改,返回影响的行数
2)查询,返回总记录数
5.获取执行结果
result_one = cur.fetchone()
从查询结果中拿一条数据,是一个元组
result_list = cur.fetchall()
把查询结果的数据全部拿到,是一个元组包含着每一条结果
6.打印输出获取的内容
print(result_one)
for line in result_list:
print(line)
7.关闭游标对象
cur.close()
用完之后要关闭
8.关闭连接对象
conn.close()
用完之后要关闭
# 1
import pymysql
# 2
conn = pymysql.connect(host='localhost', port=3306, user='root', password='123456', database='mydb')
# 3
cur = conn.cursor()
# 4
# cur.execute(sql语句),返回值是影响的行数,如果是查询语句,此处返回值总记录数
result = cur.execute("select * from goods")
print(result)
# 5
# cur.fetchone() 拿一条数据
# result_one = cur.fetchone()
result_list = cur.fetchall()
# 6
# print(result_one)
for line in result_list:
print(line)
# 7
cur.close()
# 8
conn.close()
增删改
增删改只是SQL语句的变化
sql = "insert into 表名 values()"
sql = "update 表名 set 修改值 条件"
sql = "delete from 表名 条件"
- 增删改需要把SQL传给execute()执行之后要commit()一下才能修改到物理表,就是提交事务.查询不用.
- 要想在执行时传参给SQL,自己处理拼接SQL语句即可.
执行SQL的永远是数据库管理系统,通过python建立的连接只是python和数据库沟通的一个桥梁,我们只用拼好SQL并传给数据库执行再拿到结果就行了.(单纯拼接SQL可能会引发SQL注入问题)
关于SQL注入问题,下章再说.
如有错误还望指出