--PUBS
--1查找名称以'A'字符开头的出版社; SELECT *
FROM publishers
WHERE pub_name LIKE 'A%'
--2统计各类图书的平均价格,并按平均价格进行排序; SELECT type,AVG(price) 平均价格 FROM titles GROUP BY type ORDER BY 平均价格
--3列出作者标识以1-5开头的所有作者所在城市的出版社的名称 SELECT P.pub_name FROM publishers P WHERE P.city IN( SELECT P.city FROM authors A
WHERE au_id LIKE '[12345]%' )
SELECT P.pub_name
FROM authors A JOIN publishers P ON A.city=P.city WHERE A.au_id LIKE '[1-5]%'
--4列出一次订购量大于图书当年销售量%的书店标识及图书标识 SELECT S.stor_id,T.title_id FROM titles T,sales S
WHERE T.title_id=S.title_id AND S.qty>T.ytd_sales*0.05
--5查询出版社为'Scootney Books'的所有图书(采用IN子查询实现) SELECT * FROM titles WHERE pub_id IN( SELECT pub_id FROM publishers
WHERE pub_name='Scootney Books' )
--6从titles和publishers表查询每个出版社出版的所有图书的平均单价(采用表别名) SELECT P.pub_name 出版社, AVG(T.price) 平均单价 FROM titles T,publishers P WHERE T.pub_id=P.pub_id
GROUP BY P.pub_name
--7查询titles表中1991年所出版的business类图书及价格 SELECT title,price FROM titles
WHERE type='business' AND YEAR(pubdate)=1991 --8列出书价高于$15或低于$5、且当年销售量大于的图书。 SELECT * FROM titles
WHERE BETWEEN $5 AND $15 AND ytd_sales>5000
--9按图书类别分组统计图书的平均价格,但排除那些包括的图书数量少于种的图书类别; SELECT type,AVG(price) FROM titles GROUP BY type
HAVING COUNT(title)>=2
--10显示publishers表的country列值(消除重复值); SELECT DISTINCT country FROM publishers
--11查询书价高于$20的图书及其价格; SELECT title,price FROM titles WHERE price>$20
--12从authors和publishers表中查询出所有的city和state(联合查询) SELECT city,state FROM authors UNION
SELECT city,state FROM publishers
--13查询书价在$10~$30范围内的图书 SELECT * FROM titles
WHERE price BETWEEN 10 AND 30
--14从titles表中查询所有满足下面条件的图书: 图书的出版社编号(pub_id)小于出版 -----社名称(pub_name)为'Ramona Publishers'的出版社编号(pub_id) SELECT * FROM titles T WHERE pub_id<( SELECT pub_id FROM publishers P
WHERE P.pub_name='Ramona Publishers')
--15列出authors和publishers表中位于同一城市的作者和出版社 SELECT A.au_lname,A.au_fname,P.pub_name
FROM authors A,publishers P WHERE A.city IN(
SELECT publishers.city FROM publishers )
--16 列出business类的图书名称和价格,价格降序显示, ----价格相同时按书名升序排列 SELECT title ,price FROM titles
ORDER BY price DESC,title ASC
--17统计popular_comp类图书的明细及平均价格和价格总和; SELECT * FROM titles
WHERE type='popular_comp' ORDER BY type
COMPUTE AVG(price),SUM(price) BY type
--18统计图书类别以'A-D'开头的各出版社的图书的明细及平均价格。 SELECT * FROM titles
WHERE type LIKE '[A-D]%' ORDER BY pub_id COMPUTE AVG(price) BY pub_id
--19显示discounts表中的前行
SELECT TOP 2 discounttype,stor_id,lowqty,highqty,discount FROM discounts
--20列出图书当年销售量大于的图书名称; SELECT title FROM titles
WHERE ytd_sales>10000
--21从titles和publishers表查询所有出版社的图书出版情况(包括尚未出版过图书的出版社)
SELECT titles.*,publishers.*
FROM titles FULL OUTER JOIN publishers
ON titles.pub_id=publishers.pub_id --22列出作者标识以-5开头的所有作者所在城市的出版社的名称 SELECT pub_name FROM publishers WHERE city IN(
SELECT city
FROM authors
WHERE au_id LIKE '[1-5]%' )
--23 从sales和titles表中查询所有图书的出售情况(采用右链接查询包括尚未出售过的图书)
SELECT *
FROM sales RIGHT OUTER JOIN titles
ON sales.title_id=titles.title_id --24 列出publishers表中社址在德国和法国的出版社的名称; SELECT pub_name FROM publishers
WHERE country='德国' OR country='法国'
--25显示publishers表中的前%行
SELECT TOP 2 PERCENT P.city,P.country,P.pub_id,P.pub_name,P.state FROM publishers P --27查找目前仍未定价的图书 SELECT * FROM titles
WHERE price IS NULL
--28从titles表中查询已经出售过(存在于sales表)的图书(采用EXISTS子查询实现) SELECT * FROM titles WHERE EXISTS( SELECT * FROM sales )
--29显示discounts表中所有列的数据; SELECT * FROM discounts
--30统计BUSINESS类图书的平均价格 SELECT AVG(price) FROM titles
WHERE type='BUSINESS'
--31只显示discounts表中每种折扣的幅度及其名称 SELECT discount,discounttype FROM discounts
--32从titles和publishers表中查询每本书的书名和它的出版社名称 SELECT T.title,P.pub_name FROM titles T,publishers P WHERE T.pub_id=P.pub_id
--33列出authors和publishers表中的所有作者和出版社及它们所在的城市 SELECT
authors.au_lname,authors.au_fname,publishers.pub_name,authors.city,publishers.city
FROM authors FULL OUTER JOIN publishers
on authors.au_id=publishers.pub_id ---有问题可能不对
--34统计各类图书的明细及平均价格和价格总和 SELECT * FROM titles ORDER BY type
COMPUTE AVG(price),SUM(price) BY type
--XSXK
USE XSXK
--1计算学号为\的学生的考试总成绩之和 SELECT SUM(Grade)成绩之和 FROM SC
WHERE Sno =04110650402
--2查询不属于信管系和计算机系的学生 SELECT * FROM Student
WHERE Sdept ='数学系'OR Sdept ='信息系'
--3查询选修课程名称是VB的学生的情况,要求列出学生姓名和所在系 SELECT Sname 学生姓名,Sdept 所在系 FROM Student WHERE Sno IN (SELECT Sno FROM SC WHERE Cno IN (SELECT Cno FROM Course
WHERE Cname ='VB'))
--4查询选修了“C02”课程的学生的姓名及其成绩,查询结果按成绩降序排列 SELECT Student.Sname 姓名,SC.Grade 成绩 FROM SC,Student
WHERE SC.Sno =Student.Sno AND SC.Cno ='C02' ORDER BY Grade DESC
--5使用多表连接,查询成绩大于分的学生的学号和姓名 SELECT Student.Sno 学号,Student.Sname 姓名
FROM Student JOIN SC ON Student.Sno =SC.Sno WHERE SC.Grade >90
--6把Course表的所有记录显示出来,并且列名用汉字表示 SELECT Cno 课程编号,Cname 课程名称,Ccredit 学分 FROM Course --7统计学生总人数