Python连接数据库

244 阅读1分钟

1.0 用python链接数据库

1.1 连接数据库——案例

coding=utf-8
import pymysql

# todo 连接数据库
connection = pymysql.connect(host='127.0.0.1', user='root', passwd='root', database='wangchunqiong', port=3306)
或者
connection = pymysql.connect(host='localhost', user='root', passwd='root', database='newdb', port=3306)
print(con)

# todo 获取操作句柄
cur = con.cursor()
#
# todo 使用数据库
sql1 = 'select database();'
cur.execute(sql1)  #执行sql语句
#
# 获取执行的结果
print(cur.fetchall())
#
# todo 需求,获取wangchunqiong数据库中的表
sql2 = 'show tables'
cur.execute(sql2) 
print(cur.fetchall())
#
# todo 需求获取wangchunqiong里面的数据
sql3 = 'select * from department'
cur.execute(sql3)
print(cur.fetchall())

1.2 获取数据

从前往后获取,不回头,尽量三种不加在一起用,获取所有的时候,光标移动到最后,获取多条及一条就获取不到了

  • fetchall 获取执行结果的所有数据

  • fetchmany 获取执行结果的部分数据

    如果没有返回的数据,返回的是一个空元组,如果fetchmany()括号内容不写,返回一条数据

  • fetchone 获取执行结果的一条数据

    如果没有返回的数据,返回的是None

1.3 解决sql注入的问题

# def search_info():
#     username = input('请输入要查询的用户名:')
#
#     sql1 = 'select * from student where Sname=%s'
#     mysql_cur.execute(sql1,[username])
#     print(mysql_cur.fetchall())
# search_info()
在where语句中使用%s站位符,在调用时在()中加入[变量名]进行调用,避免了sql注入语句的问题

2.0 导包

2.1 方法一

import 包名

如果需要使用包里面的函数
包名.函数名     引用
包名.函数名() 执行函数

2.2 方法二

from 文件 import 函数名

如果需要使用
函数名()