数据库 单表查询

在答案除处粘贴每道题目、以及对应的sql语句。

1.查询图书的名字、出版社、价格

2.查询所有图书的书名和价格上涨20%后的价格,并为涨价后的价格列指定新列名“new_price”

  1. 查询图书中所有出版社的名字,每个出版社只显示一次

条件查询:

  1. 查询出版日期在2006年1月1日以后的图书信息

  2. 查询所有清华大学出版社出版的图书名字、作者、出版社、出版日期

  3. 查询名字以“计算机”开头的图书信息

  4. 查询价格在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 ='科学出版社';
上一篇:设计模式-生产者消费者模式


下一篇:Mysql计算字段