实验二 L SQL 语言的使用

一、实验目的

掌握使用 SQL 语言进行各种查询的操作和视图的操纵方法。

二、实验要求

在现有的数据库上进行各种查询操作,对视图的创建、使用等操作。

三、实验步骤

1、 开始→程序→Microsoft SQL Server→SQL Server Management Studio。

2、 在“连接到服务器”对话框中,选择“Windows 身份验证”,点击“连接”,进

入 SQL Server Management Studio 操作界面。

3、单击“新建查询”按钮,在上部的空白区导入文件“实验二 SQL 语句.doc”中

的 SQL 语句,然后单击工具栏上 “执行”按钮(红色叹号)。建立起实验要操作的数

据库 test1,并在库中建立表、数据。下部的空白区显示该语句的运行情况。(注:以下

操作均在上部的空白区输入 SQL 语句,单击执行后,下部的空白区显示该语句的运行情况。)    

4、在数据库 test1 中进行下列查询操作,将查询语句与结果写入实验报告。

(1)查询所有供应商情况,先按城市升序排列,城市相同按供应商名称降序排列。 select Sno , sname , status ,city

from s

order by city asc , sname desc

(2)查询所有零件情况,先按零件名称升序排列,零件名称相同按重量降序排列。 select *

from p

order by pname asc , weight desc

(3)查询项目名中含有“厂”的项目情况。

select * from j

where jname like '%厂'

(4)查询供应商名称中第二个字为“方”的供应商情况。

select *

from s

where sname like '%方%'方%'

(5)查询所有零件中的最大、最小、平均重量。

select max(weight)最大重量,min(weight)最小重量,avg (weight)平均重量

from p

(6)查询零件中名为“螺丝刀”的零件的种类数、平均重量。

select count(pno)种类数, avg(weight)平均重量

from p

where pname='螺丝刀’

(7)查询供应商 s1 所供应的各种零件的名称和数量。

select pname 名称,qty 数量

from s join spj on s.sno=spj.sno

join p on spj.pno=p.pno

where s.sno='s1'

(8)查询工程 j1 所使用的各种零件的名称和数量。

select pname 名称, qty 数量

from j join spj on j.jno=spj.jno

join p on spj.pno=p.pno

where j.jno='j1'

(9)查询没有使用红色螺丝刀的工程名称。

select jname from j

where jno not in (

select jno from spj join p on spj.pno=p.pno

where pname='螺丝刀'and color='红')

(10)查询没有供应红色螺丝刀的供应商名称。

select sname from s

where sno not in (

select s.sno from s, spj, p

where s.sno=spj.sno and p.pno=spj.pno and pname='螺丝刀' and color='红'

)

(11)查询所用零件数量超过 500 的工程项目号。

select s.sno from s join spj on s.sno=spj.sno join p on spj.pno=p.pno

group by s.sno

having count(qty)>3

(12)查询所用零件种类超过 3 种的工程项目名称。

select s.sname from s join spj on s.sno=spj.sno join p on spj.pno=p.pno

group by s.sname

having count(p.pno)>3

(13)查询使用了全部零件的工程项目名称。

select jname from j

where not exists

(select * from p

where not exists

(select * from spj

where pno=p.pno and jno=j.jno

)

)

(14)查询至少供应了工程 j5 所使用的全部零件的供应商名称。

select sname from s where Sno in (

select Sno from (

select Sno,count(*) as 数目 from

(select sno from spj where pno in (select pno from spj where jno = 'j1'))

t

group by sno having COUNT(*)= (select  COUNT(*) from spj where jno = 'j1') )t1)

(15)查询供应情况,显示内容为供应商名称、零件名、工程名称、数量。

select sname,pname,jname,qty

from s,p,j,spj

where s.sno=spj.sno and j.jno=spj.jno and p.pno=spj.pno

(16)查询“东方红”供应商供应情况,显示供应的零件名、工程名称、数量。

select pname , jname , qty

from s,p,j, spj

where s.sno=spj.sno and j.jno=spj.jno and p.pno=spj.pno and sname='东方红'

5、请为机车厂工程项目建立一个供应情况的视图,包括供应商代码,零件代码,供

应数量。针对该试图完成如下查询并将 SQL 语句写入实验报告。

(1)查询机车厂工程项目使用的各种零件代码及其数量。

(2)查询出供应商 s2 的供应情况。

create view jview as select spj.sno , spj.pno , spj.qty

from spj, j

where spj.jno=j.jno and j.jname='机车厂'

select pno ,qty from jview;

select * from jview where sno='s2';

6、 在 SQL Server Management Stdio 中了解关于数据库管理的各种直接操作的

方法。将了解的内容写入实验报告。

说明: 具体表结构和数据以及要做的各种数据操作可以灵活掌握,可以针对其它

数据库进行操作,具体情况由任课老师作出明确要求。

打开SQL Server Manager管理器

选择“数据库”,单击右键,在弹出的菜中单击“新建数据库”,打开新建数据库对话框。一个数据库可以由多个数据文件和多个日志文件组成。在新建数据库对话框,单击“添加”按钮,可以添加新数据库文件。可以修改新增文件的属性,可以新建一个文件组。

数据库系统原理——实验二相关推荐

  1. 数据库系统原理 实验5 数据库恢复技术

    数据库系统原理 实验5 数据库恢复技术 一. 实验目的 1. 掌握数据库备份和恢复的概念: 2. 熟练掌握数据库备份和恢复.数据导入导出等操作: 二. 实验内容及要求 假定你的数据库名称是XDB(具体 ...

  2. 数据库系统原理 实验3 数据库设计

    数据库系统原理 实验3 数据库设计 一. 实验目的 1.理解概念模型的意义,掌握根据给定业务需求描述建立相应概念模型的方法,并采用适当的图形化建模方法(如陈氏表示法的ER图或Martin表示法的IE鸦 ...

  3. 编译原理实验二:赋值语句的语法分析程序设计

    编译原理实验二:赋值语句的语法分析程序设计 1.1实验内容 目的: 在前面实验的基础上,通过设计.编制.调试一个典型的赋值语句的语法分析程序,实现对词法分析程序所提供的单词序列进行语法检查,进一步掌握 ...

  4. 微型计算机原理8255并行接口实验,微机原理实验二 8255A并行接口应用.pdf

    微机原理实验二 8255A并行接口应用 实验二 8255A 并行接口应用 一.实验目的 1.掌握8255A 的功能及方式0.1 的实现 2 .熟悉8255A 与CPU 的接口,以及传输数据的工作原理及 ...

  5. 编译原理实验二:Bison

    编译原理实验二:Bison 实验要求 1.了解Bision基础知识,如何将文法产生式转换为Bison语句 2.阅读/src/common/SyntaxTree.c,对应头文件 /include/Syn ...

  6. 操作系统原理实验二(三)

    继续完成操作系统原理的实验 4.5(实验目的:熟悉Window线程创建过程)在windows环境下,利用高级语言编程环境(限定为VS环境或VC环境)调用CreateThread函数实现"并发 ...

  7. 编译原理实验二(全部存储到数组再逐行验证语法版.....这种思路被老师否了,应该是验证一行扔掉一行才对)

    编译原理实验二(可能还有BUG,不确定继续找) 要大改一次23333,老师的意思是不能用数组存储,而是一边识别单词,然后识别完一行就判断一次语法 写实验二的时候找到的实验一的一个逻辑错误 改动了实验一 ...

  8. 编译原理实验二 macos系统 itoa方法报错解决方法

    编译原理实验二 生成符号表的前期准备中使用itoa函数报错问题 执行 gcc -o parser lex.yy.c parser.tab.c ast.c 显示: itoa 函数是一个广泛应用的,从非标 ...

  9. 数据库原理实验二 数据库管理 实验报告

    广州大学学生实验报告实验二:数据库管理 此篇分享仅供参考学习,图文禁复制,勿作他用!谢谢配合! 数据库原理实验之实验二:数据库管理 软件:Oracle SQL Developer 今天实验才刚开始,花 ...

最新文章

  1. 无需多个模型也能实现知识整合?港中文MMLab提出「烘焙」算法,全面提升ImageNet性能...
  2. python wx窗口无法关闭_菜鸟学Python,双手奉上老司机给上路新手总结的Python实战问题…...
  3. php 实现同一个账号同时只能一个人登录
  4. 教你用 3 台机器搞定一个 Redis 高可用架构
  5. python字符串解析_Python-字符串解析-正则-re
  6. linux-三个文件-用户文件-组文件-密码文件
  7. 全美首个AI本科专业今秋开课,CMU每年最多招35名新生
  8. el-cascader获取label
  9. Julia的学习资料从哪里找?
  10. SG3525芯片简介
  11. nw.js html5,nw.js 如何使用?
  12. Processing交互应用——躲避炸弹
  13. 【x86架构】APIC -- 高级可编程中断控制器
  14. 私有vlan(PVLAN)实验配置步骤
  15. 如何获取屏幕DPI/PPI并计算A4纸在屏幕的大小
  16. tecplot脚本在Linux系统下运行,Linux系统下安装Tecplot的步骤详解
  17. matlab读jpg有三个通道,图像为“灰度图像”
  18. pgsql设置字段自增
  19. python性能分析(一)——使用timeit给你的程序打个表吧
  20. 王强:销售必须具备九大素质(转)

热门文章

  1. Multi-exposure image fusion via deep perceptual enhancement 通过深度感知增强实现多曝光图像融合
  2. 传奇私服代码公布全集(3
  3. 第26章、OnKeyListener键盘事件(从零开始学Android)
  4. BitBlt 函数 详解, StretchBlt、SetStretchBltMode、SetBrushOrgEx 按句柄截图、直接截取缩略图...
  5. multiMap遍历方法
  6. iOS Xcode13.3 创建framework,没有Products目录
  7. quartz定时任务调度 自定义表单 java图片爬虫
  8. MSS代码解读-MmwDemo_mboxReadTask线程(八)
  9. 2011年数学建模国赛A题(土壤重金属检测)优秀论文.doc
  10. UnboundLocalError: local variable referenced before assignment