书店数据库管理系统sql sever+python
时间: 2024-05-18 16:18:16 浏览: 109
好的,下面是一个基于SQL Server和Python的书店数据库管理系统的示例:
1. 数据库设计
首先,需要设计数据库模式。在这个示例中,我们将创建一个包含以下表的数据库:
- 书籍(Books):包含书籍的基本信息,例如书名、作者、出版社和价格。
- 顾客(Customers):包含顾客的基本信息,例如姓名、地址和电话号码。
- 订单(Orders):包含订单的基本信息,例如订单号、订购日期和顾客ID。
- 订单明细(OrderDetails):包含订单中每本书的详细信息,例如书籍ID、数量和单价。
以下是一个基本的数据库模式设计:
Books表:
- BookID (int, PK)
- Title (nvarchar)
- Author (nvarchar)
- Publisher (nvarchar)
- Price (money)
Customers表:
- CustomerID (int, PK)
- FirstName (nvarchar)
- LastName (nvarchar)
- Address (nvarchar)
- Phone (nvarchar)
Orders表:
- OrderID (int, PK)
- OrderDate (datetime)
- CustomerID (int, FK)
OrderDetails表:
- OrderDetailID (int, PK)
- OrderID (int, FK)
- BookID (int, FK)
- Quantity (int)
- UnitPrice (money)
2. 创建数据库和表
在SQL Server中,可以使用SQL Server Management Studio(SSMS)或Transact-SQL语句来创建数据库和表。以下是一个使用Transact-SQL语句创建数据库和表的示例:
```sql
-- 创建数据库
CREATE DATABASE Bookstore;
-- 切换到新创建的数据库
USE Bookstore;
-- 创建Books表
CREATE TABLE Books (
BookID int PRIMARY KEY,
Title nvarchar(100),
Author nvarchar(50),
Publisher nvarchar(50),
Price money
);
-- 创建Customers表
CREATE TABLE Customers (
CustomerID int PRIMARY KEY,
FirstName nvarchar(50),
LastName nvarchar(50),
Address nvarchar(100),
Phone nvarchar(20)
);
-- 创建Orders表
CREATE TABLE Orders (
OrderID int PRIMARY KEY,
OrderDate datetime,
CustomerID int FOREIGN KEY REFERENCES Customers(CustomerID)
);
-- 创建OrderDetails表
CREATE TABLE OrderDetails (
OrderDetailID int PRIMARY KEY,
OrderID int FOREIGN KEY REFERENCES Orders(OrderID),
BookID int FOREIGN KEY REFERENCES Books(BookID),
Quantity int,
UnitPrice money
);
```
3. 连接数据库并执行查询
在Python中,可以使用pyodbc模块连接到SQL Server数据库,并使用SQL语句执行查询。以下是一个连接到本地SQL Server数据库并查询Books表的示例:
```python
import pyodbc
# 连接到SQL Server数据库
conn = pyodbc.connect('Driver={SQL Server};'
'Server=localhost;'
'Database=Bookstore;'
'Trusted_Connection=yes;')
# 执行查询
cursor = conn.cursor()
cursor.execute('SELECT * FROM Books')
# 处理查询结果
for row in cursor:
print(row)
```
在这个例子中,使用pyodbc.connect()方法连接到本地的SQL Server数据库,然后使用cursor.execute()方法执行一个SELECT查询。最后,通过遍历游标对象获取结果集中的每一行数据。
4. 插入和更新数据
要插入数据,可以使用INSERT INTO语句。以下是一个插入数据的示例:
```python
import pyodbc
# 连接到SQL Server数据库
conn = pyodbc.connect('Driver={SQL Server};'
'Server=localhost;'
'Database=Bookstore;'
'Trusted_Connection=yes;')
# 插入一本新书
cursor = conn.cursor()
cursor.execute("INSERT INTO Books (BookID, Title, Author, Publisher, Price) VALUES (1, 'Python编程', 'Guido van Rossum', '人民邮电出版社', 59.00)")
conn.commit()
```
在这个例子中,使用cursor.execute()方法插入了一行数据,然后使用conn.commit()方法提交了事务。
要更新数据,可以使用UPDATE语句。以下是一个更新数据的示例:
```python
import pyodbc
# 连接到SQL Server数据库
conn = pyodbc.connect('Driver={SQL Server};'
'Server=localhost;'
'Database=Bookstore;'
'Trusted_Connection=yes;')
# 更新一本书的价格
cursor = conn.cursor()
cursor.execute("UPDATE Books SET Price = 49.00 WHERE BookID = 1")
conn.commit()
```
在这个例子中,使用cursor.execute()方法执行了一个UPDATE语句,将BookID为1的书的价格更新为新值,然后使用conn.commit()方法提交了事务。
希望这些信息能对你有所帮助。如果你有其他问题,可以继续问我。
阅读全文