• 实验目的及内容

1、熟悉和掌握数据表中数据的插入、修改、删除操作和命令的使用;加深理解表的定义对数            据更新的作用;

2、对已经建立的数据库进行修改、删除、插入等操作;

3、掌握关系数据库的各种查询方法,理解其含义,包括嵌套查询、连接查询等;

4、对关系数据库进行查询,包括嵌套查询、连接查询;

  • 实验环境

    硬件平台:PC;

    软件平台:Windows 2000 / MICROSOFT SQLSERVER;

  • 实验内容

    数据更新:

    对已建好的各表输入适当的数据并练习数据的删除和修改,注意检测键码约束、外码约束、非空约束、唯一约束、取值约束等各种约束在输入数据及数据的删除、修改时的作用,结合课堂教学体会其含义。

  •    实验步骤
    • 1.建表
    • 2.插入数据
    • 3.查询语句
    • 4.查询结果
  • 总结

对于建表,有两个问题,一是在建表过程中重复建表,导致出现错误,二是建表是没有标记主键,标记主键时用primary key();注意建表顺序,先后顺序是不一样的;查询时应注意对应的表的关键字段,通过这次作业练习查询,让我有了更深的印象。切实的感觉到了自身的提高,此次学习,使自己的理论基础有了比较明显的提高,进一步增强了学习理论的自觉性与坚定性,希望能学习好数据库系统这门科目。

1.建表

代码如下(示例):


2.插入数据

代码如下(示例):

INSERT INTO Member VALUES
('M001','符柳欣','女',1983/5/21,18383111234,'陕西西安'),
('M002','许梦凡','女',1967/10/22,18585111234,'北京'),
('M003','陈俊龙','男',1974/4/15,18787111234,'河南郑州'),
('M004','陈燕','女',1986/3/10,18987111234,'四川成都'),
('M005','吴乾柱','男',1978/6/8,19118111234,'湖北武汉'),
('M006','周颖','女',1977/10/26,19383111234,'上海'),
('M007','许梦凡','女',1994/7/8,19585111234,'浙江杭州'),
('M008','刘天州','男',1987/10/9,15051511234,'江苏苏州'),
('M009','林国媚','女',1990/6/16,15151511234,'广东广州'),
('M010','吴乾柱','男',1989/2/24,15252521234,'湖南长沙'),
('M011','刘立','男',1980/5/31,15353531234,'安徽合肥'),
('M012','黄大山','男',1978/4/10,15757111234,'辽宁大连');INSERT INTO Route VALUES
('DHI01','三亚风情游',7,20000,'日月湾、猴岛、天涯海角、大东海海滩、亚龙湾森林公园,费用包含往返机票,全程五星酒店及正餐费用'),
('DSN01','陕西历史文化游',5,5000.00 ,'大雁塔、钟楼、鼓楼、回民街、兵马俑、骊山、华清池、明城墙等,双卧天晚,四星酒店含早餐'),
('DSN02','陕北红色之旅',4,4000.00 , '西安、洛川、延安、子长、榆林、绥德,枣园旧址,杨家岭旧址,王家坪旧址等'),
('DXJ01','新疆丝路游',15,13000,'天山、高昌古城、吐鲁番、喀纳斯湖、博斯腾湖、魔鬼城等,全程自驾包车'),
('DYN01','七彩云南'    ,7,10000.00 ,'昆明、大理、丽江、版纳双飞,纯玩,全程酒店五星带游泳池。费用包含往返机票,不含景点门票费'),
('IAS01','钟爱新马泰',7,18000.00 ,'曼谷大皇宫、芭提雅、云顶高原、独立广场等景点。费用含往返机票、标准四星级酒'),
('IAS02','日韩日游',6,    9000.00 ,'北海道,富士山,首尔、济州岛,釜山。不含机票价格,费用包含全程四星级酒店及正餐费用'),
('IEU01','欧洲周游',14    ,40000.00 ,'包括凡尔赛宫、塞纳河、比萨斜塔、圣彼得大教堂、斗兽场、铁力士雪山、卢塞恩等。费用包含往返机票,全程欧洲-4星级标准酒店及早餐,包含景点门票费用及旅游人身意外险'),
('IEU02','俄罗斯日游',8,12000.00, '包括莫斯科红场、贝加尔湖、圣彼得堡冬宫博物馆、莫斯科克里姆林宫等景点。费用包含往返机票,精选三星酒店'),
('ISN01','北美风情游',14,38000.00,'黄石公园、渔人码头、拉斯维加斯、好莱坞、大峡谷国家森林公园、尼亚加拉大瀑布、夏威夷群岛等。费用含酒店住宿、正餐费用,不含往返机票');
INSERT INTO Plans VALUES
('P00001','IEU01','2021-01-10',0.85,40),
('P00002','IEU02','2021-01-15',1,30),
('P00003','ISN01','2021-01-10',0.95,18),
('P00004','ISN01','2021-01-20',0.88,20),
('P00005','IAS01','2021-01-28',0.95,45),
('P00006','IEU01','2021-03-10',0.98,30),
('P00007','DSN01','2021-04-01',1,45),
('P00008','DSN02','2021-06-10',0.75,60),
('P00009','DSN02','2021-07-01',1,50),
('P00010','DXJ01','2021-07-01',0.9,35),
('P00011','IAS02','2021-07-05',0.75,60),
('P00012','DXJ01','2021-08-01',1,25),
('P00013','DYN01','2021-08-01',1,30),
('P00014','DSN01','2021-08-02',1,50),
('P00015','DYN01','2021-09-01',0.9,40),
('P00016','DXJ01','2021-09-10',0.85,20),
('P00017','DYN01','2021-10-03',0.75,15),
('P00018','DSN01','2021-10-08',0.8,40),
('P00019','DHI01','2021-11-10',0.9,30),
('P00020','IEU02','2021-11-11',0.95,40),
('P00021','DHI01','2021-12-20',0.8,20),
('P00022','IAS01','2021-12-28',0.9,25),
('P00023','IAS02','2021-12-28',0.65,50);INSERT INTO Booking VALUES
('M001','P00001',2),
('M001','P00019',2),
('M002','P00003',6),
('M002','P00021',4),
('M003','P00005',3),
('M004','P00004',5),
('M004','P00016',5),
('M005','P00004',7),
('M006','P00011',4),
('M007','P00013',4),
('M008','P00003',6),
('M008','P00007',6),
('M008','P00016',6),
('M009','P00003',6),
('M010','P00007',6),
('M010','P00020',6),
('M011','P00021',3),
('M012','P00004',4);


3.查询

代码如下(示例):

--4.3.1单表查询
--1.查询所有旅游线路的名称和天数及价格
select Rname,Rday,Rprice
from Route--2.查询全体会员的姓名及其年龄
select Mname,YEAR(GETDATE())-YEAR (Mbirth)  AS 'Mage'
from Member--3.消除取值重复的行
select distinct Mno
from Booking--4.查询旅行天数为8天的线路信息
select *
from Route
where Rday=8--5.查询价格在10000到20000之间的线路信息,并按价格升序排序
select *
from Route
where Rprice BETWEEN 10000 AND 20000
order by Rprice ASC--6.查询报名旅游计划编号为P00001、P00002、P00003的会员编号
select distinct Mno
from Booking
where Pno in('P00001','P00002','P00003')--7.查询所有欧洲旅行线路的名称,报价和线路介绍
select Rname,Rprice,Rdetails
from Route
where SUBSTRING(Rno,2,2)='EU'--8.查询所有刘姓会员的姓名、性别和电话
select Mname,Msex,Mtel
from Member
where Mname like '刘%'--9.查询报名了两项及以上旅行计划的会员编号及项数
select Mno,COUNT(Pno)
from Booking
GROUP BY Mno
HAVING COUNT(*)>=2--4.3.2连接查询
--1.查询报旅游团的会员详细信息
select distinct Booking.Mno,Member.Mname,Member.Msex,Member.Mbirth,Member.Mtel,Member.Maddress
from Booking,Member
where Booking.Mno=Member.Mno--2.查询所有开团计划编号、名称、开始日期、折后价格并按价格升序显示
select Plans.Pno,Route.Rname,Plans.Pstart,Route.Rprice*Plans.Pdiscount
from Plans,Route
where Route.Rno=Plans.Rno
order by Pdiscount ASC--3.查询每个会员的编号、姓名、所报旅行路线名称及开团日期
select Booking.Mno,Member.Mname,Route.Rname
from Booking,Member,Route,Plans
where Booking.Mno=Member.Mnoand Plans.Pno=Booking.Pnoand Plans.Rno=Route.Rno--4.查询姓名为“符柳欣”的会员报名的旅行线路总价
select SUM(Rprice) as '总价'
from Route,Member,Booking,Plans
where Member.Mname='符柳欣'and Booking.Mno=Member.Mnoand Booking.Pno=Plans.Pnoand Plans.Rno=Route.Rno--4.3.3嵌套查询
--1.查询与"M002"报名相同旅行计划的会员编号、旅行安排代码及报名人数
select Mno,Pno,Bnum
from Booking
where Pno in(select Pnofrom Bookingwhere Mno='M002')--2.查询报了“三亚风情游”的会员编号,姓名和电话
select Member.Mno,Member.Mname,Member.Mtel
from Member,Booking
where Member.Mno=Booking.Mnoand Booking.Pno in(select Pnofrom Planswhere Rno in(select Rnofrom Routewhere Rname='三亚风情游'))--3.查询所有选择了“P00003”的会员姓名
select Member.Mname
from Member
where exists(select *from Bookingwhere Booking.Mno=Member.Mnoand Booking.Pno='P00003')--4.查询报名人数比选择“P00004”报名人数少的会员编号、旅行安排代码、报名人数
select distinct Mno,Pno,Bnum
from Booking
where Bnum< all(select Bnumfrom Bookingwhere Pno='P00004')--5.用聚集函数查询报名人数比选择“P00004”的任意报名人数少的会员编号、旅行计划代码、报名人数
select distinct Mno,Pno,Bnum
from Booking
where Bnum<(select MIN(Bnum)from Bookingwhere Pno='P00004')--4.3.4集合查询
--1.查询报名“P00003”或者“P00004”的会员编号、计划编号和报名人数
select *
from Booking
where Pno='P00003'
union
select *
from Booking
where Pno='P00004'--2.查询即报名“P00003”又“P00004”的会员编号
select Mno
from Booking
where Pno='P00003'
intersect
select Mno
from Booking
where Pno='P00004'--3.查询报名“P00004”与报名人数不大于5的会员的差集
select Mno
from Booking
where Pno='P00004'
except
select Mno
from Booking
where Bnum<5--基于派生表的查询
--1.查询目前各个团编号、名称、报名总人数、以及空缺名额数
select Sum_Plan.Pno as 开团编号,Route.Rname as 线路名称,Plans.Pstart as 开团日期,Sum_Plan.Sum_Renshu as 已报名人数,Plans.Ptop-Sum_Plan.Sum_Renshu as 空缺名额
from Route,Plans,(Select Pno,Sum(Bnum) from Bookinggroup by Pno) as Sum_Plan(Pno,Sum_Renshu)
where Route.Rno=Plans.Rnoand Plans.Pno=Sum_Plan.Pno

4.查询结果

 

注:如有错误,请大家指出改正,看到点个赞或者收藏都是对我莫大的鼓励~谢谢,希望大家学习愉快!

数据库系统实验设计P63页例题及解析相关推荐

  1. php采集今日头条出现问题,PHP采集今日头条内容页时,解析页面上的JS转为json

    <PHP采集今日头条内容页时,解析页面上的JS转为json>要点: 本文介绍了PHP采集今日头条内容页时,解析页面上的JS转为json,希望对您有用.如果有疑问,可以联系我们. 在采集今日 ...

  2. 计组期末复习之例题与解析

    计组例题与解析 第一章:概论 无 第二章:运算方法和运算器 例2-1 求补码 对于正数,不变 对于负数,符号位不变,数值位取反加一 例2-2 数轴形式表示原码.反码.补码范围 第一位符号位,后面是数值 ...

  3. c语言raptor函数,RAPTOR程序设计例题参考解析.doc

    RAPTOR程序设计例题参考解析 RAPTOR程序设计 一.顺序结构编程 1.输入任意一个华氏温度值,然后将其转换成摄氏温度输出.算法:c = 5 / 9 (f - 32) 2.输入任意三角形的三边之 ...

  4. 分解例题及解析_【高考物理】考前梳理,高中物理经典常考例题(带解析),收藏起来考试不低于90+!...

    物理应该是理综里最让同学们头疼的一科.最后的压轴大题更是让很多人不知道该怎么下手,题型复杂难理解,简直是丢分"小能手". 别怕!学姐来拯救你们了!高中物理经典常考例题(带解析),考 ...

  5. Django--网页管理实例解析

    此篇为代码流程的注释以及自己写的小项目的思路: 首先是项目的路由配置: 1 urlpatterns = [ 2 # url(r'^admin/', admin.site.urls), 3 url(r' ...

  6. NCRE 四级数据库工程师教程,例题加解析,干货

    干货 1.下列关于数据库基本概念的叙述中,哪一条是错误的? A)  "数据库"可理解为是在计算机存储设备中按一定格式存放数据的仓库 B)  数据库是按一定结构组织并可以长期存储在计 ...

  7. Spring Web MVC (Spring MVC) 的相关例题及解析

    MVC.web MVC.Spring MVC 和 Spring Web MVC的联系与区别: 1.MVC 是一种架构分层模式 2.web MVC 是指在 web 领域下实践的 MVC,因为 web 领 ...

  8. LeetCode刷题日记精选例题(解析+代码+链接)

    文章目录 一.用栈模拟队列 二.用队列模拟栈 三.有效的括号 解法一 解法二 四.删除字符串中所有相邻重复项 五.逆波兰表达式求值 六.滑动窗口最大值 七.前k个高频元素 一.用栈模拟队列 因为队列先 ...

  9. shell脚本详解(四)——循环语句之while循环和until循环(附加例题及解析)

    shell脚本详解(四)--循环语句之while循环和until循环 一.until循环 1.循环结构 2.例题 二.while循环 1.循环结构 2.例题(每个人的思路不同,会导致脚本内容不一样,这 ...

  10. 关于一道数据库例题的解析。为什么σ age22 (πS_ID,SCORE (SC) ) 选项是错的?

    本人大二学子.近段时间在做数据库复习题的时候遇到一道题,如下. 有关系SC(S_ID,C_ID,AGE,SCORE),查找年龄大于22岁的学生的学号和分数,正确的关系代数表达式是( ) . ⅰ. πS ...

最新文章

  1. 公元2019年,你对AI的信任有几分?
  2. python怎么安装numpy库-python怎么安装numpy库
  3. 高通android开源代码下载
  4. 【控制】《多无人机协同控制技术》周伟老师-第10章-多无人机协同目标跟踪飞行控制策略
  5. javascript之模拟call以及apply实现
  6. 页面左边导航固定,右边自适应宽度
  7. java勇者大冒险_勇者大冒险 第一集 开车时英文歌 什么名
  8. 小于n与n互质的所有数的和(欧拉函数+快速幂)
  9. HTTPS 工作原理
  10. pytest结合allure-pytest插件生成allure测试报告
  11. 首都富版本更新说明文档
  12. java使用hashset_JAVA中Set集合--HashSet的使用
  13. C# list导出Excel(二)
  14. linux proc目录 是什么意思,linux 下proc目录里面有什么
  15. 驱动开发:实现驱动加载卸载工具
  16. sv信道模型是什么_信道模型(信道模型分类)
  17. Kotlin | Kotlin教程
  18. scrapy官方中文文档
  19. php45欧米伽_PHP中的数字格式5.5到5.50 - php
  20. 数据增强:模拟雨天算法Python

热门文章

  1. 大学计算机考试59分,大学期末考59分,你会找老师理论吗?很多人都猜错
  2. FlashFXP用到的功能
  3. vue 直接访问静态图片_vue本地静态图片的路径问题解决方案
  4. 红楼梦诗词全集---留一份吧,太珍贵了!!
  5. Linux学习之路-Linux-at及cron命令【7】---20171215
  6. Ceph分布式存储详解
  7. java截取文件名后缀
  8. 牛!发出中国第一封电子邮件,注册登记域名CN,中国互联网之父传奇
  9. mysql数据库修改初始密码
  10. 查看MySQL初始密码并修改