云数据库是一种将数据库服务部署在云计算平台上的数据库解决方案。它提供了可扩展、高可用、弹性和安全的数据库服务,使用户能够方便地存储、管理和访问数据。
与传统数据库相比,云数据库具有以下不同之处:
下面是一个使用云数据库和传统数据库存储学生信息的代码案例。我们将使用云数据库服务 MongoDB Atlas 和传统数据库服务 MySQL 来演示它们的不同之处。
首先,让我们来看看使用云数据库 MongoDB Atlas 的代码:
import pymongo
# 连接 MongoDB Atlas
client = pymongo.MongoClient("mongodb+srv://<username>:<password>@<cluster-url>")
# 选择数据库和集合
db = client["mydb"]
collection = db["students"]
# 插入学生信息
data = {"name": "John", "age": 20, "email": "john@example.com"}
result = collection.insert_one(data)
print(result.inserted_id)
# 查询学生信息
query = {"name": "John"}
result = collection.find_one(query)
print(result)在这个代码案例中,我们使用了 pymongo 库来连接 MongoDB Atlas。首先,我们指定了 MongoDB Atlas 的连接 URL,并创建了一个 MongoClient 对象。
然后,我们选择了名为 mydb 的数据库和名为 students 的集合。如果这些数据库和集合不存在,MongoDB 会自动创建它们。
接下来,我们创建了一个字典 data,其中包含了要插入的学生信息。这里我们插入了一个名为 “John” 的学生,包括了他的年龄和电子邮件。
然后,我们使用 insert_one 方法将学生信息插入到集合中。这个方法返回一个 InsertOneResult 对象,可以用于获取插入操作的结果。
接着,我们使用 find_one 方法查询名为 “John” 的学生信息。这个方法返回一个字典对象,包含了查询结果的第一个匹配学生信息。
最后,我们使用 print 函数打印查询结果。可能的运行结果如下:
60c0a7ee9a7f9a2c3b7a3e7f
{'_id': ObjectId('60c0a7ee9a7f9a2c3b7a3e7f'), 'name': 'John', 'age': 20, 'email': 'john@example.com'}在这个运行结果中,我们可以看到查询结果包含了一个自动生成的 _id 字段,以及我们插入的学生信息。
接下来,让我们来看看使用传统数据库 MySQL 的代码:
import mysql.connector
# 连接 MySQL
cnx = mysql.connector.connect(user='<username>', password='<password>',
host='<host>', database='<database>')
# 创建游标
cursor = cnx.cursor()
# 插入学生信息
query = "INSERT INTO students (name, age, email) VALUES (%s, %s, %s)"
data = ("John", 20, "john@example.com")
cursor.execute(query, data)
cnx.commit()
print(cursor.rowcount, "record inserted.")
# 查询学生信息
query = "SELECT * FROM students WHERE name = 'John'"
cursor.execute(query)
result = cursor.fetchone()
print(result)
# 关闭连接
cursor.close()
cnx.close()在这个代码案例中,我们使用了 mysql.connector 库来连接 MySQL 数据库。首先,我们指定了 MySQL 的连接参数,并创建了一个 connect 对象。
然后,我们创建了一个游标对象 cursor,用于执行 SQL 查询和操作。
接着,我们使用 SQL 语句插入学生信息到名为 students 的表中。我们使用了参数化查询来防止 SQL 注入攻击,并通过 execute 方法执行查询。
然后,我们使用 commit 方法提交事务,并打印插入记录的数量。
接下来,我们使用 SQL 语句查询名为 “John” 的学生信息,并使用 fetchone 方法获取查询结果的第一条记录。
最后,我们使用 print 函数打印查询结果。可能的运行结果如下:
1 record inserted.
(1, 'John', 20, 'john@example.com')在这个运行结果中,我们可以看到查询结果包含了学生信息的所有字段。