实验二 L SQL 语言的使用

一、实验目的

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

二、实验要求

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

三、实验步骤

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

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

入 SQL Server Management Studio 操作界面。

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

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

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

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

SQL SERVER专题实验十 sql server实验二_SQL SERVER专题实验十

 

SQL SERVER专题实验十 sql server实验二_database_02

 

SQL SERVER专题实验十 sql server实验二_SQL SERVER专题实验十_03

 

SQL SERVER专题实验十 sql server实验二_SQL SERVER专题实验十_04

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

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

from s

order by city asc , sname desc

SQL SERVER专题实验十 sql server实验二_SQL_05

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

from p

order by pname asc , weight desc

SQL SERVER专题实验十 sql server实验二_SQL_06

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

select * from j

where jname like '%厂'

SQL SERVER专题实验十 sql server实验二_SQL SERVER专题实验十_07

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

 select *

from s

where sname like '%方%'方%'

SQL SERVER专题实验十 sql server实验二_SQL SERVER专题实验十_08

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

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

from p

SQL SERVER专题实验十 sql server实验二_SQL SERVER专题实验十_09

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

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

from p

where pname='螺丝刀’

SQL SERVER专题实验十 sql server实验二_sqlserver_10

(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'

SQL SERVER专题实验十 sql server实验二_数据库_11

(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'

SQL SERVER专题实验十 sql server实验二_SQL_12

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

select jname from j

where jno not in (

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

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

SQL SERVER专题实验十 sql server实验二_SQL SERVER专题实验十_13

(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='红'

)

SQL SERVER专题实验十 sql server实验二_数据库_14

(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

SQL SERVER专题实验十 sql server实验二_数据库_15

(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

SQL SERVER专题实验十 sql server实验二_SQL SERVER专题实验十_16

(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

)

)

SQL SERVER专题实验十 sql server实验二_SQL SERVER专题实验十_17

(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)

SQL SERVER专题实验十 sql server实验二_database_18

(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

SQL SERVER专题实验十 sql server实验二_database_19

(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='东方红'

SQL SERVER专题实验十 sql server实验二_数据库_20

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';

SQL SERVER专题实验十 sql server实验二_SQL_21

SQL SERVER专题实验十 sql server实验二_SQL SERVER专题实验十_22

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

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

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

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

打开SQL Server Manager管理器

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