Python作为一种高级编程语言,具有各种各样的库和工具,使得我们可以更加方便地处理各种数据。其中,与数据库相关的库也是很重要的一种,可以帮助我们更加高效地操作数据库并获取所需的数据。
在Python中调用数据库实例,一般需要用到的库包括:`sqlite3`、`mysql-connector-python`、`psycopg2`等。不同的库适用于不同的数据库类型。下面就以sqlite3和mysql-connector-python为例,介绍一下如何在Python中调用数据库实例。
### 使用sqlite3库
**1. 连接数据库**
首先,我们需要用`sqlite3.connect()`方法建立与数据库的连接。
```python
import sqlite3
# 建立与数据库的连接
conn = sqlite3.connect('test.db')
```
当你在程序的当前目录下运行以上代码时,它将创建一个名为test.db的数据库(如果不存在的话),并建立与该数据库的连接。
**2. 创建数据表**
接着,我们可以使用`execute()`方法执行SQL语句来创建数据表。如下面的代码所示:
```python
import sqlite3
# 建立与数据库的连接
conn = sqlite3.connect('test.db')
# 创建数据表
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.close()
```
以上代码中使用了`execute()`方法来执行SQL语句来创建名为`COMPANY`的数据表。可以看到我们Python中建立表格与SQL语言中基本是一致的。
**3. 插入数据**
要向表格中插入数据,可以使用`execute()`方法执行SQL语句。如下面的代码所示:
```python
import sqlite3
# 建立与数据库的连接
conn = sqlite3.connect('test.db')
# 插入数据
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. 查询数据**
要查询数据,可以使用`execute()`方法执行SQL语句并使用`fetchall()`方法获取查询结果。如下面的代码所示:
```python
import sqlite3
# 建立与数据库的连接
conn = sqlite3.connect('test.db')
# 执行查询操作
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")
# 关闭数据库连接
conn.close()
```
以上代码输出了`COMPANY`表格中的所有数据。
### 使用mysql-connector-python库
**1. 连接数据库**
同样地,我们先需要建立与数据库的连接。不过需要注意的是,我们需要在mysql-server中创建用户并授权以便访问数据库。
```python
import mysql.connector
# 建立与数据库的连接
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword"
)
print(mydb)
```
以上代码借助`mysql.connector`库建立与MySQL数据库的连接,并输出连接对象。
**2. 创建数据表**
要创建数据表,我们需要先创建一个光标对象,并对其执行SQL语句。
```python
import mysql.connector
# 建立与数据库的连接
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword"
)
mycursor = mydb.cursor()
# 创建数据表
mycursor.execute("CREATE DATABASE mydatabase")
```
以上代码创建了一个名为`mydatabase`的数据库。接着,我们可以创建数据表。
```python
import mysql.connector
# 建立与数据库的连接
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="mydatabase"
)
mycursor = mydb.cursor()
# 创建数据表
mycursor.execute("CREATE TABLE customers (name VARCHAR(255), address VARCHAR(255))")
```
以上代码创建了一个名为`customers`的数据表格。
**3. 插入数据**
要向表格中插入数据,可以使用`execute()`方法并指定SQL语句。
```python
import mysql.connector
# 建立与数据库的连接
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="mydatabase"
)
mycursor = mydb.cursor()
# 插入数据
sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = ("John", "Highway 21")
mycursor.execute(sql, val)
mydb.commit()
print(mycursor.rowcount, "record inserted.")
```
以上代码向`customers`表格中插入了一行数据。
**4. 查询数据**
要查询数据,同样也是用`execute()`方法执行SQL语句,再使用`fetchall()`方法获取查询结果。
```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)
```
以上代码输出了`customers`表格中的所有数据。
总的来说,Python中调用数据库实例还是比较容易的。只需要了解所使用的库的基本用法和SQL语言的语法,基本上就可以对数据库进行操作了。需要注意的是,我们在进行数据操作时,应该遵守数据库的规则,并考虑到数据安全与数据完整性的问题。
延伸阅读:
1. SQL语言的基础语法及语法结构。
2. 数据库的设计原则,如范式、主键、外键等。
3. 数据库的优化与性能调优,如索引、缓存、分区等。
4. 数据库的安全问题,如SQL注入、XSS攻击等。
5. 事务的概念及在数据操作中的应用。
壹涵网络我们是一家专注于网站建设、企业营销、网站关键词排名、AI内容生成、新媒体营销和短视频营销等业务的公司。我们拥有一支优秀的团队,专门致力于为客户提供优质的服务。
我们致力于为客户提供一站式的互联网营销服务,帮助客户在激烈的市场竞争中获得更大的优势和发展机会!
发表评论 取消回复