用pycharm控制sql建立图书管理系统
时间: 2023-07-18 17:03:16 浏览: 95
首先,你需要安装MySQL数据库并创建一个名为“book_management”的数据库。然后,你需要在pycharm中安装mysql-connector-python库,用于Python与MySQL数据库的交互。
1. 在pycharm中创建一个新项目,并在项目文件夹下创建一个名为“database”的文件夹,用于存放数据库相关文件。
2. 在“database”文件夹下创建一个名为“db.py”的文件,用于连接数据库和执行SQL语句。代码如下:
```
import mysql.connector
# 连接数据库
mydb = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="book_management"
)
# 创建游标对象
mycursor = mydb.cursor()
# 执行SQL语句
def execute_sql(sql):
mycursor.execute(sql)
mydb.commit()
return mycursor.fetchall()
```
其中,host、user、password分别为数据库的地址、用户名和密码,database为你创建的数据库名称。
3. 在“database”文件夹下创建一个名为“tables.py”的文件,用于创建数据库中的表格。该文件中包含两个函数:create_book_table用于创建图书表,create_borrow_table用于创建借阅表。代码如下:
```
from db import execute_sql
# 创建图书表
def create_book_table():
sql = """
CREATE TABLE book (
id INT AUTO_INCREMENT PRIMARY KEY,
book_name VARCHAR(255) NOT NULL,
author VARCHAR(255) NOT NULL,
publisher VARCHAR(255) NOT NULL,
publish_date DATE NOT NULL,
price FLOAT NOT NULL,
count INT NOT NULL,
borrow_count INT NOT NULL DEFAULT 0
);
"""
execute_sql(sql)
# 创建借阅表
def create_borrow_table():
sql = """
CREATE TABLE borrow (
id INT AUTO_INCREMENT PRIMARY KEY,
book_id INT NOT NULL,
borrow_date DATE NOT NULL,
return_date DATE NOT NULL,
FOREIGN KEY (book_id) REFERENCES book(id)
);
"""
execute_sql(sql)
```
其中,book表包含书籍的id、书名、作者、出版社、出版日期、价格、总数量、已借数量等信息,borrow表包含借阅记录的id、书籍id、借阅日期和归还日期等信息。
4. 在“database”文件夹下创建一个名为“data.py”的文件,用于向数据库中添加数据。该文件中包含两个函数:insert_book用于添加图书信息到book表中,insert_borrow用于添加借阅记录到borrow表中。代码如下:
```
from db import execute_sql
# 添加图书信息
def insert_book(book_name, author, publisher, publish_date, price, count):
sql = f"""
INSERT INTO book (book_name, author, publisher, publish_date, price, count)
VALUES ('{book_name}', '{author}', '{publisher}', '{publish_date}', {price}, {count})
"""
execute_sql(sql)
# 添加借阅记录
def insert_borrow(book_id, borrow_date, return_date):
sql = f"""
INSERT INTO borrow (book_id, borrow_date, return_date)
VALUES ({book_id}, '{borrow_date}', '{return_date}')
"""
execute_sql(sql)
```
5. 在“database”文件夹下创建一个名为“main.py”的文件,用于实现图书管理系统的主要功能。该文件中包含以下几个函数:
- add_book用于添加图书信息;
- borrow_book用于借阅图书;
- return_book用于归还图书;
- search_book用于查询图书信息;
- show_books用于展示所有图书信息。
代码如下:
```
from datetime import datetime, timedelta
from tables import create_book_table, create_borrow_table
from data import insert_book, insert_borrow
from db import execute_sql
# 创建图书表和借阅表
def create_tables():
create_book_table()
create_borrow_table()
# 添加图书信息
def add_book():
book_name = input("请输入书名:")
author = input("请输入作者:")
publisher = input("请输入出版社:")
publish_date = input("请输入出版日期(yyyy-mm-dd):")
price = float(input("请输入价格:"))
count = int(input("请输入数量:"))
insert_book(book_name, author, publisher, publish_date, price, count)
print("添加成功!")
# 借阅图书
def borrow_book():
book_id = int(input("请输入要借阅的书籍编号:"))
borrow_date = datetime.today().strftime('%Y-%m-%d')
return_date = (datetime.today() + timedelta(days=30)).strftime('%Y-%m-%d')
sql = f"""
UPDATE book SET borrow_count = borrow_count + 1 WHERE id = {book_id} AND borrow_count < count
"""
rows = execute_sql(sql)
if rows:
insert_borrow(book_id, borrow_date, return_date)
print("借阅成功!")
else:
print("该书籍已全部借出或不存在!")
# 归还图书
def return_book():
borrow_id = int(input("请输入要归还的借阅记录编号:"))
return_date = datetime.today().strftime('%Y-%m-%d')
sql = f"""
UPDATE book, borrow SET book.borrow_count = book.borrow_count - 1 WHERE borrow.id = {borrow_id} AND borrow.book_id = book.id;
"""
rows = execute_sql(sql)
if rows:
sql = f"""
UPDATE borrow SET return_date = '{return_date}' WHERE id = {borrow_id}
"""
execute_sql(sql)
print("归还成功!")
else:
print("该借阅记录不存在!")
# 查询图书信息
def search_book():
keyword = input("请输入关键词:")
sql = f"""
SELECT * FROM book WHERE book_name LIKE '%{keyword}%' OR author LIKE '%{keyword}%' OR publisher LIKE '%{keyword}%'
"""
rows = execute_sql(sql)
if rows:
print("查询结果如下:")
for row in rows:
print(row)
else:
print("没有找到符合条件的图书!")
# 展示所有图书信息
def show_books():
sql = """
SELECT * FROM book
"""
rows = execute_sql(sql)
if rows:
print("所有图书信息如下:")
for row in rows:
print(row)
else:
print("暂无图书!")
if __name__ == '__main__':
create_tables()
print("欢迎使用图书管理系统!")
while True:
print("请选择操作:")
print("1.添加图书 2.借阅图书 3.归还图书 4.查询图书 5.展示所有图书信息 6.退出系统")
choice = input()
if choice == '1':
add_book()
elif choice == '2':
borrow_book()
elif choice == '3':
return_book()
elif choice == '4':
search_book()
elif choice == '5':
show_books()
elif choice == '6':
print("感谢使用图书管理系统!")
break
else:
print("输入有误,请重新输入!")
```
以上就是用pycharm控制sql建立图书管理系统的全部步骤和代码。你可以根据自己的需求进行修改和扩展。
阅读全文