Maison  >  Article  >  développement back-end  >  Tutoriel d'installation et d'utilisation de la base de données MySQL

Tutoriel d'installation et d'utilisation de la base de données MySQL

Y2J
Y2Joriginal
2017-05-16 13:07:451960parcourir

Dans les robots d'exploration Python, il est généralement stocké en texte brut TXT, mais il peut également être stocké dans une base de données en même temps, dans les sites Web de développement WAMP (Windows, Apache, MySQL, PHP ou Python), il peut également être construit via la page Web Python, donc cet article parle principalement des connaissances en programmation liées à Python appelant la base de données MySQL

Dans le robot d'exploration Web Python, il est généralement stocké en texte brut TXT, mais il peut également être stocké dans le base de données ; en même temps, dans WAMP ( Windows, Apache, MySQL, PHP ou Python) peut également créer des pages Web via Python, donc cet article parle principalement des connaissances en programmation liées à Python appelant la base de données MySQL. Expliquez à partir des aspects suivants :

1. Configuration de MySLQ
2 Connaissance de base des instructions SQL
3 Connaissance de base du fonctionnement de MySQL avec Python
4. 🎜>

1. Configurez mysql

Téléchargez d'abord mysql-5.0.96-winx64,

Installation
Le processus est illustré dans la figure ci-dessous. 1. Installez MySQL 5.0



2. Sélectionnez la configuration manuelle, le type de service, la multifonction universelle et l'installation Chemin




3. Définissez le nombre de connexions d'accès à la base de données sur 15 et le port sur 3306 (utilisé pour définir l'URL dans le code), la méthode d'encodage est utf-8




4. Définissez le nom d'utilisateur et le mot de passe du super par défaut utilisateur root, et finalement l'installation a réussi



2. Connaissance de base des instructions SQL

Après en installant avec succès MySQL 5.0, effectuez des opérations simples sur la base de données.

1. Exécutez MySQL et entrez le mot de passe utilisateur par défaut 123456


2.

Créez la base de données
test01 et utilisez la base de données (deuxième appel utiliser directement la base de données) créer une base de données test01;


Afficher les bases de données incluses dans la base de données : afficher les bases de données ;



3. Créez une table étudiant, dans laquelle le numéro d'étudiant est la clé primaire

créez une table étudiant(nom d'utilisateur varchar(20),passw
ord
varchar(20),stuid int primaire key);


4. Pour afficher la structure de la table, utilisez l'instruction desc student



5. Insérez les données

dans la table étudiant
et affichez les données de la requête


6.Supprimer table : déposer la table étudiant ;


7.Mettre à jourDonnées
mise à jourdateétudiant set password='000000' où stuid='1';

8. Supprimer des données
Vous pouvez également mettre en œuvre des ajouts, des suppressions, des modifications, des transactions, des procédures stockées et d'autres opérations dans la base de données. Il est recommandé d'installer un logiciel visuel pour remplacer la boîte noire, ou d'utiliser Navicat <.> pour
logiciel MySQL. Le code est le suivant :

3. Connaissance de base de Python appelant MySQL

La méthode d'installation habituelle consiste à utiliser : pip install mysql Installation de la bibliothèque MySQL de Python, mais une erreur se produit toujours.

Erreurs courantes
Par exemple :

Microsoft Visual C++ 9.0 est requis (impossible de trouver vcvarsall.bat)
Enter password: ******
mysql> show databases;
+--------------------+
| Database      |
+--------------------+
| information_schema |
| mysql       |
| performance_schema |
| test        |
| test01       |
+--------------------+
5 rows in set (0.00 sec)

mysql> use test01;
Database changed
mysql> show tables;
Empty set (0.00 sec)

mysql> create table student(username varchar(20),
  ->         password varchar(20),
  ->         stuid int primary key);
Query OK, 0 rows affected (0.33 sec)

mysql> show tables;
+------------------+
| Tables_in_test01 |
+------------------+
| student     |
+------------------+
1 row in set (0.00 sec)

mysql> desc student;
+----------+-------------+------+-----+---------+-------+
| Field  | Type    | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| username | varchar(20) | YES |   | NULL  |    |
| password | varchar(20) | YES |   | NULL  |    |
| stuid  | int(11)   | NO  | PRI | NULL  |    |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.03 sec)

mysql> insert student(username, password, stuid)
  -> values(&#39;eastmount&#39;,&#39;123456&#39;,1)
  -> ;
Query OK, 1 row affected (0.05 sec)

mysql> select * from student;
+-----------+----------+-------+
| username | password | stuid |
+-----------+----------+-------+
| eastmount | 123456  |   1 |
+-----------+----------+-------+
1 row in set (0.00 sec)

mysql> update student set password=&#39;000000&#39; where stuid=&#39;1&#39;;
Query OK, 1 row affected (0.10 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> select * from student;
+-----------+----------+-------+
| username | password | stuid |
+-----------+----------+-------+
| eastmount | 000000  |   1 |
+-----------+----------+-------+
1 row in set (0.00 sec)

mysql> delete from student where username=&#39;eastmount&#39;;
Query OK, 1 row affected (0.08 sec)

mysql> select * from student;
Empty set (0.00 sec)

mysql>
mysql.c(42) : erreur fatale C1083 : impossible d'ouvrir le fichier d'inclusion : 'config- win .h' : aucun fichier ou répertoire de ce type

Il peut s'agir de problèmes de pilote.

Méthode d'installation correcte : Il est recommandé de télécharger un fichier MySQL-python-1.2.3.win-amd64-py2.7.exe pour l'installation.
Adresse du site officiel : pypi.python.org/pypi/MySQL-python/
Adresse de téléchargement : www.jb51.net/softs/73369.html

Ensuite, nous en apprendrons plus sur la base de données Python

API
. L'accès à la base de données à partir de Python nécessite un programme
interface
. Le programme d'interface est un module Python qui fournit une interface à la bibliothèque cliente de la base de données (généralement écrite en

langage C

) à laquelle vous pouvez accéder. Remarque : les programmes d'interface Python doivent être conformes à la spécification Python DB-API. DB-API est une spécification. Il définit une série d'

objets

et de méthodes d'accès à la base de données nécessaires pour fournir des interfaces d'accès cohérentes pour divers systèmes de base de données sous-jacents et divers programmes d'interface de base de données. DB-API fournit une interface d'accès cohérente pour différentes bases de données, facilitant ainsi la transplantation de code entre différentes bases de données. Ce qui suit est une brève introduction à la façon d'utiliser DB-API.
1. Module Attributs

Les fonctionnalités et attributs suivants dans la spécification DB-API doivent être fournis. Une définition de module compatible DB-API est la suivante :

Python appelle MsSQL et doit importer la bibliothèque MySQLdb, comme suit :


2. connect()

Fonction
apilevel:模块兼容的DB-API版本号
threadsafety:线程安全级别
paramstyle:支持sql语句参数风格
connect():连接数据库

La principale méthode utilisée est l'objet connect. La méthode connect() génère un objet connect pour accéder à la base de données. Ses paramètres sont les suivants : import MySQLdb

Notez que tous les programmes d'interface ne suivent pas strictement ce format, tel que comme MySQLdb.


La méthode objet connect() est la suivante :

user:Username
password:Password
host:Hostname
database:DatabaseName
dsn:Data source name


Notez que la clôture () est exécutée. Ensuite, la méthode de l'objet de connexion ci-dessus ne peut plus être utilisée, sinon une exception se produira. commit(), rollback() et Cursor() peuvent être plus significatifs pour les bases de données prenant en charge les transactions.

Transaction de base de données
import MySQLdb
conn = MySQLdb.connect(host=&#39;localhost&#39;, db=&#39;test01&#39;, user=&#39;root&#39;, passwd=&#39;123456&#39;, port=3306, charset=&#39;utf8&#39;)
action

) fait référence à une série d'opérations effectuées comme une seule unité logique de travail, soit complètement exécutée, soit pas exécutée du tout. Une fois que vous avez terminé la connexion à la base de données, fermez l'objet curseur, puis exécutez commit() pour soumettre votre opération, puis fermez la connexion.

3.游标对象
上面说了connect()方法用于提供连接数据库的接口,如果要对数据库操作那么还需要使用游标对象。游标对象的属性和方法


fetchone():可以看作fetch(取出) one(一个),也就是得到结果集的下一行(一行)。
fetchmany(size):可以看作fetch(取出)many(多个),这里的参数是界限,得到结果集的下几行(几行)
fetchall():顾名思义,取得所有。
execute(sql):执行数据库操作,参数为sql语句。
close():不需要游标时尽可能的关闭

下面通过简单的示例进行讲解。

四. Python调用MySQL示例

在前面数据库中我们创建了数据库“test01”和表“student”,同时插入了数据。那么,怎样通过Python来显示呢?
1.查询所有数据库
首先,我们查看本地数据库中所包含的数据库名称,通过“show databases”语句。


import MySQLdb
 
try:
  conn=MySQLdb.connect(host=&#39;localhost&#39;,user=&#39;root&#39;,passwd=&#39;123456&#39;,port=3306)
  cur=conn.cursor()
  res = cur.execute(&#39;show databases&#39;)
  print res
  for data in cur.fetchall():
    print &#39;%s&#39; % data
  cur.close()
  conn.close()
except MySQLdb.Error,e:
   print "Mysql Error %d: %s" % (e.args[0], e.args[1])

其中通过链接数据库代码为:
conn=MySQLdb.connect(host='localhost',user='root',passwd='123456',port=3306)
访问root超级用户,其密码为“123456”,端口为“3306”,其结果如下:

如果不知道本地数据库的名称,可以通过该方法,先查询数据库中包含哪些数据库,然后再连接该数据库进行相关的操作。

2.查询表
下面介绍查询表student中数据,代码如下,代码的具体含义是通过connect()连接数据库,通过conn.cursor()定义游标,然后调用游标的excute(sql)执行数据库操作,此处为查询操作,再通过fetchall()函数获取所有数据。


# coding:utf-8 
import MySQLdb
 
try:
  conn=MySQLdb.connect(host=&#39;localhost&#39;,user=&#39;root&#39;,passwd=&#39;123456&#39;,port=3306, db=&#39;test01&#39;, charset=&#39;utf8&#39;)
  cur=conn.cursor()
  res = cur.execute(&#39;select * from student&#39;)
  print u&#39;表中包含&#39;,res,u&#39;条数据\n&#39;
  print u&#39;数据如下:(姓名 密码 序号)&#39;
  for data in cur.fetchall():
    print &#39;%s %s %s&#39; % data
  cur.close()
  conn.close()
except MySQLdb.Error,e:
   print "Mysql Error %d: %s" % (e.args[0], e.args[1])

输出结果如图所示:


        对应的MySQL中的结果是一致的,下图是对应的结果。

 3.创建表
下面这段代码是创建一张教师表,主要是通过commit()提交数据。


# coding:utf-8 
import MySQLdb
 
try:
  conn=MySQLdb.connect(host=&#39;localhost&#39;,user=&#39;root&#39;,passwd=&#39;123456&#39;,port=3306, db=&#39;test01&#39;, charset=&#39;utf8&#39;)
  cur=conn.cursor()
  
  #查看表
  print u&#39;插入前包含表:&#39;
  cur.execute(&#39;show tables&#39;)
  for data in cur.fetchall():
    print &#39;%s&#39; % data

  #插入数据
  sql = &#39;&#39;&#39;create table teacher(id int not null primary key auto_increment,
                name char(30) not null,
                sex char(20) not null
     )&#39;&#39;&#39;
  cur.execute(sql)

  #查看表
  print u&#39;\n插入后包含表:&#39;
  cur.execute(&#39;show tables&#39;)
  for data in cur.fetchall():
    print &#39;%s&#39; % data
  cur.close()
  conn.commit()
  conn.close()
except MySQLdb.Error,e:
   print "Mysql Error %d: %s" % (e.args[0], e.args[1])

输出结果如下所示,插入教师表,包含字段:教师序号(id)、教师名称(name)、教师性别(sex)。

插入数据也可以通过execute(sql)方法实现,如:
cur.execute("insert into student values( 'yxz', '111111', '10')")
但插入的新数据通常是通过变量进行赋值,而不是固定的,所以要对这条语句中的值做修改。我们可以做如下修改:


# coding:utf-8 
import MySQLdb
 
try:
  conn=MySQLdb.connect(host=&#39;localhost&#39;,user=&#39;root&#39;,passwd=&#39;123456&#39;,port=3306, db=&#39;test01&#39;)
  cur=conn.cursor()
  
  #插入数据
  sql = &#39;&#39;&#39;insert into student values(%s, %s, %s)&#39;&#39;&#39;
  cur.execute(sql, (&#39;yxz&#39;,&#39;111111&#39;, &#39;10&#39;))

  #查看数据
  print u&#39;\n插入数据:&#39;
  cur.execute(&#39;select * from student&#39;)
  for data in cur.fetchall():
    print &#39;%s %s %s&#39; % data
  cur.close()
  conn.commit()
  conn.close()
except MySQLdb.Error,e:
   print "Mysql Error %d: %s" % (e.args[0], e.args[1])

输出结果如下所示:


>>> 
插入数据:
esatmount 123456 1
yangxiuzhang 123456 2
xiaoy 123456 3
yxz 111111 10
>>>

同样,对数据库的增删改插都可以进行,请读者自行阅读。
推荐资料:python使用mysql数据库 - 虫师
后面我会结合Python爬虫讲述,如何将爬取的内容存储在数据库中,如我CSDN的博客,爬取博客标题、发布时间、阅读量和评论数。

MySQL数据库中结果如下图所示:

【相关推荐】

1. 特别推荐“php程序员工具箱”V0.1版本下载

2. Python免费视频教程

3. Python基础入门教程

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn