Python3 operates MySQLS database

First install the required MySQL dependency packages

pip3 install mysqlclient
Connect the entire mysql service
# 引入模块包
import MySQLdb as mysql

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

# 关闭连接
connect.close()
Create database
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()
List all databases
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',)
Connect to the specified MySQL database
# 引入模块包
import MySQLdb as mysql

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

# 关闭连接
connect.close()
Create data table
# 引入模块包
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()
Add primary key id to user table
# 引入模块包
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()
Create a table with primary key 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()
Insert single data into user table
# 引入模块包
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()
Insert multiple pieces of data in 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()
Query all data in a data table
# 引入模块包
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()
Read specified field data
# 引入模块包
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()
Read only one piece of data
# 引入模块包
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()
Read data under specified conditions
# 引入模块包
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()
Fuzzy query for a certain field
# 引入模块包
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()
Database sorting

The default ascending order ASC does not need to be written, and the reverse order is 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()
Set the amount of data to query
# 引入模块包
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()
Specify the amount of data to query from the starting position
# 引入模块包
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()
Conditional deletion of data
# 引入模块包
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()
Change data
# 引入模块包
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()
Delete a piece of data
# 引入模块包
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()
delete entire table
# 引入模块包
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()

After checking the commonly used additions, deletions, and modifications, you can encapsulate it into a class for easy use. The rest is ok if you look at the SQL statements. In fact, the methods are similar, and the main thing is the importance of using SQL statements.

Guess you like

Origin blog.csdn.net/weixin_43704471/article/details/85868652