实验5SQL语言Word文档格式.docx

上传人:b****5 文档编号:17646235 上传时间:2022-12-07 格式:DOCX 页数:9 大小:115.09KB
下载 相关 举报
实验5SQL语言Word文档格式.docx_第1页
第1页 / 共9页
实验5SQL语言Word文档格式.docx_第2页
第2页 / 共9页
实验5SQL语言Word文档格式.docx_第3页
第3页 / 共9页
实验5SQL语言Word文档格式.docx_第4页
第4页 / 共9页
实验5SQL语言Word文档格式.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

实验5SQL语言Word文档格式.docx

《实验5SQL语言Word文档格式.docx》由会员分享,可在线阅读,更多相关《实验5SQL语言Word文档格式.docx(9页珍藏版)》请在冰豆网上搜索。

实验5SQL语言Word文档格式.docx

附加数据库对话框

点击

按钮,在随后出现的“浏览现有的文件”对话框中,找到并选择“eshop_Data.MDF”后,点击“确定”按钮,回到“附加数据库”对话框,点击“确定”按钮,出现图2所示的对话框即表示附加完成:

图2 

附加完成对话框

2.本实验基于eshop数据库中如图3所示的四个数据表:

图3eshop数据库的表关系图

3.SELECT语句的语法如下所示:

SELECT[ALL|DISTINCT]选择列清单

[INTO[新表名]]

FROM{表名|视图名}[(优化提示)][[,{表名2|视图名2}[(优化提示)]

[WHERE子句]

[GROUPBY子句][HAVING子句]

[ORDERBY子句][COMPUTEBY子句]

四、实验步骤

打开查询分析器,在查询编辑窗口输入以下各SQL语句。

简单查询

查询产品表中的所有信息,SQL代码如下:

USEeshop

SELECT*FROM产品表

查询结果如图4所示。

查询职工的工号、姓名、性别和族别信息。

代码如下:

SELECT工号,姓名,性别,族别FROM职工表

条件查询

条件查询所使用的运算符大致有以下六种类型:

(1)比较操作符,如:

=、>

、<

、>

=、<

=、!

=、==、!

<

和!

>

(2)范围操作符,如:

[NOT] 

BETWEEN…AND

(3)列表操作符,如:

IN和NOT 

IN

(4)字符串操作符,如:

LIKE和NOTLIKE

(5)未知值,如:

ISNULL和ISNOTNULL

(6)逻辑操作符,如:

AND、OR和NOT

图4 

产品表中的全部信息

查询产品表中单价在800元以上的产品详细信息,SQL代码如下:

SELECT*FROM产品表WHERE单价>

800

查询结果如图5所示。

图5 

单价在800元以上的产品详细信息

查询产品表中订单数量在200~500之间的产品编号、产品名称和产品数量,

SQL代码如下:

SELECT产品编号,产品名称,订单数量FROM产品表

WHERE订单数量>

=200AND订单数量<

=500

WHERE订单数量between200AND500

查询结果如图6所示。

图6 

订单数量在200~500之间的产品信息

使用通配符

SQLServer为字符串表达式提供了一种使用LIKE关键字和通配符进行模式匹配的方法。

通配符有:

(1)%代表任意字符串

(2)_ 

代表单个字符

(3)[]在某个指定范围

查询所有姓刘的职工信息。

SELECT*FROM职工表WHERE姓名LIKE'

刘%'

查询职工表中家庭住址为“河南”的职工详细信息,SQL代码如下:

SELECT*FROM职工表WHERE 

家庭住址LIKE'

河南%'

查询姓名中第2个字为“丽”的职工。

SELECT工号,姓名FROM职工表WHERE姓名 

LIKE'

_丽%'

查询结果如图7所示。

图7 

姓名中第2个字为“丽”的职工

使用计算列

查询职工表中年龄大于28岁且性别为“男”的职工详细信息,SQL代码如下:

DATEDIFF(YY,出生日期,GETDATE())>

28 

AND性别='

男'

查询各种产品的额定产值(额定产值仅与单价和订单数量有关,单位:

元),SQL代码如下:

select产品编号,产品名称,单价*订单数量额定产值from产品表

查询结果如图8所示。

图8 

产品的额定产值(图中未列出全部产品)

排序输出

(1)ASC指定按递增顺序(此为默认值),从最低值到最高值对指定列中的值进行排序。

(2)DESC指定按递减顺序,从最高值到最低值对指定列中的值进行排序。

查询性别为“男”的职工详细信息,查询结果按基本工资降序排列,SQL代码如下:

SELECT*FROM职工表WHERE性别='

ORDERBY基本工资DESC

查询全体职工的工号、姓名、家庭住址和年龄(注意年龄的计算方法),并按家庭住址升序排列,住址相同的职工按年龄降序排列,SQL代码如下:

SELECT工号,姓名,家庭住址,YEAR(GETDATE())-YEAR(出生日期)年龄

FROM职工表ORDERBY家庭住址,出生日期

SELECT工号,姓名,家庭住址,DATEDIFF(YY,出生日期,GETDATE())年龄

查询结果如图9所示。

图9 

家庭住址相同的职工按年龄降序排列(仅列出部分职工信息)

限定输出结果

(1)DISTINCT:

去除重复结果

(2)TOP:

返回指定记录行数

(3)PERCENT:

按比例显示记录行

从职工表中查询所有职工由哪几个民族构成。

SELECTDISTINCT族别FROM职工表

查询结果如图10所示。

图10 

所有职工共来自六个民族

查询在生产“1-005”产品的职工中,产量位居前三名的职工。

SELECTtop3工号,生产数量FROM生产表where产品编号='

1-005'

orderby生产数量desc

查询结果如图11所示。

图11 

生产“1-005”产品的职工中,产量位居前三名的职工

在生产“1-001”产品的职工中,按产量排序,前30%的职工将获得嘉奖。

查询可以获得嘉奖的职工编号。

SELECTtop30percent工号获得嘉奖的职工工号FROM生产表

WHERE产品编号='

1-001'

查询结果如图12所示。

图12 

获得嘉奖的职工

使用汇总函数

查询所有产品的额定总产值(单位:

selectsum(单价*订单数量)额定总产值from产品表

查询参与生产’2-005’产品的总人数,SQL代码如下:

SELECTCOUNT(*)参与生产总人数FROM生产表WHERE产品编号='

2-005'

查询“1-005”产品的产量

SELECTsum(生产数量)产量FROM生产表where产品编号='

查询所有职工的基本工资的平均值,最高值和最低值,SQL代码如下:

SELECTAVG(基本工资)平均工资,MAX(基本工资)最高工资,MIN(基本工资)最低工资

FROM职工表

分组查询

借助汇总函数,根据查询定义的分组把数据分别按组进行汇总。

HAVING子句则进一步规定了结果集必须根据指定的条件来产生。

从职工表中统计各民族职工的人数。

SELECT族别,COUNT(族别)AS职工人数FROM职工表GROUPBY族别

查询各生产车间的产值定额(单位:

select生产部门编号,sum(单价*订单数量)产值定额 

from产品表groupby生产部门编号

查询产量位列前3名的产品编号和生产数量,SQL代码如下:

SELECTtop3产品编号,sum(生产数量)总产量FROM生产表

groupby产品编号 

ORDERBYsum(生产数量)desc

查询各类产品的最高生产数量,要求输出最高数量大于2800的产品编号和最高数量,并按最高数量升序排序,SQL代码如下:

SELECT产品编号,SUM(生产数量)生产数量FROM生产表

GROUPBY产品编号HAVINGSUM(生产数量)>

2800ORDERBYSUM(生产数量)DESC

多表连接查询

SQLServer允许用连接方式从多个表中查询数据。

连接可以定义为同时支持多表查询的一种操作。

在连接条件中引用某一列时,应该在列名前加上它所属的表名或表的别名。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1