Sec! base de données MySQL et Python réel Interactive

Auteur | Huang suprême, Zebian | Guo Rui

Figure Head | RPSC téléchargé à partir de la Chine Vision

Installation bibliothèque PyMySQL

Si vous souhaitez utiliser la base de données MySQL opérations de python, vous devez d'abord installer la bibliothèque pymysql, l'installation bibliothèque est simple, pip utilisation directe installer pymysql, sur le chemin ou si ce n'est pas installé, pour trouver un package d'installation approprié à l'aide du lien suivant , installer, ce ne sera pas élaborer.

  • https://www.lfd.uci.edu/~gohlke/pythonlibs/

connexion de base de données MySQL en utilisant Python

1) relié à six paramètres communs

  • hôte Paramètres: IP du serveur hôte MySQL est situé;

  • Paramètres utilisateur: nom d'utilisateur

  • mot de passe Paramètres: mot de passe

  • Port Paramètres: connexions port hôte MySQL, par défaut est 3306

  • Base de données Nom de connexion: paramètre db

  • Paramètres charset: Lorsque les données sont lues chinois semblent brouillées, nous devons ensemble sur le codage, lorsque nous utilisons python fonctionner la base de données, l'équivalent de client python, nous utilisons ce client pour faire fonctionner le serveur serveur MySQL, par défaut python3 le jeu de caractères UTF8, mon serveur mysql en utilisant le caractère par défaut défini latin1, par table, MySQL créé, lors de la construction de la table sont ajoutés le codage UTF8, et devrait donc être l'ensemble de codage connecteur de connexion ici.

2) la syntaxe de connexion python mysql

importer pymysql db = pymysql.connect (host = 'localhost', user = 'root', mot de passe = '123456', port = 3306, db = 'araignées', charset = 'UTF-8')

Le plus argument de base est l'hôte, utilisateur, mot de passe et le port, il doit y avoir. Les deux autres paramètres de décider d'utiliser ou non en fonction de votre propre situation.

hôte fait référence à l'installation du serveur mysql où, à cause de mon mysql est installé sur la machine, donc ici vous pouvez écrire localhost, je peux aussi être écrit comme un nom d'hôte ou IP hôte.

db vous fait référence à exploiter une base de données qui, au moment de la connexion de base de données, de préférence avec ce paramètre.

3) d'un simple cas d'échauffement

Importation pymysql # # connexion de paquets leader en utilisant le serveur de base de données pymysql mysql crée un objet de base de données; db = pymysql.connect (host = 'localhost', user = 'root', mot de passe = '123456', port = 3306, db = 'Huangwei', charset = 'utf8') # mysql fonctions de curseur ouvert créer un objet curseur, curseur = db.cursor # instruction SQL à exécuter; sql = "select * from étudiant" # exécuter des instructions SQL à l'aide d'un objet curseur; cursor.execute (SQL) du procédé utilisé No. fetchOne, l'obtention des résultats retournés, mais est une variable pour contenir les résultats renvoyés; données = cursor.fetchoneprint (data) # déconnecter la connexion à la base de données, libérer des ressources; db.Close

Les résultats sont les suivants:

Certaines méthodes communes Curseur objet curseur

1) Procédé de curseur est utilisé pour exécuter des commandes

exécuter (requête, args): exécuter une instruction SQL unique, instruction SQL a reçu des paramètres et une liste des paramètres utilisés par lui-même, renvoie est affecté le nombre de lignes;

executemany (requête, args): simple exécution d'une instruction SQL, mais est réalisée de façon répétée dans la liste de paramètres de paramètres, le nombre de lignes valeur renvoyée est affectée;

2) de curseur à un procédé de réception d'une valeur de retour

  • fetchOne: Retourne une ligne de résultat;

  • fetchmany (taille): la réception d'un résultat de renvoi lignes la taille de l'article. Si la valeur de taille plus grande que le nombre de lignes résultat retourné est renvoyé cursor.arraysize des données;

  • FetchAll: recevoir tous les résultats retournés lignes;

Créer une table (construite)

importer pymysql db = pymysql.connect (host = 'localhost', user = 'root', mot de passe = '123456', port = 3306, db = 'Huangwei', charset = 'UTF-8') # Créer un objet curseur; curseur = db.cursor # Déclaration de table Jian, sql = "" "créer personne de table (id int auto_increment clé primaire non, nom varchar (10) non, int age non) charset = UTF8" "" # Sql exécution de l'instruction; cursor.execute (sql) # Base de données Disconnect; db.Close

Note: La déclaration de vous dans mysql comment écrire, comment écrire ici. Il y a un détail à noter est que, en python, le code de multiples sauts de ligne, il est préférable d'utiliser les « trois citations. »

les données de requête (contrôle)

1) fetchOne: une fois que vous obtenez un enregistrement

importation pymysql db = pymysql.connect (host = 'localhost', user = 'root', db = 'Huangwei', mot de passe = '123456', port = 3306, charset = 'UTF-8') curseur = db.cursor cursor.execute ( 'select count (*) de personne) aa = cursor.fetchoneprint (aa) # Notez que ceci est une boucle extérieure ne doit pas être placé à l'intérieur de la boucle. # Pensez c'est pourquoi? cursor.execute ( 'select name, l'âge d'une personne) pour i dans la gamme (aa): a, b = c cursor.fetchone = "Mon nom est {}, {} ans cette année," .format (a, b) affichage (c) db.Close

Les résultats sont les suivants:

2) fetchall: une fois pour obtenir tous les enregistrements

importation pymysql db = pymysql.connect (host = 'localhost', user = 'root', db = 'Huangwei', mot de passe = '123456', port = 3306, charset = 'UTF-8') curseur = db.cursor cursor.execute ( 'select name, l'âge de la personne) aa = cursor.fetchall impression # (aa) a, b dans aa: c = "Mon nom est {}, {} ans cette année," .format (a, b) affichage (c) db.Close

Les résultats sont les suivants:

Remarque: Il y a aussi une méthode fetchmany pour obtenir une seule fois l'enregistrement d'un certain nombre de pièces, rendez-vous sur vos propres recherches.

3) Utilisation de pandas méthode read_sql, les données extraites sont converties directement en trame de données, le fonctionnement

importer pandas géants à l'importation pymysql comme pd db = pymysql.connect (host = 'localhost', user = 'root', db = 'Huangwei', mot de passe = '123456', port = 3306, charset = 'UTF-8') = curseur db.cursor DF1 = pd.read_sql ( "select * from étudiant où ssex = 'M'", db) affichage (DF1) DF2 = pd.read_sql ( "select * from étudiant où ssex = 'femme'", db) affichage (DF2)

Les résultats sont les suivants:

Insertion de données (Augmentation)

1) l'insertion d'une donnée unique

importation pymysql db = pymysql.connect (host = 'localhost', user = 'root', mot de passe = '123456', port = 3306, db = 'Huangwei', charset = 'UTF-8') curseur = db.cursor # Mysql dans la façon dont les déclarations d'écriture SQL, voici comment écrire; name = age = 8000sql = 'insert en personne (nom, âge) valeurs ( "porc", 8000)' "Pig" essayez: cursor.execute (sql) print db.commit ( "insert réussir") except: print ( "insert a échoué") db.rollbackdb.close

1.1) l'insertion d'une donnée unique

importation pymysql db = pymysql.connect (host = 'localhost', user = 'root', mot de passe = '123456', port = 3306, db = 'Huangwei', charset = 'UTF-8') curseur = db.cursor # Insérez les données de = 'insertion en valeurs personne (nom, âge) (% s,% de)' essayer: cursor.execute (sql, ( 'Monkey', 100000)) impression db.commit ( "insert avec succès"), sauf : print ( "insertion a échoué") db.rollbackdb.close

2) l'insertion d'une pluralité de données en temps

importation pymysql db = pymysql.connect (host = 'localhost', user = 'root', mot de passe = '123456', port = 3306, db = 'Huangwei', charset = 'UTF-8') curseur = db.cursor # Insérez les = de données 'insertion en valeurs personne (nom, âge) (% s,% de)' # Note: (( 'Maxpower', 9000), ( 'Princesse de fer », 8000), (' Jade ' , 6000)) peuvent également être # parenthèses peuvent être remplacés entre parenthèses données = essayer: cursor.executemany (sql, données) impression db.commit ( "insert réussir") except: print ( "insert a échoué") db.rollbackdb. près

les données mises à jour (modifié)

importation pymysql db = pymysql.connect (host = 'localhost', user = 'root', mot de passe = '123456', port = 3306, db = 'Huangwei', charset = 'UTF-8') curseur = db.cursor # Mise à jour « de données de mise à jour = personne de jeu age =% s où name =% s'try: cursor.execute (sql,) impression db.commit ( "Mise à jour Success") except: print ( "mise à jour a échoué") db.rollbackdb .close

Suppression de données (supprimé)

importation pymysql db = pymysql.connect (host = 'localhost', user = 'root', mot de passe = '123456', port = 3306, db = 'Huangwei', charset = 'UTF-8') curseur = db.cursor # Supprimer sql data = « supprimer de la personne où l'âge = 8000'try: cursor.execute (sql) print db.commit ( "supprimé avec succès") except: print ( "suppression a échoué") db.rollbackdb.close

Récapitulés comme suit:

  • Module PyMySQL est les capacités transactionnelles par défaut de l'open MySQL, par conséquent, la « augmentation », « suppression », « changement », assurez-vous d'utiliser db.commit valider la transaction, ou ne peut pas voir les données insérées.

  • Une « augmentation », « supprimer », « changement », assurez-vous d'utiliser try ... except ... déclaration, parce que si l'insertion ne réussit pas, le reste du code ne peut pas être exécuté. Lorsque l'instruction est exécutée ne réussit pas, nous db.rollback rétrogradés à l'état avant l'opération, lors de l'exécution réussie, nous db.commit valider la transaction.

Auteur: Huang suprême, l'adresse de blog personnel: https: //blog.csdn.net/weixin_41261833.

Avertissement: Cet article Département des contributeurs, il appartient à tous.

modèles les plus vendus des applications BlackBerry est comment construire?
Précédent
Pipeline joueur basé Youku conception à architecture ouverte et pratique
Prochain
Londres vendredi matin « ville fermée », l'armée britannique a déployé 20.000 soldats en attente
Au cours de l'épidémie, de nombreuses entreprises de restauration feront partie de la capacité de production pour le développement de plats semi-finis, la transformation de la vente au détail
Musée provincial du Guangdong est ouvert le premier jour: pluie pour voir Rembrandt et Monet
Boxe une voiture rue combustion spontanée
Jinan « trois Hall » a rouvert aujourd'hui, beaucoup de gens sont venus à « adopteurs précoces »
Hubei "Break Order"! Les ventes de produits agricoles frais ont augmenté de 445% en glissement mensuel, le vice-gouverneur de la province du Hubei, Zhao Haishan, a félicité JD.
l'industrie saveur haïtienne cours des actions à de nouveaux sommets valeurs de consommation peuvent devenir un refuge?
formation arrêt de train non-stop! Les joueurs d'origine ne peuvent pas échapper au sort d'être « clou » le
82080000! Le vieux professeur a fait don de tous
Reçu un ordre « acheter deux bassins en acier inoxydable »? Sélectionnez l'alarme à emporter petit frère ......
Cet hiver, pas trop froid
Frappez à la porte tard dans la nuit a la maison pour les jeunes de la maison, qui a sauvé le premier étage