图书出版数据库设计与实现 - SQL 语句示例
图书出版数据库设计与实现 - SQL 语句示例
本文档介绍了图书出版数据库的设计,包括图书、作者、出版三个表的结构定义和示例数据。提供了使用 SQL 语句创建表格、插入数据的代码示例,方便读者学习和实践。
表结构
'图书' 表结构:
| 字段名 | 数据类型 | 长度 | 主键 | 非空 | 其他约束 | 说明 | |---|---|---|---|---|---|---| | 书号 | CHAR | 20 | 是 | 是 | | 图书唯一标识 | | 书名 | VARCHAR | 30 | 否 | 是 | | 图书名称 | | 出版年份 | SMALLINT | | 否 | 否 | | 图书出版年份 | | 印刷数量 | INT | | 否 | 否 | 印刷数量>=1000 | 图书印刷数量 | | 单价 | DECIMAL | 6,2 | 否 | 否 | | 图书单价 |
'作者' 表结构:
| 字段名 | 数据类型 | 长度 | 主键 | 非空 | 其他约束 | 说明 | |---|---|---|---|---|---|---| | 作者号 | CHAR | 11 | 是 | 是 | | 作者唯一标识 | | 作者名 | VARCHAR | 30 | 否 | 是 | | 作者姓名 | | 职称 | CHAR | 2 | 否 | 否 | 职称 IN ('高级', '中级', '初级') | 作者职称 |
'出版' 表结构:
| 字段名 | 数据类型 | 长度 | 主键 | 非空 | 其他约束 | 说明 | |---|---|---|---|---|---|---| | 书号 | CHAR | 20 | 是 | 是 | REFERENCES 图书(书号) | 外键,引用图书表 | | 作者号 | CHAR | 11 | 是 | 是 | REFERENCES 作者(作者号) | 外键,引用作者表 | | 作者序号 | INT | | 否 | 否 | | 作者在图书中的序号 |
SQL 语句
创建表格:
-- 创建图书表格
CREATE TABLE 图书 (
书号 CHAR(20) PRIMARY KEY,
书名 VARCHAR(30) NOT NULL,
出版年份 SMALLINT,
印刷数量 INT CHECK (印刷数量>=1000),
单价 DECIMAL(6,2)
);
-- 创建作者表格
CREATE TABLE 作者 (
作者号 CHAR(11) PRIMARY KEY,
作者名 VARCHAR(30) NOT NULL,
职称 CHAR(2) CHECK (职称 IN ('高级', '中级', '初级'))
);
-- 创建出版表格
CREATE TABLE 出版 (
书号 CHAR(20) REFERENCES 图书(书号),
作者号 CHAR(11) REFERENCES 作者(作者号),
作者序号 INT,
PRIMARY KEY (书号, 作者号)
);
插入数据:
-- 插入图书数据
INSERT INTO 图书 (书号, 书名, 出版年份, 印刷数量, 单价)
VALUES
('0001', 'Java编程思想', 2018, 10000, 68.50),
('0002', 'Python编程快速入门', 2019, 5000, 45.99),
('0003', 'C++ Primer', 2020, 8000, 88.00);
-- 插入作者数据
INSERT INTO 作者 (作者号, 作者名, 职称)
VALUES
('A001', '张三', '高级'),
('A002', '李四', '中级'),
('A003', '王五', '初级');
-- 插入出版数据
INSERT INTO 出版 (书号, 作者号, 作者序号)
VALUES
('0001', 'A001', 1),
('0001', 'A002', 2),
('0002', 'A002', 1),
('0003', 'A002', 1),
('0003', 'A003', 2);
原文地址: https://www.cveoy.top/t/topic/ogan 著作权归作者所有。请勿转载和采集!