SQL Server数据库技术期末大作业

  1. 题目:设计机票预定信息系统,并完成以下系统功能基本要求:
    能够实现多种关联查询
    航班基本信息的录入:航班的编号、飞机名称、机舱等级等;
    机票信息:票价、折扣、当前预售状态及经受业务员等;
    客户基本信息:姓名、联系方式、证件及号码、付款情况等;
    按照一定条件查询、统计符合条件的航班、机票等;
    要求:
    (1)数据库设计过程中,建立E-R图,然后转换为关系模型,报告中要体现出来。
    (2)文档内容中包括数据库的应用背景介绍,数据库设计方案,创建、添加、查询、修改等语句以及语句的功能说明。
    (3)SQL语句要求规范,标点正确,写查询语句(应包含单表查询、连接查询等)、视图、触发器等。
    系统完成任务:
  1. 统计航班数量。
  2. 查询旅客“李慧娟”所有的购票信息,要求输出航班号、出发城市、目的城市、机票价格和起飞时间。
  3. 统计各航班的乘客人数和机票销售额,按照乘客人数和机票销售额升序显示。
  4. 查询由北京出发的所有航班信息。
  5. 查询飞往上海的航班数、最长航线里程数、最短航线里程数、平均航线里程数以及航线总里程数。
  6. 统计每一家航空公司的平均航线里程数。
  7. 按航空公司显示所属航线的平均里程数大于800公里的分组信息。
  8. 按天统计每一家航空公司所属航线的乘客总人数和机票销售总额,按乘客数、机票销售总额升序显示。
  9. 查询使用大陆居民身份证购买到北京的机票的乘客。
  10. 查询北京发往上海折扣价格最低的航班。
  11. 查询每一家航空公司的总里程数。
  12. 查询武汉飞往北京的飞机的航班号、机型、里程数、起飞时间,并按照起飞时间排序
  13. 查询飞往上海的所有航班信息。
  14. 查询价格小于300元的机票。
--1.查询旅客“李慧娟”所有的购票信息,要求输出航班号、出发城市、目的城市、机票价格和起飞时间
SELECT Flight.FlightNumber 航班号, tocity 出发城市, fromcity 目的城市, price 价格,  departureTime 起飞时间 
FROM flight ,ticket,passenger
WHERE Flight.FlightNumber=Ticket.TflightNumber AND Passenger.PTicketNumber=Ticket.TicketNumber
AND PName IN
(select PName from Passenger
where PName='李慧娟')
--2.统计各航班的乘客人数和机票销售额,按照乘客人数和机票销售额升序显示
SELECT Flight.FlightNumber 航班, COUNT(*) 乘客人数, sum(price) 机票销售额 
FROM flight ,ticket,passenger
WHERE Flight.FlightNumber=Ticket.TflightNumber AND Passenger.PTicketNumber=Ticket.TicketNumber
GROUP BY Flight.FlightNumber 
ORDER BY 乘客人数,机票销售额

--3.查询由北京出发的所有航班信息。
SELECT * FROM flight
WHERE fromcity='北京'
--4.查询飞往上海的航班数、最长航线里程数、最短航线里程数、平均航线里程数以及航线总里程数。
SELECT COUNT(*) 航班数, mileAge 最长航线里程数, MAX(mileAge) 最短航线里程数, AVG(mileage) 平均航线里程数,SUM(mileage) 航线总里程数
FROM flight
GROUP BY mileAge
order by mileAge
--WHERE tocity='上海'

--5.统计每一家航空公司的平均航线里程数。
SELECT companyname 航空公司, AVG(mileage) 平均航线里程数 FROM flight,Company
WHERE Company.CompanyNumber=Flight.companyID
GROUP BY companyname
ORDER BY AVG(mileage)
--6.按航空公司显示所属航线的平均里程数大于800公里的分组信息。
SELECT companyname 航空公司, Flight.FlightNumber 航班, AVG(mileage) 平均里程 
FROM flight ,company
WHERE company.companynumber=Flight.CompanyID
GROUP BY companyname,Flight.FlightNumber
HAVING AVG(mileage)>800
--7.按天统计每一家航空公司所属航线的乘客总人数和机票销售总额,按乘客数、机票销售总额升序显示
SELECT companyname 航空公司,Flight.FlightNumber 航线, COUNT(*) 乘客总数, SUM(Price*discount)机票销售总额
FROM flight,Passenger,Ticket,Company
WHERE Flight.FlightNumber=Ticket.TflightNumber AND Ticket.Ticketnumber=Passenger.PTicketNumber AND Company.CompanyNumber=Flight.CompanyID
--AND companyname='中国南方航空'
GROUP BY companyname,Flight.FlightNumber
ORDER BY COUNT(*),SUM(price)

--8.查询使用大陆居民身份证购买到北京的机票的乘客
Select Passenger.*,Ticket.*
from Passenger,Ticket,Flight
WHERE Passenger.IdentityStyle='大陆居民身份证' and Flight.tocity='北京'

--9.查询北京发往上海折扣价格最低的航班
Select Flight.*,Ticket.discount
from Ticket,Flight
WHERE Flight.tocity='上海' and Flight.Fromcity='北京'
order by Ticket.discount*Price

--10.查询每一家航空公司的总里程数
SELECT  COUNT(*) 乘客总数, SUM(price) 机票销售总额
FROM flight,passenger,Ticket,Company;
SELECT companyname 航空公司名称,mileAge 里程数 FROM flight ,Company
WHERE Company.CompanyNumber=Flight.CompanyID
ORDER BY 里程数

/*11.查询武汉飞往北京的飞机的航班号、机型、里程数、起飞时间,并按照起飞时间排序*/
SELECT FlightNumber 航班号, FlightName 机型, fromCity 始发地, tocity 目的地, mileage 里程数,departureTime 起飞时间 
FROM Flight
WHERE fromcity='武汉' AND tocity='北京'
ORDER BY 起飞时间
/*12.查询飞往上海的所有航班信息。*/
SELECT * FROM flight 
WHERE tocity='上海'
/*13.查询价格小于300元的机票*/
SELECT Price 价格,discount 折扣 ,condition 经受状态,worker 受理工作人员
FROM Ticket
WHERE Price<3000

你可能感兴趣的:(作业实验报告,sql,数据库)