目录
- 一、安装pymysql
- 二、使用步骤
-
- (1)导包
- (2)连接数据库
- (3)创建游标
- (4)操作数据库
-
- ①添加数据【增】
- ②删除/修改数据【删/改】
- ③查询数据
- (5)关闭连接
- pymysql总结
- 三、常见问题
-
- 1)不知道ip地址
-
- (1)window
- (2)Linux
- (3)max
- 2)忘记用户名
- 3)忘记密码了怎么办
- 4)不知道/忘记数据库名
- 5)数据库一般操作
一、安装pymysql
在控制台输入如下代码安装pymysql
pip install pymysql
二、使用步骤
(1)导包
当然需要导包啦,输入如下代码开始导包
import pymysql
(2)连接数据库
pymyql使用的是connect来连接数据库,我们常用的参数及介绍如下
类型 | 参数名 | 数据类型 | 说明(数据库) | 一般默认值 |
---|---|---|---|---|
必要 | host | str | 数据库域名或IP地址 | 127.0.0.1/localhost |
必要 | port | int | 端口号 | 3306 |
必要 | user | str | 用户名 | root |
必要 | passwd/password | str | 密码 | |
必要 | database(db) | str | 需要连接的数据库名(你的数据库名字叫什么就是什么) | db1 |
非必要 | charset | str | 编码类型 | utf8 |
一般代码形式如下:
可按需求修改,有问题可看结尾的常见问题
db=pymysql.connect(
#本机使用localhost,服务器使用ip地址
host='localhost',
#用户名,如变动请按变动后修改
user='root',
#密码,如变动请按变动后修改
password='123456',
#数据库名,如变动请按变动后修改
database='db1')
(3)创建游标
游标可以想象成数据库中的指针,对表的操作可以让它一行一行的向下运动,让数据不断向下填充,创建游标的代码如下:
注:db为连接数据库对象
cursor = db.cursor()
(4)操作数据库
通用操作数据库语句,可执行增,删,改,查等数据库操作
cursor为游标对象
cursor.execute('sql语句')
下面介绍具体使用方法
①添加数据【增】
添加数据库有两种操作语句
-
execute():它为一条一条记录的添加,当面对较大数据量的时候速度很慢
cursor.execute('sql语句')
-
executemany():批量添加多条记录
cursor.executemany('sql',要插入的数据[列表])
添加数据时我们需使用提交语句提交给数据库:
注:db为连接数据库对象
db.commit()
为了处理异常我们对其添加异常处理方法,有错误使用下列语句,对事务进行回滚:
db.rollback()
execute()具体代码如下,可直接使用
sql='sql语句【添加】'
try:
# 执行sql语句
cursor.execute(sql)
# 提交执行
db.commit()
except:
# 有错误则回滚
db.rollback()
executemany()具体代码如下,可直接使用
sql='...前面省略后面为values(%s,%s,%s,%s)'
try:
cursor.executemany(sql,data)
# 提交事务
db.commit()
except:
# 发生错误回滚
db.rollback()
db.close()
②删除/修改数据【删/改】
添加数据时我们需使用提交语句提交给数据库:
注:db为连接数据库对象
db.commit()
为了处理异常我们对其添加异常处理方法,有错误使用下列语句,对事务进行回滚:
db.rollback()
具体代码如下,可直接使用
sql='sql语句【添加】'
try:
# 执行sql语句
cursor.execute(sql)
# 提交执行
db.commit()
except:
# 有错误则回滚
db.rollback()
③查询数据
因为查询数据需要返回值,所以我们单拿出来讲
查询数据时我们需使用获取返回值语句得到返回值,返回值语句有三种:
-
fetchone():该方法获取下一个查询结果,结果为一个对象
cursor.fetchone()
-
fetchall():接收全部的返回结果
cursor.fetchall()
-
rowcount:只读,返回结果为执行sql语句影响的行数
cursor.rowcount
为了处理异常我们对其添加异常处理方法,有错误使用下列语句,对事务进行回滚:
db.rollback()
具体代码如下,可直接使用
sql='sql语句【查询语句】'
try:
# 执行sql语句
cursor.execute(sql)
#接收返回值可按需求使用fetchone()fetchall()rowcount语句接收
results = cursor.fetchall()
#输出结果
print(results)
except:
# 没有结果输出
print('没有结果')
(5)关闭连接
关闭连接记住一句话,创建了几个对象,关闭几个对象,先创建的后关闭,后创建的先关闭
关闭连接语句为:
对象.close()
如上,我首先创建了连接对象db,然后创建了游标对象cursor,我们需要先关闭游标对象,再关闭连接对象
# 关闭游标对象
cursor.close()
# 关闭数据库连接
db.close()
pymysql总结
到这里我们的pymysql就已经讲完了,总结一下。我们连接数据库需要如下几个步骤,缺一不可。
- 导包
- 创建数据库连接对象
- 创建游标对象
- 操作数据库
- 关闭连接
三、常见问题
1)不知道ip地址
(1)window
①win+r打开控制台
②在控制台中输入如下命令,然后回车,查看Ipv4地址即可
ipconfig
(2)Linux
①登录root用户
②打开控制台
③在控制台输入如下命令,并找到inet可查看ip地址
ifconfig -a
(3)max
①进入系统偏好设置
②进入网络
③进入以太网可查看ip地址
2)忘记用户名
①打开mysql的控制台,如果已经配置环境变量的可以直接使用cmd控制台输入如下命令然后回车进入mysql
mysql -u root -p
②在mysql中输入如下命令可查看用户名
select user,host from mysql.user;
3)忘记密码了怎么办
①在cmd控制台输入如下命令关闭mysql服务
net stop mysql
②使用如下命令启动mysql服务(服务器会不加载权限判断,任何用户都能访问数据库)注:命令运行之后,用户无法再输入指令
mysqld --skip-grant-tables
③打开新的命令行窗口,输入不加密码的登录命令
mysql -u root
④登录成功后可以使用update语句修改密码
⑤修改完成后使用flush privileges语句刷新权限表
⑥输入如下命令的命令行窗口关闭
mysqld --skip-grant-tables
4)不知道/忘记数据库名
①打开mysql的控制台,如果已经配置环境变量的可以直接使用cmd控制台输入如下命令然后回车进入mysql,并输入密码进入mysql服务器
mysql -u root -p
②输入下列指令查询所有数据库
show databases;
5)数据库一般操作
-
查看数据库中的表:
use 数据库名; show tables;
-
查看表结构:
describe 表名;
-
建立表:
use 库名; create table 表名 (字段设定列表);
-
建立数据库:
create database 库名;
-
删除数据库与表:
drop database 库名; drop table 表名;
-
清空表中记录:
delete from 表名;
-
显示表中的记录:
select * from 表名