Python3 操作 MySQLS 数据库

首先安装需要用到的 MySQL 依赖包

pip3 install mysqlclient
连接整个 mysql 服务
# 引入模块包
import MySQLdb as mysql

#创建一个连接
connect = mysql.connect(
    # 地址
    host = '127.0.0.1',
    # 端口
    port = 3306,
    # 用户
    user = 'root',
    # 密码
    passwd = '123456',
    # 编码格式
    charset = 'utf8'
)

# 关闭连接
connect.close()
创建数据库
import MySQLdb as mysql

#创建一个连接
connect = mysql.connect(
    # 地址
    host = "127.0.0.1",
    # 端口
    port = 3306,
    # 用户
    user = "root",
    # 密码
    passwd = "123456",
    # 编码格式
    charset = "utf8"
)

# 调用游标
cursor = connect.cursor()

# SQL 语句
sql = "CREATE DATABASE test"

# 执行 SQL 方法
cursor.execute(sql)

# 关闭连接
connect.close()
列出所有数据库
import MySQLdb as mysql

#创建一个连接
connect = mysql.connect(
    # 地址
    host = "127.0.0.1",
    # 端口
    port = 3306,
    # 用户
    user = "root",
    # 密码
    passwd = "123456",
    # 编码格式
    charset = "utf8"
)

# 调用游标
cursor = connect.cursor()

# SQL 语句
sql = "SHOW DATABASES"

# 执行 SQL 方法
cursor.execute(sql)

# 循环遍历整个数据库
for i in cursor:
	# 挨个数据库打印
	print(i)

# 关闭连接
connect.close()

# 输出结果如下:
('information_schema',)
('mysql',)
('performance_schema',)
('sys',)
('test',)
连接指定的 MySQL 数据库
# 引入模块包
import MySQLdb as mysql

#创建一个连接
connect = mysql.connect(
    # 地址
    host = '127.0.0.1',
    # 端口
    port = 3306,
    # 用户
    user = 'root',
    # 密码
    passwd = '123456',
    # 连接指定的数据库
    db = 'test',
    # 编码格式
    charset = 'utf8'
)

# 关闭连接
connect.close()
创建数据表
# 引入模块包
import MySQLdb as mysql

#创建一个连接
connect = mysql.connect(
    # 地址
    host = '127.0.0.1',
    # 端口
    port = 3306,
    # 用户
    user = 'root',
    # 密码
    passwd = '123456',
    # 连接指定的数据库
    db = 'test',
    # 编码格式
    charset = 'utf8'
)

# 调用游标
cursor = connect.cursor()

# SQL 语句
sql = "CREATE TABLE user (name VARCHAR(255), password VARCHAR(255))"

# 执行 SQL 方法
cursor.execute(sql)

# 关闭连接
connect.close()
给 user 表添加主键 id
# 引入模块包
import MySQLdb as mysql

#创建一个连接
connect = mysql.connect(
    # 地址
    host = '127.0.0.1',
    # 端口
    port = 3306,
    # 用户
    user = 'root',
    # 密码
    passwd = '123456',
    # 连接指定的数据库
    db = 'test',
    # 编码格式
    charset = 'utf8'
)

# 调用游标
cursor = connect.cursor()

# SQL 语句
sql = "ALTER TABLE user ADD COLUMN id INT AUTO_INCREMENT PRIMARY KEY"

# 执行 SQL 方法
cursor.execute(sql)

# 关闭连接
connect.close()
创建一个带主键 id 的表
# 引入模块包
import MySQLdb as mysql

#创建一个连接
connect = mysql.connect(
    # 地址
    host = '127.0.0.1',
    # 端口
    port = 3306,
    # 用户
    user = 'root',
    # 密码
    passwd = '123456',
    # 连接指定的数据库
    db = 'test',
    # 编码格式
    charset = 'utf8'
)

# 调用游标
cursor = connect.cursor()

# SQL 语句
sql = "CREATE TABLE news (id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255), content VARCHAR(255))"

# 执行 SQL 方法
cursor.execute(sql)

# 关闭连接
connect.close()
在 user 表插入单数据
# 引入模块包
import MySQLdb as mysql

#创建一个连接
connect = mysql.connect(
    # 地址
    host = '127.0.0.1',
    # 端口
    port = 3306,
    # 用户
    user = 'root',
    # 密码
    passwd = '123456',
    # 连接指定的数据库
    db = 'test',
    # 编码格式
    charset = 'utf8'
)

# 调用游标
cursor = connect.cursor()

# SQL 语句
sql = "INSERT INTO user (name, password) VALUES ('admin', '123456')"

# 执行插入数据的 SQL 方法
cursor.execute(sql)
 
# 更新数据表内容
connect.commit()

# 插入成功后返回成功的数据 id
print("1 条记录已插入, ID:", mycursor.lastrowid)    

# 关闭连接
connect.close()
在 news 插入多条数据
# 引入模块包
import MySQLdb as mysql

# 创建一个连接
connect = mysql.connect(
    # 地址
    host='127.0.0.1',
    # 端口
    port=3306,
    # 用户
    user='root',
    # 密码
    passwd='123456',
    # 连接指定的数据库
    db='test',
    # 编码格式
    charset='utf8'
)

# 调用游标
cursor = connect.cursor()

# SQL 语句
sql = "INSERT INTO news (title, content) VALUES (%s, %s)"

#要插入的数据
list = [
    ('标题一', '内容一'),
    ('标题二', '内容二'),
    ('标题三', '内容三'),
    ('标题四', '内容四'),
]

# 执行 SQL 方法
cursor.executemany(sql,list)

# 更新数据表内容
connect.commit()

# 成功后打印数据条数和提示
print(cursor.rowcount, "记录插入成功。")

# 关闭连接
connect.close()
查询某一张数据表所有数据
# 引入模块包
import MySQLdb as mysql

# 创建一个连接
connect = mysql.connect(
    # 地址
    host='127.0.0.1',
    # 端口
    port=3306,
    # 用户
    user='root',
    # 密码
    passwd='123456',
    # 连接指定的数据库
    db='test',
    # 编码格式
    charset='utf8'
)

# 调用游标
cursor = connect.cursor()

# SQL 语句
sql = "SELECT * FROM news"

# 执行 SQL 方法
cursor.execute(sql)

# 循环整个列表并打印
for i in cursor:
    print(i)

# 关闭连接
connect.close()
读取指定的字段数据
# 引入模块包
import MySQLdb as mysql

# 创建一个连接
connect = mysql.connect(
    # 地址
    host='127.0.0.1',
    # 端口
    port=3306,
    # 用户
    user='root',
    # 密码
    passwd='123456',
    # 连接指定的数据库
    db='test',
    # 编码格式
    charset='utf8'
)

# 调用游标
cursor = connect.cursor()

# SQL 语句
sql = "SELECT name, password FROM user"

# 执行 SQL 方法
cursor.execute(sql)

for i in cursor:
    print(i)

# 关闭连接
connect.close()
只读取一条数据
# 引入模块包
import MySQLdb as mysql

# 创建一个连接
connect = mysql.connect(
    # 地址
    host='127.0.0.1',
    # 端口
    port=3306,
    # 用户
    user='root',
    # 密码
    passwd='123456',
    # 连接指定的数据库
    db='test',
    # 编码格式
    charset='utf8'
)

# 调用游标
cursor = connect.cursor()

# SQL 语句
sql = "SELECT title, content FROM news"

# 执行 SQL 方法
cursor.execute(sql)

# 读取一条数据
data = cursor.fetchone()

# 打印数据
print(data)

# 关闭连接
connect.close()
读取指定条件的数据
# 引入模块包
import MySQLdb as mysql

# 创建一个连接
connect = mysql.connect(
    # 地址
    host='127.0.0.1',
    # 端口
    port=3306,
    # 用户
    user='root',
    # 密码
    passwd='123456',
    # 连接指定的数据库
    db='test',
    # 编码格式
    charset='utf8'
)

# 调用游标
cursor = connect.cursor()

# SQL 语句
sql = "SELECT * FROM news WHERE title ='标题一'"

# 执行 SQL 方法
cursor.execute(sql)

# 循环整个列表并打印
for i in cursor:
    print(i)

# 关闭连接
connect.close()
模糊查询某个字段
# 引入模块包
import MySQLdb as mysql

# 创建一个连接
connect = mysql.connect(
    # 地址
    host='127.0.0.1',
    # 端口
    port=3306,
    # 用户
    user='root',
    # 密码
    passwd='luxifa970219',
    # 连接指定的数据库
    db='test',
    # 编码格式
    charset='utf8'
)

# 调用游标
cursor = connect.cursor()

# SQL 语句
sql = "SELECT * FROM news WHERE title LIKE '%t%'"

# 执行 SQL 方法
cursor.execute(sql)

# 循环整个列表并打印
for i in cursor:
    print(i)

# 关闭连接
connect.close()
数据库排序

默认升序 ASC 可不写,倒序为 DESC

# 引入模块包
import MySQLdb as mysql

# 创建一个连接
connect = mysql.connect(
    # 地址
    host='127.0.0.1',
    # 端口
    port=3306,
    # 用户
    user='root',
    # 密码
    passwd='luxifa970219',
    # 连接指定的数据库
    db='test',
    # 编码格式
    charset='utf8'
)

# 调用游标
cursor = connect.cursor()

# SQL 语句
sql = "SELECT * FROM news ORDER BY id DESC" # 倒序
# sql = "SELECT * FROM news ORDER BY id ASC" # 升序
# sql = "SELECT * FROM news ORDER BY id" # 默认升序

# 执行 SQL 方法
cursor.execute(sql)

# 循环整个列表并打印
for i in cursor:
    print(i)

# 关闭连接
connect.close()
设置查询的数据量
# 引入模块包
import MySQLdb as mysql

# 创建一个连接
connect = mysql.connect(
    # 地址
    host='127.0.0.1',
    # 端口
    port=3306,
    # 用户
    user='root',
    # 密码
    passwd='123456',
    # 连接指定的数据库
    db='test',
    # 编码格式
    charset='utf8'
)

# 调用游标
cursor = connect.cursor()

# SQL 语句
sql = "SELECT * FROM news LIMIT 5" #读取前五条数据

# 执行 SQL 方法
cursor.execute(sql)

# 循环整个列表并打印
for i in cursor:
    print(i)

# 关闭连接
connect.close()
指定起始位置查询的数据量
# 引入模块包
import MySQLdb as mysql

# 创建一个连接
connect = mysql.connect(
    # 地址
    host='127.0.0.1',
    # 端口
    port=3306,
    # 用户
    user='root',
    # 密码
    passwd='123456',
    # 连接指定的数据库
    db='test',
    # 编码格式
    charset='utf8'
)

# 调用游标
cursor = connect.cursor()

# SQL 语句
sql = "SELECT * FROM news LIMIT 5 OFFSET 0" # 0 为 第一条,1 为第二条,以此类推

# 执行 SQL 方法
cursor.execute(sql)

# 循环整个列表并打印
for i in cursor:
    print(i)

# 关闭连接
connect.close()
条件删除数据
# 引入模块包
import MySQLdb as mysql

# 创建一个连接
connect = mysql.connect(
    # 地址
    host='127.0.0.1',
    # 端口
    port=3306,
    # 用户
    user='root',
    # 密码
    passwd='123456',
    # 连接指定的数据库
    db='test',
    # 编码格式
    charset='utf8'
)

# 调用游标
cursor = connect.cursor()

# SQL 语句
sql = "DELETE FROM news WHERE title = 'title1'"

# 执行 SQL 方法
cursor.execute(sql)

# 更新数据表内容
connect.commit()

# 打印删除了多少条数据
print(cursor.rowcount, " 条记录删除")

# 关闭连接
connect.close()
更改数据
# 引入模块包
import MySQLdb as mysql

# 创建一个连接
connect = mysql.connect(
    # 地址
    host='127.0.0.1',
    # 端口
    port=3306,
    # 用户
    user='root',
    # 密码
    passwd='123456',
    # 连接指定的数据库
    db='test',
    # 编码格式
    charset='utf8'
)

# 调用游标
cursor = connect.cursor()

# SQL 语句   根据条件查找将 title =  'title1' 改成 title = '这是一个标题'
sql = "UPDATE news SET title = '这是一个标题' WHERE title = 'title1'"

# 执行 SQL 方法
cursor.execute(sql)

# 更新数据表内容
connect.commit()

# 打印删除了多少条数据
print(cursor.rowcount, " 条数据被修改")

# 关闭连接
connect.close()
删除某一条数据
# 引入模块包
import MySQLdb as mysql

# 创建一个连接
connect = mysql.connect(
    # 地址
    host='127.0.0.1',
    # 端口
    port=3306,
    # 用户
    user='root',
    # 密码
    passwd='luxifa970219',
    # 连接指定的数据库
    db='test',
    # 编码格式
    charset='utf8'
)

# 调用游标
cursor = connect.cursor()

# SQL 语句
sql = "DELETE FROM news where title = '这是一个标题'"

# 执行 SQL 方法
cursor.execute(sql)

# 更新数据表内容
connect.commit()

# 打印删除了多少条数据
print(cursor.rowcount, " 条数据被删除")

# 关闭连接
connect.close()
删除整个表
# 引入模块包
import MySQLdb as mysql

# 创建一个连接
connect = mysql.connect(
    # 地址
    host='127.0.0.1',
    # 端口
    port=3306,
    # 用户
    user='root',
    # 密码
    passwd='luxifa970219',
    # 连接指定的数据库
    db='test',
    # 编码格式
    charset='utf8'
)

# 调用游标
cursor = connect.cursor()

# SQL 语句 
sql = "DROP TABLE IF EXISTS news" # 使用 "DROP TABLE" 删除,使用IF EXISTS 判断数据库是否存在

# 执行 SQL 方法
cursor.execute(sql)

# 关闭连接
connect.close()

常用的 增删改查完了,自己可以封装成一个 class 类方便使用,剩下多看看 sql 语句就 ok 了,其实方法都差不多,主要还是 sql 语句使用的重要性。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

甘宇辉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值