在答案除处粘贴每道题目、以及对应的sql语句。
1.查询图书的名字、出版社、价格
2.查询所有图书的书名和价格上涨20%后的价格,并为涨价后的价格列指定新列名“new_price”
- 查询图书中所有出版社的名字,每个出版社只显示一次
条件查询:
-
查询出版日期在2006年1月1日以后的图书信息
-
查询所有清华大学出版社出版的图书名字、作者、出版社、出版日期
-
查询名字以“计算机”开头的图书信息
-
查询价格在20到30之间的图书信息
8.查询价格在40元以上,或者2006年以后出版的图书名字、作者、出版社、出版日期、价格
9.查询出版社为清华大学出版社、科学出版社的图书名字、出版社、价格
附件为建表的语句,本次实验仅用到图书表,因此只需要创建图书表,并插入图书信息即可。
所需代码如下:
--创建图书数据库
CREATE DATABASE library
--使用图书数据库
USE library
--创建图书表:book表
CREATE TABLE book
(
book_id varchar(8) PRIMARY KEY,
book_name varchar(50) NULL,
author varchar(30) NULL,
press varchar(50) NULL,
press_date datetime NULL,
flag_borrow varchar(1) NULL,
price money NULL
)
--创建职员信息表clerk
CREATE TABLE clerk
(
clerk_id VARCHAR(8) PRIMARY KEY,
clerk_name VARCHAR(8) NULL,
id_card VARCHAR(18) NULL,
clerk_password VARCHAR(30) NULL,
officer VARCHAR(30) NULL
)
--创建读者信息表reader
CREATE TABLE reader
(
reader_id VARCHAR(8) PRIMARY KEY,
reader_name VARCHAR(8) NULL,
id_card VARCHAR(18) NULL,
maxnum_can_borrow SMALLINT NULL,
flag_borrow VARCHAR(2) NULL
)
--创建图书借还信息表borrow
CREATE TABLE borrow
(
id INT IDENTITY(1,1) NOT NULL,
reader_id VARCHAR(8),
book_id VARCHAR(8),
borrow_date DATETIME NULL,
b_clerk_id VARCHAR(8) NULL,
r_clerk_id VARCHAR(8) NULL,--还书员工号
return_date DATETIME NULL,
flag_return CHAR(2) NULL,
CONSTRAINT FK_BORROW_READER FOREIGN KEY(reader_id) REFERENCES reader(reader_id),
CONSTRAINT FK_BORROW_BOOK FOREIGN KEY(book_id) REFERENCES book(book_id),
CONSTRAINT FK_BORROW_CLERK FOREIGN KEY(b_clerk_id) REFERENCES clerk(clerk_id),
CONSTRAINT FK_RETURN_CLERK FOREIGN KEY(r_clerk_id) REFERENCES clerk(clerk_id)
)
INSERT INTO BOOK
(book_id,book_name,author,press,press_date,flag_borrow,price)
VALUES
('13020889','局域网设计教程','王宝智','清华大学出版社','2004-8-1','Y',27.00)
INSERT INTO BOOK VALUES ('10201001','操作系统原理','苏光亮','清华大学出版社','2006-8-1','Y',46.00)
INSERT INTO BOOK VALUES ('10300649','计算机网络','华陪','科学出版社','2003-7-20','Y',29.00)
INSERT INTO BOOK VALUES ('10300715','计算机图形学','刘世光','机械出版社','2005-2-11','Y',30.00)
INSERT INTO BOOK VALUES ('10301174','算法设计','刘景','机械出版社','2000-9-1','Y',19.00)
INSERT INTO BOOK VALUES ('10310518','计算机组成原理','白中英','科学出版社','2009-12-1','Y',50.00)
INSERT INTO BOOK VALUES ('10301210','C语言程序设计','汪大菊','科学出版社','2006-8-1','Y',46.00)
INSERT INTO BOOK VALUES ('10301001','软件工程','饶国政','清华大学出版社','2002-8-1','Y',28.00)
INSERT INTO BOOK VALUES ('10301215','JAVA程序设计','朱喜福','清华大学出版社','2010-5-1','Y',35.00)
---------------------------------
--向读者表中插入数据
---------------------------------
INSERT INTO reader VALUES('093001','刘芳',NULL,5,'Y')
INSERT INTO reader VALUES('093002','李玲',NULL,5,'Y')
INSERT INTO reader VALUES('093003','王佳宏',NULL,5,'Y')
INSERT INTO reader VALUES('093004','刘洪昌',NULL,5,'Y')
INSERT INTO reader VALUES('093005','王丽睿',NULL,5,'Y')
---------------------------------
--向职员表中插入数据
---------------------------------
INSERT INTO clerk VALUES('092001','王俊','150233198008283456','123456','管理员')
INSERT INTO clerk VALUES('092002','李佳','120512197609011234','123456','职员')
INSERT INTO clerk VALUES('092003','赵强','130523198206011235','123456','职员')
INSERT INTO clerk VALUES('092004','刘永','161612197909018631','123456','职员')
INSERT INTO clerk VALUES('092005','张倩','182512197806011235','123456','职员')
---------------------------------
--修改图书表中某图书的借阅状态
---------------------------------
UPDATE book SET flag_borrow = 'N' WHERE book_id = '10310518'
UPDATE book SET flag_borrow = 'N' WHERE book_id = '13020889'
---------------------------------
--向借阅表中插入数据
---------------------------------
INSERT INTO borrow (reader_id,book_id,borrow_date,b_clerk_id,r_clerk_id,return_date,flag_return)
VALUES('093001','10301001','2010-12-28','092002','092003','2011-2-28','Y')
INSERT INTO borrow (reader_id,book_id,borrow_date,b_clerk_id,r_clerk_id,return_date,flag_return)
VALUES('093002','10300715','2011-3-1','092005','092003','2011-3-25','Y')
INSERT INTO borrow (reader_id,book_id,borrow_date,b_clerk_id,r_clerk_id,return_date,flag_return)
VALUES('093002','10310518','2011-3-5','092005','092001',NULL,'N')
INSERT INTO borrow (reader_id,book_id,borrow_date,b_clerk_id,r_clerk_id,return_date,flag_return)
VALUES('093004','13020889','2011-3-20','092004','092005',NULL,'N')
INSERT INTO borrow (reader_id,book_id,borrow_date,b_clerk_id,r_clerk_id,return_date,flag_return)
VALUES('093004','10301174','2011-2-28','092004','092002','2011-3-20','Y')
INSERT INTO borrow (reader_id,book_id,borrow_date,b_clerk_id,r_clerk_id,return_date,flag_return)
VALUES('093005','10301215','2011-3-8','092005','092004','2011-3-24','Y')
代码给大家啦。
SELECT book_name,press,price
FROM book
SELECT book_name,price*1.2new_price
FROM book
/*查询书中所有出版社的名字,每个出版社只出现一次*/
SELECT DISTINCT press
FROM book
/*查询出版日期在2006年1月1日以后的图书信息*/
SELECT *
FROM book
WHERE press_date>2006-01-01;
/*查询所有清华大学出版社的图书名字、作者、出版社、出版日期*/
SELECT book_name,author,press,press_date
FROM book
WHERE (press='清华大学出版社');
/*查询名字以“计算机”开头的图书信息*/
SELECT *
FROM book
WHERE book_name like '计算机%';
/*查询价格在20-30之间的图书信息*/
SELECT *
FROM book
WHERE price >20 and price<30;
/*查询价格在40元以上,或者2006年以后出版的图书名字,作者,出版社
出版日期,价格*/
SELECT *
FROM book
WHERE price >40 and press_date>2006-00-00;
/*查询出版社为清华大学出版社,科学出版社的图书名字,出版社,价格*/
SELECT *
FROM book
WHERE press='清华大学出版社'or press ='科学出版社';