图书信息、读者信息与借阅信息、职工信息的相关查询与编辑
项目背景介绍:本次的数据库设计主要涉及到图书信息、读者信息与借阅信息、职工信息的相关查询与编辑。任务概述:
具体关系数据库如下:
假定使用的”图书“、”读者“、‘借阅“和ZGJK表的定义如下:
图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(16),单价N(7,2))
读者(借书证号C(4),单位C(10),姓名C(6),性别C(2),职称C(6),地址C(16))
借阅(借书证号C(4),总编号C(6),借书日期D())
ZGJK (职工号C(6),姓名C(6),性别C(2),出生日期D(),职称C(6),基本工资N(7,2)
用SQL语言实现下列功能:
(1). 创建数据库:图书库,创建四个表
CREATE DATABASE 图书库; USE 图书库; CREATE TABLE 图书 ( 总编号 CHAR(6) PRIMARY KEY, 分类号 CHAR(8) NOT NULL, 书名 CHAR(16) NOT NULL, 作者 CHAR(6) NOT NULL, 出版单位 CHAR(16) NOT NULL, 单价 DECIMAL(7,2) NOT NULL ); CREATE TABLE 读者 ( 借书证号 CHAR(4) PRIMARY KEY, 单位 CHAR(10) NOT NULL, 姓名 CHAR(6) NOT NULL, 性别 CHAR(2) NOT NULL, 职称 CHAR(6) NOT NULL, 地址 CHAR(16) NOT NULL ); CREATE TABLE 借阅 ( 借书证号 CHAR(4), 总编号 CHAR(6), 借书日期 DATE, PRIMARY KEY (借书证号, 总编号), FOREIGN KEY (借书证号) REFERENCES 读者(借书证号), FOREIGN KEY (总编号) REFERENCES 图书(总编号) ); CREATE TABLE ZGJK ( 职工号 CHAR(6) PRIMARY KEY, 姓名 CHAR(6) NOT NULL, 性别 CHAR(2) NOT NULL, 出生日期 DATE NOT NULL, 职称 CHAR(6) NOT NULL, 基本工资 DECIMAL(7,2) NOT NULL ); -- 插入数据 INSERT INTO 图书 VALUES ('000001', 'A001', 'SQL入门', '李雷', '清华出版社', 39.50); INSERT INTO 图书 VALUES ('000002', 'B002', 'Java编程', '韩梅梅', '人民邮电', 45.00); INSERT INTO 图书 VALUES ('000003', 'C003', 'Python进阶', '张三', '电子工业出版社', 55.00); INSERT INTO 读者 VALUES ('0001', '学院1', '李雷', '男', '讲师', '地址1'); INSERT INTO 读者 VALUES ('0002', '学院2', '韩梅梅', '女', '助教', '地址2'); INSERT INTO 读者 VALUES ('0003', '学院3', '张三', '男', '教授', '地址3'); INSERT INTO 借阅 VALUES ('0001', '000001', '2023-01-01'); INSERT INTO 借阅 VALUES ('0002', '000002', '2023-02-01'); INSERT INTO 借阅 VALUES ('0003', '000003', '2023-03-01'); INSERT INTO ZGJK VALUES ('000001', '李雷', '男', '1980-01-01', '教授', 8000.00); INSERT INTO ZGJK VALUES ('000002', '韩梅梅', '女', '1985-02-01', '副教授', 7500.00); INSERT INTO ZGJK VALUES ('000003', '张三', '男', '1990-03-01', '讲师', 6000.00);
预览:
(2). 查询出“图书”数据库中作者姓“李”的所有图书。
SELECT * FROM 图书 WHERE 作者 LIKE '李%';
(3). 按分类号升序显示“图书”库中各种图书的分类号、书名和作者。
SELECT 分类号, 书名, 作者 FROM 图书 ORDER BY 分类号 ASC;
(4). 查询出“图书”库中书名含有“数据库”字串的所有图书。
SELECT * FROM 图书 WHERE 书名 LIKE '%数据库%';
(5). 联接查询“借阅”库和“读者”库,得到每一借阅读者的借书证号、姓名和单位。
SELECT 借阅.借书证号, 读者.姓名, 读者.单位 FROM 借阅 JOIN 读者 ON 借阅.借书证号 = 读者.借书证号;
(6). 显示出ZGJK 库中职称为教授或副教授,并且在1945年(含该年)以后出生的所有职工记录。
SELECT * FROM ZGJK WHERE 职称 IN ('教授', '副教授') AND 出生日期 >= '1945-01-01';
(7). 向ZGJK表中第五条记录之后插人一条新记录。
INSERT INTO ZGJK (职工号, 姓名, 性别, 出生日期, 职称, 基本工资) VALUES ('000006', '新职工', '男', '1995-05-05', '讲师', 5500.00);
还没有留言,还不快点抢沙发?