使用库 :import pymsql
安装:pip install pymsql
示例:
数据库创建和删除
pymysql连接数据库使用的是 pymsql.connect() 函数,其常用参数如下:
pymysql.connect():连接数据库
import pymysql
db = pymysql.connect(
host="localhost",
port=3306,
user='root', #在这里输入用户名
password='', #在这里输入密码
charset='utf8mb4'
)
db.cursor():创建游标对象
cursor = db.cursor() #创建游标对象
创建数据库justtest
try:
sql = 'show databases'
cursor.execute(sql)
print('未创建数据库前:',cursor.fetchall()) #获取创建数据库前全部数据库
dbname = 'justtest'
sql = 'create database if not exists %s'%(dbname) #创建数据库
cursor.execute(sql)
sql = 'show databases'
cursor.execute(sql)
print('创建新的数据库后:',cursor.fetchall()) #获取创建数据库后全部数据库
except Exception as e:
print(e)
db.rollback() #回滚事务
finally:
cursor.close()
db.close() #关闭数据库连接
删除数据库
sql = 'drop database if exists %s'%(dbname) #删除数据库
cursor.execute(sql)
sql = 'show databases'
cursor.execute(sql)
print('删除新的数据库后:',cursor.fetchall()) #获取删除数据库后全部数据库
创建数据库”常用模板“
CREATE DATABASE IF NOT EXISTS dbname DEFAULT CHARSET utf8;
创建和管理表
数据库test12340连接
import pymysql
db = pymysql.connect(
host="nyanya.cc", # mysql服务器IP地址
port=3306, # 服务所在的端口地址
user='test12340', #在这里输入用户名
database='test12340', #在这里数据库名称
password='', #在这里输入密码
charset='utf8' # 常用的utf8 utf8mb4
) #连接数据库
cursor = db.cursor() #创建游标对象
创建表
try:
cursor = db.cursor() # 创建游标对象
tableName = 'user'
sql = 'create table %s (id varchar(20) not null, name varchar(20) not null, primary key(id))'%(tableName)
cursor.execute(sql) #执行sql语句,创建表
sql = 'show tables'
cursor.execute(sql)
print('显示创建的表:',cursor.fetchall()) #显示创建的表
sql = 'desc %s'%(tableName)
cursor.execute(sql)
print('显示表结构:',cursor.fetchall()) #显示表结构
except Exception as e:
print(e)
db.rollback() #回滚事务
创建成功
connect() 函数返回的连接对象的方法总结:
方法 | |
---|---|
close() | 关闭数据库的连接 |
commit() | 提交事务 |
rollback() | 回滚事务 |
cursor() | 获取游标对象,操作数据库,如执行DML操作,调用存储过程等 |
cursor():游标对象的方法
方法名 | 说明 |
---|---|
callproc(procname,[,parameters]) | 调用存储过程,需要数据库支持 |
close() | 关闭当前游标 |
execute(operation,[,parameters]) | 执行数据库操作,sql语句或者数据库命令 |
executemany(operation, seq_of_params) | 用于批量操作 |
fetchone() | 获取查询结果集合中的下一条记录 |
fetchmany(size) | 获取指定数量的记录 |
fetchall() | 获取查询结果集合所有记录 |
nextset() | 跳至下一个可用的数据集 |
arraysize | 指定使用fetchmany()获取的行数,默认为1 |
setinputsizes(size) | 设置调用execute*()方法时分配的内存区域大小 |
setoutputsizes(size) | 设置列缓冲区大小,对大数据列尤其有用 |