Maison  >  Article  >  base de données  >  Comment utiliser Python pour jouer avec la base de données MySQL

Comment utiliser Python pour jouer avec la base de données MySQL

WBOY
WBOYavant
2023-05-26 14:46:061165parcourir

1. Contexte

J'ai mené l'expérience de connexion dans le notebook Anaconda, l'environnement est Python3.6, bien sûr, l'opération peut également être effectuée dans le Python Shell.

La bibliothèque Python la plus couramment utilisée et la plus stable pour se connecter à la base de données MySQL est PyMySQL.

2. Opérations de base

1. Installez la bibliothèque PyMySQL

La manière la plus simple :

Entrez la commande line pip install pymysqlpip install pymysql

或者:

下载whl文件[1]进行安装,安装过程自行百度。

2、安装MySQL数据库

MySQL数据库有两种:

MySQLMariaDB

我用的是MariaDB,它是MySQL的一个分支。

两者在绝大部分性能上是兼容的,使用起来感觉不到啥区别。

给出下载地址:MySQL[2]MariaDB[3],安装过程很简单,一路Next Step,不过要记好密码。

有个小插曲,MySQL和MariaDB相当于姐姐妹妹的关系,两者由同一个人(Widenius)创建的。

MySQL被Oracle收购后,Widenius先生觉得不爽,于是搞了个MariaDB,可以完全替代MySQL。

大牛就是任性。

3、SQL基本语法

下面要用SQL的表创建、查询、数据插入等功能,这里简要介绍一下SQL语言的基本语句。

  • 查看数据库:SHOW DATABASES;

  • 创建数据库:CREATE DATEBASE 数据库名称;

  • 使用数据库:USE 数据库名称;

  • 查看数据表:SHOW TABLES;

  • 创建数据表:CREATE TABLE 表名称(列名1 (数据类型1),列名2 (数据类型2));

  • 插入数据:INSERT INTO 表名称(列名1,列名2) VALUES(数据1,数据2);

  • 查看数据:SELECT * FROM 表名称;

  • 更新数据:UPDATE 表名称 SET 列名1=新数据1,列名2=新数据2 WHERE 某列=某数据;

    Ou :
Téléchargez le fichier

whl[1]

pour l'installer. le processus est effectué par vous-même.

2. Installer la base de données MySQL

Il existe deux types de bases de données MySQL : #🎜🎜 ## J'utilise MariaDB, qui est un fork de MySQL.

Les deux sont compatibles dans la plupart des performances, et vous ne ressentez aucune différence lorsque vous les utilisez.

donne l'adresse de téléchargement :

MySQL[2]

,

MariaDB[3]

, le processus d'installation est très simple, il suffit de suivre Suivant Étape, mais vous devez mémoriser votre mot de passe.

Il y a un petit épisode. MySQL et MariaDB sont équivalents à la relation entre sœurs et sœurs. Elles ont été créées par la même personne (Widenius).

Après l'acquisition de MySQL par Oracle, M. Widenius s'est senti mécontent, alors il a construit MariaDB, qui peut remplacer complètement MySQL.

Daniel est volontaire.

3. Syntaxe SQL de base

Ce qui suit utilisera la création, la requête et la table SQL. Insertion de données et autres fonctions, voici une brève introduction aux instructions de base du langage SQL.

  • Afficher la base de données : AFFICHER LES BASES DE DONNÉES;

  • #🎜🎜 #Créer une base de données : CREATE nom de la base de données DATEBASE ;

  • Utiliser la base de données : UTILISER le nom de la base de données ;

    # 🎜🎜#
  • Afficher la table de données : SHOW TABLES;

  • Créer la table de données : CREATE TABLE nom de la table (Nom de colonne 1 (type de données 1), nom de colonne 2 (type de données 2));

  • Insérer des données : INSERT INTO nom de la table ( Nom de la colonne 1, nom de la colonne 2) VALEURS (données 1, données 2) ;

  • Afficher les données : SELECT * FROM nom de la table  ; code> code><p class="md-end-block md-p"><img src="https://img.php.cn/upload/article/000/887/227/168508356749933.png" alt="Comment utiliser Python pour jouer avec la base de données MySQL"></p> <li>Mise à jour des données : <code>UPDATE nom de la table SET nom de la colonne 1 = nouvelles données 1, nom de la colonne 2 = nouvelles données 2 OÙ certaine colonne = certaines données ; <p class="md-end-block md-p"></p> <p class="md-end-block md-p"></p>4. Connectez-vous à la base de données#🎜🎜##🎜🎜#Après avoir installé les fichiers et bibliothèques nécessaires, commençons officiellement à nous connecter à la base de données. , même si c'est mystérieux Mais ce n'est pas difficile ! #🎜🎜#<pre class="md-fences md-end-block ty-contain-cm modeLoaded">#首先导入PyMySQL库 import pymysql #连接数据库,创建连接对象connection #连接对象作用是:连接数据库、发送数据库信息、处理回滚操作(查询中断时,数据库回到最初状态)、创建新的光标对象 connection = pymysql.connect(host = 'localhost' #host属性                             user = 'root' #用户名                             password = '******'  #此处填登录数据库的密码                             db = 'mysql' #数据库名                             )</pre>#🎜🎜#Exécutez ce code et la connexion sera complétée ! #🎜🎜##🎜🎜#5. Ajouter, supprimer, modifier et vérifier les opérations #🎜🎜##🎜🎜# Vérifions d'abord quelles sont les bases de données : #🎜🎜#<pre class="md-fences md-end-block ty-contain-cm modeLoaded">#创建光标对象,一个连接可以有很多光标,一个光标跟踪一种数据状态。 #光标对象作用是:、创建、删除、写入、查询等等 cur = connection.cursor() #查看有哪些数据库,通过cur.fetchall()获取查询所有结果 print(cur.fetchall())</pre>#🎜🎜#Imprimez toutes les bases de données : #🎜 🎜#<pre class="md-fences md-end-block ty-contain-cm modeLoaded">(('information_schema',), ('law',), ('mysql',), ('performance_schema',), ('test',))</pre># 🎜🎜#Créer une table dans la base de données du test : #🎜🎜#<pre class="md-fences md-end-block ty-contain-cm modeLoaded">#使用数据库test cur.execute('USE test') #在test数据库里创建表student,有name列和age列 cur.execute('CREATE TABLE student(name VARCHAR(20),age TINYINT(3))')</pre>#🎜🎜#Insérer une donnée dans la table de données élève : #🎜🎜#<pre class="md-fences md-end-block ty-contain-cm modeLoaded">sql = 'INSERT INTO student (name,age) VALUES (%s,%s)' cur.execute(sql,('XiaoMing',23))</pre>#🎜🎜#Voir le contenu des données élève de table : #🎜🎜#<pre class="md-fences md-end-block ty-contain-cm modeLoaded">cur.execute('SELECT * FROM student') print(cur.fetchone())</pre>#🎜 🎜#L'impression est : ('XiaoMing', 23)#🎜🎜##🎜🎜#Bingo ! C'est une donnée que nous venons d'insérer #🎜🎜##🎜🎜#Enfin, n'oubliez pas de fermer le curseur et la connexion : #🎜🎜#<pre class="md-fences md-end-block ty-contain-cm modeLoaded">#关闭连接对象,否则会导致连接泄漏,消耗数据库资源 connection.close() #关闭光标 cur.close()</pre>#🎜🎜#OK, tout le processus se déroule à peu près comme ça. #🎜🎜##🎜🎜# Bien sûr, ce sont des opérations très basiques. D'autres méthodes d'utilisation doivent être trouvées dans la #🎜🎜#Documentation officielle de PyMySQL[4]#🎜🎜#. #🎜🎜##🎜🎜#3. Importer des fichiers Big Data #🎜🎜##🎜🎜# En prenant les fichiers csv comme exemple, il existe généralement deux méthodes pour importer des fichiers csv dans la base de données : #🎜🎜##🎜🎜# 1. Via SQL La méthode d'insertion importe un par un, ce qui convient aux fichiers CSV avec un petit volume de données. Je n'entrerai pas dans les détails ici. #🎜🎜##🎜🎜#2. Importez via la méthode de chargement de données, rapide et adaptée aux fichiers Big Data, qui est également l'objet de cet article. #🎜🎜##🎜🎜#L'exemple de fichier CSV est le suivant : #🎜🎜##🎜🎜##🎜🎜##🎜🎜##🎜🎜#Le travail global est divisé en 3 étapes : #🎜🎜## 🎜🎜#1. Utilisez Python pour vous connecter à la base de données MySQL ;<p class="md-end-block md-p">2、基于CSV文件表格字段创建表;</p> <p class="md-end-block md-p">3、使用load data方法导入CSV文件内容。</p> <p class="md-end-block md-p">sql的load data语法简介:</p> <pre class="md-fences md-end-block ty-contain-cm modeLoaded">LOAD DATA LOCAL INFILE 'csv_file_path' INTO TABLE table_name FIELDS TERMINATED BY ',' LINES TERMINATED BY '\\r\\n' IGNORE 1 LINES</pre> <blockquote><p class="md-end-block md-p"><code>csv_file_path 指文件绝对路径 table_name指表名称 FIELDS TERMINATED BY ','指以逗号分隔 LINES TERMINATED BY '\\r\\n'指换行 IGNORE 1 LINES指跳过第一行,因为第一行是表的字段名

    下面给出全部代码:

    #导入pymysql方法
    import pymysql
    
    
    #连接数据库
    config = {:'',
             :3306,
             :'username',
             :'password',
             :'utf8mb4',
             :1
             }
    conn = pymysql.connect(**config)
    cur = conn.cursor()
    
    
    #load_csv函数,参数分别为csv文件路径,表名称,数据库名称
    def load_csv(csv_file_path,table_name,database='evdata'):
       #打开csv文件
       file = open(csv_file_path, 'r',encoding='utf-8')
       #读取csv文件第一行字段名,创建表
       reader = file.readline()
       b = reader.split(',')
       colum = ''
       for a in b:
           colum = colum + a + ' varchar(255),'
       colum = colum[:-1]
       #编写sql,create_sql负责创建表,data_sql负责导入数据
       create_sql = 'create table if not exists ' + table_name + ' ' + '(' + colum + ')' + ' DEFAULT CHARSET=utf8'
       data_sql = "LOAD DATA LOCAL INFILE '%s' INTO TABLE %s FIELDS TERMINATED BY ',' LINES TERMINATED BY '\\r\\n' IGNORE 1 LINES" % (csv_filename,table_name)
    
       #使用数据库
       cur.execute('use %s' % database)
       #设置编码格式
       cur.execute('SET NAMES utf8;')
       cur.execute('SET character_set_connection=utf8;')
       #执行create_sql,创建表
       cur.execute(create_sql)
       #执行data_sql,导入数据
       cur.execute(data_sql)
       conn.commit()
       #关闭连接
       conn.close()
       cur.close()

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