--1. 搜索pubs数据库中的titles表,返回书的价格打了8折后仍大于12美元的书的代号、种类、书的原价。
SELECT TITLE_ID,[TYPE],PRICE FROM TITLES WHERE PRICE*0.8>12
--2. 查询pubs数据库中titles表价格在10-20美元之间且种类为business或popular_comp的所有图书。(两种方法)
SELECT * FROM TITLES WHERE PRICE BETWEEN 10 AND 20 AND (TYPE='business' OR TYPE='popular_comp')
SELECT * FROM TITLES WHERE PRICE >=10 AND PRICE<=20 AND TYPE IN('business','popular_comp')
--3. 查询pubs数据库中titles表,查找价格小于15,大于20的书的书号,种类,价格。(使用两种方法)
SELECT * FROM TITLES WHERE PRICE >15 AND PRICE <20
--4. 查询titles表中没有价格的图书。
SELECT * FROM TITLES WHERE PRICE IS NULL AND PRICE <>''
--5. 找出pubs数据库titles表中价格最高的图书的价格。
SELECT MAX(PRICE) FROM TITLES
--6. 使用pubs表,按照州进行分类,查找每个州有几名作者
SELECT STATE, COUNT(*) FROM AUTHORS GROUP BY STATE
--7. 在pubs数据库的titles表中,找出平均价格大于18美元的书的种类
SELECT TYPE FROM TITLES GROUP BY TYPE HAVING AVG(PRICE)>18
--8. 查询pubs数据库中每个作者的编号,姓名,所出的书的编号,并对结果排序。
SELECT A.AU_ID,A.AU_FNAME+'.'+A.AU_LNAME,T.TITLE FROM AUTHORS A
JOIN TITLEAUTHOR TA ON A.AU_ID = TA.AU_ID
JOIN TITLES T ON T.TITLE_ID = TA.TITLE_ID
ORDER BY A.AU_ID DESC
--9. 查找由位于以字母 B 开头的城市中的任一出版商出版的书名(使用exists和in两种方法)
SELECT * FROM TITLES WHERE PUB_ID IN(SELECT PUB_ID FROM PUBLISHERS WHERE CITY LIKE 'B%' )
--10. 更新titles表,把所有计算机类的图书的价格提高20%;
SELECT * FROM TITLES
UPDATE TITLES SET PRICE = PRICE*(1+0.2) WHERE TYPE = 'popular_comp'
--11. 找出pubs数据库titles表中计算机类图书中价格最高的图书的价格。
SELECT MAX(PRICE) FROM TITLES WHERE TYPE='popular_comp'
--12. 查询titles表中有几类图书。
SELECT DISTINCT TYPE FROM TITLES --COUNT(DISTINCT TYPE)
--13. 查询pub数据库的titles表,按书的种类分类,求出每种类型的书的平均价格
SELECT AVG(PRICE) FROM TITLES GROUP BY TYPE
--14. 查询pubs数据库authors表,要求按照州进行分类,查找每个州有几名作者。
--15. 查询pubs数据库titles表,要求按照出版商id进行分类,查找每个出版商的书到目前为止的销售额总和(ytd_sales)
SELECT PUB_NAME, SUM(PRICE*YTD_SALES) FROM TITLES T
JOIN PUBLISHERS P ON T.PUB_ID = P.PUB_ID GROUP BY P.PUB_ID,P.PUB_NAME
--16. 查询得到本年度截止到目前的销售额超过 $40,000 的出版商。
SELECT PUB_ID FROM TITLES GROUP BY PUB_ID HAVING SUM(PRICE*YTD_SALES)>40000
--17. 查询价格超过10美元的书的种类,以及他们的平均价格。
SELECT AVG(PRICE) FROM TITLES WHERE PRICE >10 GROUP BY TYPE
--18. 查询价格超过10美元的书的种类,以及他们的平均价格并找出平均价格大于18美元的书的种类。
SELECT TYPE FROM TITLES WHERE PRICE >10 GROUP BY TYPE HAVING AVG(PRICE)>18
--19. 在pubs数据库的titles表中,找出平均价格大于18美元的书的出版商id。
SELECT PUB_ID FROM TITLES GROUP BY PUB_ID HAVING AVG(PRICE)>18
--20. 在pubs数据库的titles表中,找出最高价格大于20美元的书的种类
SELECT TYPE FROM TITLES GROUP BY TYPE HAVING MAX(PRICE)>20
SELECT TITLE_ID,[TYPE],PRICE FROM TITLES WHERE PRICE*0.8>12
--2. 查询pubs数据库中titles表价格在10-20美元之间且种类为business或popular_comp的所有图书。(两种方法)
SELECT * FROM TITLES WHERE PRICE BETWEEN 10 AND 20 AND (TYPE='business' OR TYPE='popular_comp')
SELECT * FROM TITLES WHERE PRICE >=10 AND PRICE<=20 AND TYPE IN('business','popular_comp')
--3. 查询pubs数据库中titles表,查找价格小于15,大于20的书的书号,种类,价格。(使用两种方法)
SELECT * FROM TITLES WHERE PRICE >15 AND PRICE <20
--4. 查询titles表中没有价格的图书。
SELECT * FROM TITLES WHERE PRICE IS NULL AND PRICE <>''
--5. 找出pubs数据库titles表中价格最高的图书的价格。
SELECT MAX(PRICE) FROM TITLES
--6. 使用pubs表,按照州进行分类,查找每个州有几名作者
SELECT STATE, COUNT(*) FROM AUTHORS GROUP BY STATE
--7. 在pubs数据库的titles表中,找出平均价格大于18美元的书的种类
SELECT TYPE FROM TITLES GROUP BY TYPE HAVING AVG(PRICE)>18
--8. 查询pubs数据库中每个作者的编号,姓名,所出的书的编号,并对结果排序。
SELECT A.AU_ID,A.AU_FNAME+'.'+A.AU_LNAME,T.TITLE FROM AUTHORS A
JOIN TITLEAUTHOR TA ON A.AU_ID = TA.AU_ID
JOIN TITLES T ON T.TITLE_ID = TA.TITLE_ID
ORDER BY A.AU_ID DESC
--9. 查找由位于以字母 B 开头的城市中的任一出版商出版的书名(使用exists和in两种方法)
SELECT * FROM TITLES WHERE PUB_ID IN(SELECT PUB_ID FROM PUBLISHERS WHERE CITY LIKE 'B%' )
--10. 更新titles表,把所有计算机类的图书的价格提高20%;
SELECT * FROM TITLES
UPDATE TITLES SET PRICE = PRICE*(1+0.2) WHERE TYPE = 'popular_comp'
--11. 找出pubs数据库titles表中计算机类图书中价格最高的图书的价格。
SELECT MAX(PRICE) FROM TITLES WHERE TYPE='popular_comp'
--12. 查询titles表中有几类图书。
SELECT DISTINCT TYPE FROM TITLES --COUNT(DISTINCT TYPE)
--13. 查询pub数据库的titles表,按书的种类分类,求出每种类型的书的平均价格
SELECT AVG(PRICE) FROM TITLES GROUP BY TYPE
--14. 查询pubs数据库authors表,要求按照州进行分类,查找每个州有几名作者。
--15. 查询pubs数据库titles表,要求按照出版商id进行分类,查找每个出版商的书到目前为止的销售额总和(ytd_sales)
SELECT PUB_NAME, SUM(PRICE*YTD_SALES) FROM TITLES T
JOIN PUBLISHERS P ON T.PUB_ID = P.PUB_ID GROUP BY P.PUB_ID,P.PUB_NAME
--16. 查询得到本年度截止到目前的销售额超过 $40,000 的出版商。
SELECT PUB_ID FROM TITLES GROUP BY PUB_ID HAVING SUM(PRICE*YTD_SALES)>40000
--17. 查询价格超过10美元的书的种类,以及他们的平均价格。
SELECT AVG(PRICE) FROM TITLES WHERE PRICE >10 GROUP BY TYPE
--18. 查询价格超过10美元的书的种类,以及他们的平均价格并找出平均价格大于18美元的书的种类。
SELECT TYPE FROM TITLES WHERE PRICE >10 GROUP BY TYPE HAVING AVG(PRICE)>18
--19. 在pubs数据库的titles表中,找出平均价格大于18美元的书的出版商id。
SELECT PUB_ID FROM TITLES GROUP BY PUB_ID HAVING AVG(PRICE)>18
--20. 在pubs数据库的titles表中,找出最高价格大于20美元的书的种类
SELECT TYPE FROM TITLES GROUP BY TYPE HAVING MAX(PRICE)>20