ホームページ  >  記事  >  データベース  >  MySQL データベースをインストールして構成する方法

MySQL データベースをインストールして構成する方法

WBOY
WBOY転載
2023-05-26 12:00:541421ブラウズ

1. pymysql とは何ですか?

PyMySQL は、Python3.x バージョンの MySQL サーバーに接続するために使用されるライブラリです。 #mysqldb は ##Python2 で使用されます。 PyMySql は、Python Database 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. データベース クエリ

PythonQueryMySQL使用 fetchone()単一のデータを取得するには、fetchall() メソッドを使用して、複数のデータを取得します。

  • fetchone(): このメソッドは、次のクエリ結果セットを取得します。結果セットはオブジェクトです

    #fetchall(): 返されたすべての結果行を受信します。
    rowcount(): これは読み取り専用プロパティであり、execute() メソッドの実行後に影響を受ける行数を返します。
  • 4.4.1. クエリの例

クエリ

employee

テーブル内のすべてのデータincome(salary) は次の値より大きいです20000<pre class="brush:php;toolbar:false"># 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 = &quot;select * from employee where income &gt;'%d' &quot;%(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&quot;员工: {user_name},年龄: {age}, 性别: {sex}, 工资: {income}&quot;) except:     print(&quot;无满足条件的数据或查询出错!!&quot;) # 关闭数据库连接 db.close()</pre>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 つの属性が必要です。これら 4 つのプロパティは

ACID

プロパティと呼ばれます。

    原子性: トランザクションは分割できない作業単位であり、トランザクションに含まれるすべての操作は完了するか、まったく行われないかのどちらかです。
    #データベースでは、一貫性を実現するために、トランザクションはデータベースをある状態から別の一貫した状態に変換する必要があります。一貫性と原子性は密接に関係しています。
#分離とは、トランザクションが他のトランザクションからの干渉を受けることなく実行できる機能を指します。トランザクション内では、操作および使用されるデータは他の同時トランザクションに対して閉じられているため、同時に実行されるトランザクションは互いに干渉することができません。
耐久性: 永続性とは、永続性とも呼ばれ、トランザクションが送信されると、データベース内のデータに対する変更が永​​続的に行われることを意味します。後続の操作や障害が影響を与えることはありません。
  • Python DB API 2.0
トランザクションは、

commitrollback という 2 つのメソッドを提供します。トランザクションをサポートするデータベース プログラミングの場合、ストリーム マークが確立されると、非表示のデータベース トランザクションが自動的に開始されます。

以上がMySQL データベースをインストールして構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。