匠心精神 - 良心品质腾讯认可的专业机构-IT人的高薪实战学院

咨询电话:4000806560

Python中的数据库操作:深入探究mysql、sqlite等数据库的连接、查询等技术

Python中的数据库操作:深入探究mysql、sqlite等数据库的连接、查询等技术

随着信息时代的到来,数据的重要性日益凸显。因此,无论是企业还是个人,对于数据的管理和使用都变得越来越重要。而数据库就是数据管理的核心,因为它可以存储、管理和检索各种类型的数据。Python作为一种高效的编程语言,自然也支持各种数据库的操作。本文将深入探究Python中对mysql、sqlite等数据库的连接、查询等技术。

一、常见的数据库

在学习Python中的数据库操作之前,首先需要了解常见的数据库。SQL(Structured Query Language)是关系型数据库管理系统(RDBMS)中最常用的语言。在实际中,MySQL、PostgreSQL和Oracle等都是比较常见的关系型数据库。除此之外,还有一些轻量级的数据库,如SQLite、Redis,也被广泛应用于移动应用程序和Web开发中。

二、Python中对mysql的连接及查询

Python中连接mysql数据库,需要使用mysql.connector库。可以通过以下命令来安装该库:

```python
pip install mysql-connector
```

连接mysql数据库的代码如下:

```python
import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="mydatabase"
)

print(mydb)
```

在这个例子中,我们使用了`mysql.connector`库连接本地的mysql数据库,设置用户名、密码和数据库名称。如果连接成功,会输出类似于下面的信息:

```text

```

接下来,我们可以执行查询语句来获取数据库中的数据。例如,我们可以通过以下代码获取`customers`表中的所有数据:

```python
import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()

mycursor.execute("SELECT * FROM customers")

myresult = mycursor.fetchall()

for x in myresult:
  print(x)
```

在这个例子中,我们首先创建一个游标对象`mycursor`,然后使用`execute()`方法执行SQL查询语句。`fetchall()`方法获取查询结果,并将其存储在`myresult`中。最后,我们使用循环遍历`myresult`中的结果。

三、Python中对SQLite的连接及查询

SQLite是一个轻量级的关系型数据库管理系统。它可以嵌入到Web浏览器中或运行在移动平台上。Python中,使用sqlite3模块连接SQLite数据库。可以通过以下命令来安装该模块:

```python
pip install pysqlite3
```

连接SQLite数据库的代码如下:

```python
import sqlite3

conn = sqlite3.connect('example.db')

print("Opened database successfully")
```

在这个例子中,我们使用`sqlite3`模块连接一个名为`example.db`的数据库。如果连接成功,会输出信息`Opened database successfully`。

使用SQLite数据库,我们可以执行各种SQL查询语句,例如:

```python
import sqlite3

conn = sqlite3.connect('example.db')

print("Opened database successfully")

conn.execute('''CREATE TABLE COMPANY
       (ID INT PRIMARY KEY     NOT NULL,
       NAME           TEXT    NOT NULL,
       AGE            INT     NOT NULL,
       ADDRESS        CHAR(50),
       SALARY         REAL);''')
print("Table created successfully")

conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (1, 'Paul', 32, 'California', 20000.00 )")

conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (2, 'Allen', 25, 'Texas', 15000.00 )")

conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (3, 'Teddy', 23, 'Norway', 20000.00 )")

conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (4, 'Mark', 25, 'Rich-Mond', 65000.00 )")

conn.commit()
print("Records created successfully")

conn.close()
```

在这个例子中,我们创建了一个名为`COMPANY`的表,并向其插入了4条记录。使用SQLite数据库,我们也可以执行各种查询语句,例如:

```python
import sqlite3

conn = sqlite3.connect('example.db')

print("Opened database successfully")

cursor = conn.execute("SELECT id, name, address, salary from COMPANY")
for row in cursor:
   print("ID = ", row[0])
   print("NAME = ", row[1])
   print("ADDRESS = ", row[2])
   print("SALARY = ", row[3], "\n")

print("Operation done successfully")
conn.close()
```

在这个例子中,我们查询了`COMPANY`表中的`id`、`name`、`address`和`salary`字段,并使用`for`循环遍历结果集。结果集中的每一行都是一个元组,通过访问元素的方式获得每个字段的值。

总结

Python中对mysql、sqlite等数据库的连接、查询等技术,是数据科学和数据工程中必不可少的技能。通过本文的介绍,你可以了解到Python是如何连接和查询不同类型的数据库的。当然,这仅仅是一个入门级别的教程,如果你想深入学习数据科学和数据工程,还需要更加深入地学习各种数据库操作的技巧和技术。