1.找出机械工业出版社图书的书号,书名,作者,价格信息;
select book_number,book_name,author,price
from book
where publisher = '机械工业出版社';
运行结果:
2.查询借了书的读者编号
select distinct reader_number
from borrow_book;
运行结果:
3.查询所有图书信息,并要求对查询结果按总藏书量的降序排列,如果总藏书量相同则按价格的升序排列;
select *
from book
order by book_total desc,price asc;
运行结果:
4.查询2002年1月1日以前(不含此日期)的借阅信息;
select *
from borrow_book
where borrow_time<'2002.01.01';
运行结果:
5.找出高等教育出版社和电子工业出版社的图书信息;
(select * from book where publisher = '电子工业出版社')
union
(select * from book where publisher = '高等教育出版社');
或
SELECT *
FROM book
WHERE publisher IN('高等教育出版社','电子工业出版社');
或
SELECT *
FROM book
WHERE publisher ='高等教育出版社' OR publisher ='电子工业出版社';
运行结果:
6.查询机械工业出版社价格在15-50之间的图书的书名,价格;
select book_name,price
from book
where publisher = '机械工业出版社' AND price between 15 and 50;
运行结果:
7.查询书名中含有“数据”字样的图书信息;
select *
from book
where book_name like '%数据%';
运行结果:
8.计算3本1004号图书的总价。
select book_number,price*3 as total_price
from book
where book_number = '1004';
运行结果:
9.查询姓“张”,且姓名只有两个字的读者信息。
select *
from reader
where name like '张_';
运行结果:
10.查询总藏书量在8本以上(含8本)的计算机类图书信息。
Select *
From book
Where book_total>=8 and book.category='计算机'
运行结果:
books_db.sql:
-- 创建数据库
CREATE DATABASE IF NOT EXISTS books_db DEFAULT CHARACTER SET utf8;
use books_db ;
-- 删除表
drop table if exists borrow_book;
drop table if exists return_book;
drop table if exists book;
drop table if exists reader;
-- 创建表
CREATE TABLE book(
book_number char(10) PRIMARY KEY,
category varchar(12),
book_name varchar(30) NOT NULL,
publisher char(30) NOT NULL,
author char(10),
price numeric(6,2),
book_total int NOT NULL,
inventory int NOT NULL) ;
CREATE TABLE reader(
reader_number char(10 ) PRIMARY KEY,
name varchar(8) NOT NULL,
department char(20),
gender char(2) NOT NULL,
telephone char(15)) ;
CREATE TABLE borrow_book(
reader_number char(10) NOT NULL,
book_number char(10) NOT NULL,
borrow_time datetime NOT NULL,
PRIMARY KEY(book_number,reader_number),
FOREIGN KEY(book_number) REFERENCES book(book_number),
FOREIGN KEY(reader_number) REFERENCES reader(reader_number)
);
CREATE TABLE return_book(
reader_number char(10) NOT NULL,
book_number char(10) NOT NULL,
return_time datetime NOT NULL,
PRIMARY KEY(book_number,reader_number),
FOREIGN KEY(book_number) REFERENCES book(book_number),
FOREIGN KEY(reader_number) REFERENCES reader(reader_number)
);
-- 插入数据
INSERT INTO book
VALUES('1001','计算机','数据结构','机械工业出版社','王民',80,5,5);
INSERT INTO book
VALUES('1002','计算机','计算机应用','机械工业出版社','张建平',20,8 ,7);
INSERT INTO book
VALUES('1003','计算机','数据库技术','电子工业出版社','王敏',15,10,8);
INSERT INTO book
VALUES('1004','计算机','C语言','电子工业出版社','谭浩强',25,4,2);
INSERT INTO book
VALUES('1005','英语','应用文写作','中国人民大学出版社','张锦芯',25,10,8);
INSERT INTO book
VALUES('1006','管理','管理学','高等教育出版社','Robison',15,7,7);
INSERT INTO book
VALUES('1007','管理','工业管理','机械工业出版社','Fayol',70,9,8);
INSERT INTO book
VALUES('1008','数学','线性代数','机械工业出版社','李平',50,6,4);
INSERT INTO book
VALUES('1009','管理','公司的概念','机械工业出版社','Durark',14,8,6);
INSERT INTO book
VALUES('1010','数学','统计学','机械工业出版社','徐新国',15,11,5);
INSERT INTO reader
VALUES('1001','赵菁菁','数学院','男','81234567');
INSERT INTO reader
VALUES('1002','李勇','经济学院','男','52234564');
INSERT INTO reader
VALUES('1003','张力','管理学院','女','63234569');
INSERT INTO reader
VALUES('1004','张衡','文学院','男','74234568');
INSERT INTO reader
VALUES('1005','张向东','历史文化学院','女','35234562');
INSERT INTO reader
VALUES('1006','张向丽','物理学院','男','66234566');
INSERT INTO reader
VALUES('1007','王芳','生命科学院','女','97234563');
INSERT INTO reader
VALUES('1008','王民生','化学院','男','48234565');
INSERT INTO reader
VALUES('1009','王小民','信息学院','女','39234566');
INSERT INTO reader
VALUES('1010','李晨','计算机学院','女','50234565');
INSERT INTO borrow_book
VALUES('1003','1001','2000-01-01');
INSERT INTO borrow_book
VALUES('1002','1001','2001-01-01');
INSERT INTO borrow_book
VALUES('1005','1002','2002-03-05');
INSERT INTO borrow_book
VALUES('1008','1003','1998-06-18');
INSERT INTO borrow_book
VALUES('1003','1004','1997-12-08');
INSERT INTO borrow_book
VALUES('1010','1005','2001-05-04');
INSERT INTO borrow_book
VALUES('1001','1006','2005-07-25');
INSERT INTO borrow_book
VALUES('1006','1006','2009-07-25');
INSERT INTO borrow_book
VALUES('1010','1007','1997-11-03');
INSERT INTO borrow_book
VALUES('1009','1008','2004-02-01');
INSERT INTO borrow_book
VALUES('1008','1008','2004-06-01');
INSERT INTO borrow_book
VALUES('1004','1009','1996-09-01');
INSERT INTO borrow_book
VALUES('1008','1010','2000-06-04');
附:各表数据
(1)图书表:
书号 | 类别 | 书名 | 出版社 | 作者 | 价格 | 总藏书量 | 库存 |
1001 | 计算机 | 数据结构 | 机械工业出版社 | 王民 | 80 | 5 | 5 |
1002 | 计算机 | 计算机应用 | 机械工业出版社 | 张建平 | 20 | 8 | 8 |
1003 | 计算机 | 数据库技术 | 电子工业出版社 | 王敏 | 15 | 10 | 10 |
1004 | 计算机 | C语言 | 电子工业出版社 | 谭浩强 | 25 | 4 | 4 |
1005 | 英语 | 应用文写作 | 中国人民大学出版社 | 张锦芯 | 25 | 10 | 10 |
1006 | 管理 | 管理学 | 高等教育出版社 | Robison | 15 | 7 | 7 |
1007 | 管理 | 工业管理 | 机械工业出版社 | Fayol | 70 | 9 | 9 |
1008 | 数学 | 线性代数 | 机械工业出版社 | 李平 | 50 | 6 | 6 |
1009 | 管理 | 公司的概念 | 机械工业出版社 | Durark | 14 | 8 | 8 |
1010 | 数学 | 统计学 | 机械工业出版社 | 徐新国 | 15 | 11 | 11 |
(2)读者表:
读者编号 | 姓名 | 单位 | 性别 | 电话 |
1001 | 赵菁菁 | 数学院 | 男 | 81234567 |
1002 | 李勇 | 经济学院 | 男 | 52234564 |
1003 | 张力 | 管理学院 | 女 | 63234569 |
1004 | 张衡 | 文学院 | 男 | 74234568 |
1005 | 张向东 | 历史文化学院 | 女 | 35234562 |
1006 | 张向丽 | 物理学院 | 男 | 66234566 |
1007 | 王芳 | 生命科学院 | 女 | 97234563 |
1008 | 王民生 | 化学院 | 男 | 48234565 |
1009 | 王小民 | 信息学院 | 女 | 39234566 |
1010 | 李晨 | 计算机学院 | 女 | 50234565 |
(3)借书表:
读者编号 | 书号 | 借书时间 |
1003 | 1001 | 2000-1-1 |
1002 | 1001 | 2001-1-1 |
1005 | 1002 | 2002-3-5 |
1008 | 1003 | 1998-6-18 |
1003 | 1004 | 1997-12-8 |
1010 | 1005 | 2001-5-4 |
1001 | 1006 | 2005-7-25 |
1006 | 1006 | 2009-7-25 |
1010 | 1007 | 1997-11-3 |
1009 | 1008 | 2004-2-1 |
1008 | 1008 | 2004-6-1 |
1004 | 1009 | 1996-9-1 |
1008 | 1010 | 2000-6-4 |