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('101