基于c语言开发图书信息管理系统的数据库设计怎么写
时间: 2024-03-07 22:49:06 浏览: 80
基于C语言开发图书信息管理系统的数据库一般使用关系型数据库,如MySQL、Oracle等。下面给出一个简单的MySQL数据库设计示例:
1. 创建数据库
首先创建一个名为`book_management`的数据库。
```
CREATE DATABASE book_management;
```
2. 创建表
在`book_management`数据库中创建一个名为`book`的表,用于存储图书信息。
```
USE book_management;
CREATE TABLE book (
id INT(11) NOT NULL AUTO_INCREMENT, -- 图书ID,自增长
name VARCHAR(100) NOT NULL, -- 图书名称,不允许为空
author VARCHAR(50) NOT NULL, -- 图书作者,不允许为空
publisher VARCHAR(50) NOT NULL, -- 出版社,不允许为空
price FLOAT(6, 2) NOT NULL, -- 图书价格,不允许为空
PRIMARY KEY (id) -- 将id设置为主键
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
```
3. 插入数据
向`book`表中插入一些示例数据。
```
INSERT INTO book (name, author, publisher, price)
VALUES
('C++ Primer', 'Lippman, Lajoie, Moo', '电子工业出版社', 89.00),
('数据结构与算法分析', 'Mark Allen Weiss', '机械工业出版社', 59.00),
('计算机网络', '谢希仁', '电子工业出版社', 79.00),
('操作系统', '汤小丹', '机械工业出版社', 69.00),
('数据库系统概论', '王珊, 宁方, 黄涛', '机械工业出版社', 59.00);
```
4. 查询数据
使用C语言的MySQL API连接数据库,执行SQL语句查询数据。
```
MYSQL *conn; // 定义MySQL连接对象
MYSQL_RES *res; // 定义MySQL查询结果对象
MYSQL_ROW row; // 定义MySQL查询结果的一行数据
// 连接到本地MySQL服务器
conn = mysql_init(NULL);
mysql_real_connect(conn, "localhost", "root", "password", "book_management", 0, NULL, 0);
// 执行SQL语句查询数据
mysql_query(conn, "SELECT * FROM book");
res = mysql_store_result(conn);
// 输出查询结果
while ((row = mysql_fetch_row(res))) {
printf("ID: %s, Name: %s, Author: %s, Publisher: %s, Price: %s\n", row[0], row[1], row[2], row[3], row[4]);
}
// 释放资源
mysql_free_result(res);
mysql_close(conn);
```
输出结果为:
```
ID: 1, Name: C++ Primer, Author: Lippman, Lajoie, Moo, Publisher: 电子工业出版社, Price: 89.00
ID: 2, Name: 数据结构与算法分析, Author: Mark Allen Weiss, Publisher: 机械工业出版社, Price: 59.00
ID: 3, Name: 计算机网络, Author: 谢希仁, Publisher: 电子工业出版社, Price: 79.00
ID: 4, Name: 操作系统, Author: 汤小丹, Publisher: 机械工业出版社, Price: 69.00
ID: 5, Name: 数据库系统概论, Author: 王珊, 宁方, 黄涛, Publisher: 机械工业出版社, Price: 59.00
```
上述示例仅为一个简单的示例,实际情况下还需要根据具体需求进行数据库表的设计和数据的插入、查询、修改、删除等操作。
阅读全文