请问用ORM来操作数据库和不用ORM操作数据库有什么区别,请用代码说明
时间: 2023-12-24 08:04:56 浏览: 35
使用ORM和不使用ORM操作数据库的主要区别在于,使用ORM可以通过Python对象来操作数据库,无需编写SQL语句,而不使用ORM需要手动编写SQL语句来操作数据库。ORM的优点是代码简洁、易于维护、可读性高,缺点是性能可能比直接编写SQL差一些。
下面是一个使用Django ORM操作数据库的示例代码:
```python
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=100)
publish_date = models.DateField()
# 创建一本新书
new_book = Book(title='Python入门', author='张三', publish_date='2022-01-01')
new_book.save()
# 查询所有书籍
all_books = Book.objects.all()
# 根据书名查询书籍
python_books = Book.objects.filter(title='Python入门')
# 更新一本书的信息
book = Book.objects.get(id=1)
book.title = 'Python高级编程'
book.save()
# 删除一本书
book = Book.objects.get(id=1)
book.delete()
```
上面的代码演示了使用Django ORM创建、查询、更新、删除一个Book对象的代码。可以看到,使用ORM操作数据库非常简洁和易于理解,无需编写SQL语句,即可完成常用的数据操作。
下面是一个使用SQL语句操作数据库的示例代码:
```python
import sqlite3
# 创建数据库连接
conn = sqlite3.connect('test.db')
# 创建游标对象
cursor = conn.cursor()
# 创建一张书籍表
cursor.execute('CREATE TABLE book(id INT PRIMARY KEY, title VARCHAR(100), author VARCHAR(100), publish_date DATE)')
# 插入一本新书
cursor.execute("INSERT INTO book(id, title, author, publish_date) VALUES(1, 'Python入门', '张三', '2022-01-01')")
# 查询所有书籍
cursor.execute('SELECT * FROM book')
all_books = cursor.fetchall()
# 根据书名查询书籍
cursor.execute("SELECT * FROM book WHERE title='Python入门'")
python_books = cursor.fetchall()
# 更新一本书的信息
cursor.execute("UPDATE book SET title='Python高级编程' WHERE id=1")
conn.commit()
# 删除一本书
cursor.execute('DELETE FROM book WHERE id=1')
conn.commit()
# 关闭连接
conn.close()
```
上面的代码演示了使用SQL语句创建、查询、更新、删除一个Book表的代码。可以看到,使用SQL语句操作数据库需要编写大量的SQL语句,代码可读性较差,但是性能可能比使用ORM更好。
总之,使用ORM和不使用ORM操作数据库各有优缺点,需要根据具体情况选择合适的操作方式。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)