快捷搜索: 王者荣耀 脱发

数据库原理实验- SQL语句基本操作(一)

实验目的

    掌握SQL基本的单表和多表查询。 掌握SQL语句的条件查询。 掌握SQL语句的分组查询和排序查询。 掌握简单的谓词关键字的使用。

实验准备

    打开SSMS(集成管理器),新建一个“书籍管理”的数据库,并将素材的中的ACCESS数据导入到该数据库。
access的文件后缀是mdb 分离出的文件后缀是mdf,与分离对应的是附加 备份出的文件是bak,与备份对应的是还原
    表格结构 一共有四个表,分别是tOrder,tEmployee,tDetail,tBook

题目如下

    新建查询,查询计算机类的图书的书籍名称、定价和出版社名称
select 数据名称,定价,出版社名称
from tBook 
where 类别=计算机类
    查询价格在15元到25元之间的电子工业出版社的图书的书籍号、名称、定价,并分别用书籍编码、书名和价格做为显示标题
select 书籍号 书籍编码,名称 书名,定价 价格
from tBook
where 定价 between 15 and 25 and 出版社名称=电子工业出版社
    新建查询,查询女雇员的雇员号、姓名和年龄。将查询语句保存为sj3.sql。
select 雇员号,姓名,年龄
from tEmployee
where 性别=女
    新建查询,查询哪些雇员手头有订单,显示其雇员姓名(去除重复记录)。
--用到连接查询,这里是右外连接right join,左表可为null
select distinct(姓名)
from tOrder right join tEmployee on tOrder.雇员号=tEmployee.雇员号
where tOrder.订单号 is  not null
    新建查询,查询2季度订购的订单号、雇员姓名和职务。
select 订单号,姓名,职务
from tOrder inner join tEmployee on tOrder.雇员号=tEmployee.雇员号
where month(订购日期) in (4,5,6)
    新建查询,查询原理类的图书(书名包含原理)的订单明细号、书名、定价和售出价格。
select 订单明细号,书籍名称,定价,售出价格
from tBook join tDetail on tBook.书籍号=tDetail.书籍号
where 书籍名称 like %原理%
    新建查询,查询经理经手的雇员号、订单号、书籍号和订购日期,以雇员号升序排列,雇员号相同,以订单号降序排列。
--这里查询结果中的订单号应该声明是哪一个表的订单号
select 雇员号,tOrder.订单号,书籍号,订购日期
from tOrder join tDeatil on tOrder.订单号=tDetail.订单号
where 职务=经理
order by 雇员号 asc,订单号 desc --desc降序,asc升序
    新建查询,查询每笔订单明细的明细号、书籍名、总价。
select 订单明细号,书籍名,数量*售出单价 总价 --用到了表达式
from tDetail join tBook on tDetail.书籍号=tBook.书籍号
    新建查询,查询工业出版社每类图书的的平均价格,显示类别名和平均价格。
select 类别,avg(单价) --单价虽然不在group by中,但其包含于聚合函数avg中
from tBook
where 出版社名称=工业出版社
group by 类别
    新建查询,查询每个雇员经手的的订单数量,显示雇员号和订单数量。
select 雇员号,count(*)
from tOrder
group by 雇员号
    新建查询,查询下订单数最多的客户号和订单数。
select top 1 客户号,count(*)
from tOrder
group by 客户号
order by count(*) desc
    新建查询,查询哪几笔订单的购买的书籍种类大于3,显示订单号客户号和书籍种类数。
select tOrder.订单号,客户号,类别
from tOrder join tDetail on torder.订单号=tDetail.订单号 join tBook on tDetail.书籍号=tBook.书籍号
where tOrder.订单号 in (
	select 订单号
	from tDetail join tBook on tDetail.书籍号=tBook.书籍号
	group by 订单号 
	having COUNT(distinct 类别)>3)
order by tOrder.订单号
    新建查询,查询按出生日期月份的升序显示名称为2个字雇员的姓名、性别、职称和出生日期的月份。
select 姓名,性别,职称,month(出生日期) 出生月份
from tEmployee
order by month(出生日期) asc
where len(姓名)=2
经验分享 程序员 微信小程序 职场和发展