据库使用python建一个Class数据库(课程名、课程代码、是否必修、是否结课)完成增加3条数据查询所有数据删掉一条数据修改第二条数据
时间: 2023-12-10 16:05:07 浏览: 28
好的,可以使用 Python 的 sqlite3 模块来实现一个基本的 Class 数据库。
首先,导入 sqlite3 模块,并创建一个名为 `class.db` 的数据库文件:
```python
import sqlite3
conn = sqlite3.connect('class.db')
```
然后,创建一个名为 `Class` 的表,包含 `course_name`、`course_code`、`is_compulsory` 和 `is_completed` 四个字段:
```python
conn.execute('''
CREATE TABLE Class
(ID INTEGER PRIMARY KEY AUTOINCREMENT,
course_name TEXT NOT NULL,
course_code TEXT NOT NULL,
is_compulsory BOOLEAN NOT NULL,
is_completed BOOLEAN NOT NULL);
''')
```
接下来,可以定义一个名为 `Course` 的类,用于表示一个课程:
```python
class Course:
def __init__(self, course_name, course_code, is_compulsory, is_completed):
self.course_name = course_name
self.course_code = course_code
self.is_compulsory = is_compulsory
self.is_completed = is_completed
```
然后,可以定义一些函数来实现增删改查功能:
```python
def add_course(course):
conn.execute(f'''
INSERT INTO Class
(course_name, course_code, is_compulsory, is_completed)
VALUES
('{course.course_name}', '{course.course_code}', {course.is_compulsory}, {course.is_completed});
''')
conn.commit()
def get_all_courses():
cursor = conn.execute('SELECT * FROM Class;')
courses = []
for row in cursor:
course = Course(row[1], row[2], row[3], row[4])
courses.append(course)
return courses
def delete_course(course_id):
conn.execute(f'DELETE FROM Class WHERE ID = {course_id};')
conn.commit()
def update_course(course_id, course):
conn.execute(f'''
UPDATE Class
SET
course_name = '{course.course_name}',
course_code = '{course.course_code}',
is_compulsory = {course.is_compulsory},
is_completed = {course.is_completed}
WHERE
ID = {course_id};
''')
conn.commit()
```
现在,可以测试一下这些函数的功能。假设要添加三门课程:
```python
course1 = Course('Math', 'MATH101', True, False)
course2 = Course('English', 'ENG101', True, True)
course3 = Course('History', 'HIS101', False, False)
add_course(course1)
add_course(course2)
add_course(course3)
```
然后,查询所有课程:
```python
courses = get_all_courses()
for course in courses:
print(course.course_name, course.course_code, course.is_compulsory, course.is_completed)
```
输出结果应该为:
```
Math MATH101 1 0
English ENG101 1 1
History HIS101 0 0
```
接着,删除第一门课程:
```python
delete_course(1)
```
最后,修改第二门课程的课程名和是否必修:
```python
course2.course_name = 'Advanced English'
course2.is_compulsory = False
update_course(2, course2)
```
这样,我们就完成了一个简单的 Class 数据库的实现。