Maison  >  Article  >  base de données  >  Comment installer et configurer la base de données MySQL

Comment installer et configurer la base de données MySQL

WBOY
WBOYavant
2023-05-26 12:00:541383parcourir

1. Qu'est-ce que pymysql ?

PyMySQL est une bibliothèque utilisée pour se connecter au serveur MySQL dans la version Python3.x, Utilisez <code>mysqldb dans Python2. PyMySql suit les spécifications de Python Database API v2.0 et inclut la bibliothèque client pur-Python MySQL. PyMySQL是在Python3.x版本中用于连接MySQL服务器的一个库,Python2中使用mysqldbPyMySql遵循Python数据库API v2.0的规范,并包含了pure-Python MySQL客户端库。

2.安装PyMySQL

 $ pip install pymysql

3.MySQL数据库安装与配置

在用PyMySQL连接MySQL数据库之前,请确保MySQL数据库安装配置完成,具体如何安装与配置MySQL数据库,请参考 MySQL 安装 和 MySQL 管理。

4.1.连接数据库操作

import pymysql


# 数据库服务器名
HOSTNAME = 'node05'
# 数据库用户名
USER = 'root'
# 数据库名
DATABASE = 'cayman'
# 数据库密码
PASSWORD = 'Love88me'


# 打开数据库连接
conn = pymysql.connect(HOSTNAME, USER, PASSWORD, DATABASE)


# 使用cursor()方法创建一个游标对象
cursor = conn.cursor()


# 使用execute()方法执行SQL查询语句
cursor.execute("select VERSION()")


# 使用fetchone()查询单条数据
data = cursor.fetchone()
print(f"Database Version: {data}")


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

4.2.创建表操作

import pymysql


# 设置数据库配置项
HOSTNAME = 'node05'
USERNAME = 'root'
PASSWORD = 'Love88me'
DATABASE = 'cayman'


# 打开数据库连接
db = pymysql.connect(HOSTNAME, USERNAME, PASSWORD, DATABASE)


# 使用cursor对象创建一个流标对象
cursor = db.cursor()


# 使用execute()方法执行SQL, 如果表存在则删除
cursor.execute("DROP TABLE IF EXISTS employee")


# 使用预处理语句创建表
sql = """ CREATE TABLE employee(
    id bigint primary key auto_increment,
    user_name varchar(50) not null,
    age int,
    sex char(1),
    income float
)
"""


# 执行sql语句
cursor.execute(sql)


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

4.3.1.数据库插入单条语句

import pymysql


# 设置数据库配置项
HOSTNAME = 'node05'
USERNAME = 'root'
PASSWORD = 'Love88me'
DATABASE = 'cayman'


# 打开数据库连接
db = pymysql.connect(HOSTNAME, USERNAME, PASSWORD, DATABASE)


# 使用cursor对象创建一个流标对象
cursor = db.cursor()


# SQL语句
sql = """
 insert into employee(user_name, age, sex, income) values ('风清扬', 64, '男', 22000);
"""


try:
    # 执行sql语句
    cursor.execute(sql)
    # 提交
    db.commit()
except:
    # 如果发生错误就回滚
    db.rollback()


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

4.3.2.数据库插入多条语句

import pymysql


# 设置数据库配置项
HOSTNAME = 'node05'
USERNAME = 'root'
PASSWORD = 'Love88me'
DATABASE = 'cayman'


# 打开数据库连接
db = pymysql.connect(HOSTNAME, USERNAME, PASSWORD, DATABASE)


# 使用cursor对象创建一个流标对象
cursor = db.cursor()


# SQL语句
sql = " insert into employee(user_name, age, sex, income) values (%s, %s, %s, %s)"


data = (
    ('风清扬', 64, '男', 22000),
    ('令狐冲', 22, '男', 14000),
    ('任盈盈', 20, '男', 10000),
    ('东方不败', 32, '男', 18000),
    ('任我行', 56, '男', 17000),
    ('段誉', 33, '男', 19000),
    ('王语嫣', 26, '女', 9000),
    ('木婉清', 23, '女', 6000),
    ('乔峰', 38, '男', 23000),
    ('阿朱', 24, '女', 5000),
    ('阿紫', 22, '女', 5500),
    ('虚竹', 35, '男', 11000),
    ('梦姑', 25, '女', 6500),
    ('梅超风', 41, '女', 15000),
    ('陈玄风', 44, '男', 12000),
    ('杨过', 28, '男', 24000),
    ('小龙女', 38, '女', 15000),
    ('鸠摩智', 44, '男', 16000)
)


try:
    # 执行sql语句
    cursor.executemany(sql, data)
    # 提交
    db.commit()
except:
    # 如果发生错误就回滚
    db.rollback()


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

4.4.数据库查询

Python查询MySQL使用fetchone()获取单条数据,使用fetchall()方法获取多条数据。

  • fetchone(): 该方法获取下一个查询结果集。结果集是一个对象

  • fetchall(): 接收全部的返回结果行;

  • rowcount(): 这是一个只读属性,并返回执行execute()方法后影响的行数。

4.4.1.查询示例

查询employee表中income(工资)大于20000的所有数据

# 1.查询employee表中工资大于20000的员工信息
import pymysql


# 设置数据库配置项
HOSTNAME = 'node05'
USERNAME = 'root'
PASSWORD = 'Love88me'
DATABASE = 'cayman'


# 打开数据库连接
db = pymysql.connect(HOSTNAME, USERNAME, PASSWORD, DATABASE)


# 使用cursor对象创建一个流标对象
cursor = db.cursor()


# 查询语句
sql = "select * from employee where income >'%d' "%(20000)


try:
    # 执行sql语句
    cursor.execute(sql)
    # 获取所有满足条件的列表
    ret = cursor.fetchall()
    # 遍历打印结果
    for row in ret:
        user_name = row[1]
        age = row[2]
        sex = row[3]
        income = row[4]
        print(f"员工: {user_name},年龄: {age}, 性别: {sex}, 工资: {income}")
except:
    print("无满足条件的数据或查询出错!!")


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

4.5.数据库更新操作

import pymysql


# 设置数据库配置项
HOSTNAME = 'node05'
USERNAME = 'root'
PASSWORD = 'Love88me'
DATABASE = 'cayman'


# 打开数据库连接
db = pymysql.connect(HOSTNAME, USERNAME, PASSWORD, DATABASE)


# 使用cursor对象创建一个流标对象
cursor = db.cursor()


# 更新语句
sql = "update employee set income=income+income*0.1 where sex='%c'"%('女')


try:
    # 执行SQL语句
    cursor.execute(sql)
    # 提交
    db.commit()


except:
    # 发生错误时回滚
    db.rollback()


# 关闭数据库
db.close()

4.6.删除操作

import pymysql


# 设置数据库连接信息
HOSTNAME = 'node05'
USERNAME = 'root'
PASSWORD = 'Love88me'
DATABASE = 'cayman'


# 打开数据库连接
db = pymysql.connect(HOSTNAME, USERNAME, PASSWORD, DATABASE)


# 使用cursor()方法获取游标
cursor = db.cursor()


# 构建删除数据SQL语句
sql = "delete from employee where user_name = '%s'"%('鸠摩智')


try:
    # 执行sql语句
    cursor.execute(sql)
    # 提交
    db.commit()


except:
    # 发生异常时回滚
    db.rollback()


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

4.7 执行事务操作

在数据库操作中,事务机制可以保证数据的一致性。最基本的事务应当具备4个属性: 原子性、一致性、隔离性、和持久性。这四个属性被称作ACID特性。

  • 原子性(Atomicity): 一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。

  • 在数据库中,事务必须将数据库从一种状态转换为另一种一致性状态,以实现一致性。一致性与原子性是密切相关的。

  • Isolation refers to the ability of a transaction to execute without interference from other transactions.。在一个事务内部,操作和使用的数据对其他并发事务是封闭的,因此并发执行的各个事务不能互相干扰。

  • 持久性(Durability): 持续性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。

Python DB API 2.0的事务提供了两个方法commitrollback

2. Installez PyMySQL🎜rrreee🎜3. Installation et configuration de la base de données MySQL🎜🎜Avant d'utiliser PyMySQL pour vous connecter à la base de données MySQL, veuillez vous assurer que MySQL L'installation et la configuration de la base de données sont terminées. Pour plus de détails sur la façon d'installer et de configurer la base de données MySQL, veuillez vous référer à l'installation de MySQL et à la gestion de MySQL. 🎜🎜4.1. Connectez-vous à l'opération de base de données🎜rrreee🎜4.2. Créez une opération de table🎜rrreee🎜4.3.1 Insérez une seule instruction dans la base de données🎜rrreee🎜4.3.2. Insérez plusieurs instructions dans la base de données🎜rrreee🎜4.4. 🎜🎜 Python interroge MySQL pour obtenir une seule donnée en utilisant fetchone() et utilise fetchall() méthode pour obtenir plusieurs éléments de données. 🎜
  • 🎜fetchone() : Cette méthode obtient le jeu de résultats de requête suivant. L'ensemble de résultats est un objet 🎜
  • 🎜fetchall() : reçoit toutes les lignes de résultats renvoyées 🎜
  • 🎜rowcount() : Il s'agit d'une propriété en lecture seule et renvoie le nombre de lignes affectées après l'exécution de la méthode execute(). 🎜
🎜4.4.1. Exemple de requête🎜🎜Interrogez toutes les données de la table employé où le revenu (salaire) est supérieur à 20 000🎜rrreee 🎜4.5. Opération de mise à jour de la base de données🎜rrreee🎜4.6. Opération de suppression🎜rrreee🎜4.7 Effectuer une opération de transaction🎜🎜Dans les opérations de base de données, le mécanisme de transaction peut assurer la cohérence des données. Les transactions les plus élémentaires doivent avoir quatre attributs : atomicité, cohérence, isolement et durabilité. Ces quatre propriétés sont appelées propriétés ACID. 🎜
  • 🎜Atomicité : une transaction est une unité de travail indivisible. Toutes les opérations incluses dans la transaction sont soit effectuées, soit aucune. 🎜
  • 🎜Dans une base de données, une transaction doit transformer la base de données d'un état à un autre état cohérent pour atteindre la cohérence. La cohérence et l'atomicité sont étroitement liées. 🎜
  • 🎜L'isolement fait référence à la capacité d'une transaction à s'exécuter sans interférence d'autres transactions. Au sein d'une transaction, les données exploitées et utilisées sont fermées aux autres transactions simultanées, de sorte que les transactions exécutées simultanément ne peuvent pas interférer les unes avec les autres. 🎜
  • 🎜Persistance (Durabilité) : La durabilité, également connue sous le nom de permanence, fait référence au fait qu'une fois qu'une transaction est soumise, son impact sur le base de données Les modifications apportées aux données doivent être permanentes. Les opérations ou pannes ultérieures ne devraient avoir aucun impact sur celui-ci. 🎜
🎜Les transactions Python DB API 2.0 fournissent deux méthodes commit et rollback. Pour la programmation de base de données prenant en charge les transactions, lorsque la marque de flux est établie, une transaction de base de données invisible est automatiquement démarrée. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer