# MySQL 与 Python

> 原文： [https://pythonspot.com/mysql-with-python](https://pythonspot.com/mysql-with-python)

在本教程中，您将学习如何在 Python 中使用广泛使用的 _ 数据库管理系统 _，称为 _MySQL_ 。 您不需要使用 MySQL 的任何先验知识即可使用本教程，但是，除了本简短的入门教程所涵盖的内容外，MySQL 还有很多其他内容。

## MySQL 教程

数据存储在表的 _ 集合 _ 中，每个表由一组行和列组成。 这类似于在 [SQLite](https://pythonspot.com/python-database-programming-sqlite-tutorial/) 中存储数据的方式。 为了与表中存储的数据进行交互，我们使用一种称为 SQL 的专用编程语言。

## 步骤 1：安装 MySQL

首先，您必须安装 MySQL 驱动程序，使用下面的特定安装方法。

_ 在 Windows 上：_
使用[安装程序安装 MySQLdb。](https://sourceforge.net/projects/mysql-python/files/mysql-python/1.2.3/MySQL-python-1.2.3.win32-py2.7.msi/download)

_ 在 Linux 上：_
使用以下命令安装 MySQLdb：

```py
sudo apt-get install python-mysqldb
yum install mysql-python

```

取决于您的版本。

_ 在 Mac 上：_
按照 stackoverflow 的安装说明[](https://stackoverflow.com/questions/1448429/how-to-install-mysqldb-python-data-access-library-to-mysql-on-mac-os-x#1448476)

&lt;u&gt;必须先运行 MySQL 服务器，然后再进行下一步。&lt;/u&gt;

## 步骤 2：设置数据库


确保您具有数据库访问权限，可从命令行输入：

```py
mysql -u USERNAME -p

```

然后，MySQL 将询问您的密码。 输入以下命令：

```py
mysql&gt; CREATE DATABASE pythonspot;
mysql&gt; USE pythonspot;

```

我们继续创建表：

```py
CREATE TABLE IF NOT EXISTS examples (
  id int(11) NOT NULL AUTO_INCREMENT,
  description varchar(45),
  PRIMARY KEY (id)
);

```

然后，我们可以将数据插入表中（这些是 SQL 查询）：

```py
1
2
3

```

现在，您可以使用 SQL 查询从表中获取所有记录：

```py
mysql&gt; SELECT * FROM examples;
+----+---------------+
| id | description   |
+----+---------------+
|  1 | Hello World   |
|  2 | MySQL Example |
|  3 | Flask Example |
+----+---------------+
3 rows in set (0.01 sec)

```

## 步骤 3：从 Python 获取数据

您可以使用 MySQLdb 模块直接从 Python 访问数据库。

```py
#!/usr/bin/python
import MySQLdb

db = MySQLdb.connect(host="localhost",  # your host 
                     user="root",       # username
                     passwd="root",     # password
                     db="pythonspot")   # name of the database

# Create a Cursor object to execute queries.
cur = db.cursor()

# Select data from table using SQL query.
cur.execute("SELECT * FROM examples")

# print the first and second columns      
for row in cur.fetchall() :
    print row[0], " ", row[1]

```

输出：

```py
1   Hello World
2   MySQL Example
3   Flask Example

```