Python如何连接数据库

首先导入 pymysql 模块

import pymysql

如果运行后提示如下错误,说明没有安装对应模块

ImportError: No module named pymysql

则需要运行

pip install pymysql 

连接方式如下

import pymysql  #导入模块
 
#创建数据库链接
db = pymysql.connect(
    host = "localhost", #主机ip
    user = "root", #数据库用户
    password = "1111", #用户对应的密码
    database = "Python", #对应的数据库
    port = 3306, #数据库端口,默认3306
    charset = 'utf8' #数据库编码
)
#创建游标:游标用于传递python给mysql的命令和mysql返回的内容
cursor = db.cursor()
#执行部分
exe = cursor.execute("show databases") #执行命令,返回查询的条数
print(exe)
#result = cursor.fetchone()
#返回单个的元组,也就是一条记录(row),如果没有结果 则返回 None

#result = cursor.fetchmany(3)
#返回前n行数据,比如上面的是获取前三行数据,元组包含元组

result = cursor.fetchall() #查询结果
#返回多个元组,即返回多个记录(rows),如果没有结果 则返回 ()

print(result)
#关闭部分
db.commit() #链接提交,用于对数据库的增删改
cursor.close() #关闭游标
db.close() #关闭链接

下方为一些基础操作

# 查询数据库版本
cursor.execute("select version()")
data = cursor.fetchone()

# 创建数据库
cursor.execute("drop database if exists test")  
#如果数据库已经存在,那么删除后重新创建
sql = "create database test"
cursor.execute(sql)

#创建数据库表
cursor.execute("drop table if exists employee")  
#如果数据表已经存在,那么删除后重新创建
sql = """
CREATE TABLE EMPLOYEE 
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT )
"""
cursor.execute(sql)

#查询数据表数据
sql = "select * from employee"
cursor.execute(sql)
data = cursor.fetchone()
print(data)

#插入数据
sql = "insert into employee values ('李','梅',20,'W',5000)"
cursor.execute(sql)
db.commit()

#查看插入后的结果
sql = "select * from employee"
cursor.execute(sql)
data = cursor.fetchone()
print(data)

#指定条件查询数据表数据
sql = " select * from employee where income > '%d' " % (1000)
cursor.execute(sql)
data = cursor.fetchone()
print(data)

#更新数据库
sql = " update employee set age = age+1 where sex = '%c' " % ('W')
cursor.execute(sql)
db.commit()

# commit()方法需要跟在增(insert)、删(delete)、改(update)、查(select)
的任何execute()语句后面。commit是把查询语句提交到数据库内,
而不只是要向数据库提交增、添的数据,相当于是把所作的修改保存到数据库中。


#删除数据
sql = " delete from employee where age > '%d' " % (30)
cursor.execute(sql)
db.commit()

#关闭数据库连接
db.close()

未经允许不得转载:书生吴小帅 » Python如何连接数据库

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址