SQL语句练习操作

时间:2022-07-28 16:56:17 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
实验一 SQL语言的使用

相关知识

SQL语言由4部分组成:数据定义语言DDL数据操纵语言DML数据控制语言DCL和其他,其功能如下: 1数据定义语言DDL主要用于定义数据库的逻辑结构,包括定义数据库、基本表、视图和索引等,扩展的DDL还包括存储过程、函数、对象、触发器等的定义。

2数据操纵语言DML主要用于对数据库中的数据进行检索和更新两大类操作,中更新操作包括插入、删除和更新数据。

3数据控制语言DCL主要用于对数据库中的对象进行授权、用户维护(包括创建、修改和删除)、完整性规则定义和事务定义等。 4)其他:主要是嵌入式SQL语言和动态SQL语言的定义,规定了SQL语言在宿主语言中使用的规则。扩展的SQL还包括数据库数据的重新组织、备份和回复等。

数据操纵语言练习 2.1 订单管理数据库

订单管理数据库由5张表组成,分别为员工表、客户表、商品表、订单主表和订单明细表。

员工表中记录当前销售公司所有的员工详细信息,客户表中记录与当前销售公司有业务往来的客户单位信息,商品表中记录当前销售公司可销售的商品,客户每次的购买活动形成一条订单记录,并指定一名销售公司员工对其进行负责,一个订单可能同时购买多种商品,所以订单主表中只记录以订单为单位的相关信息,而订单明细中再记录具体商品的销售情况。

2.2 实验内容

2.2.1 查询操作

2.2.1.1 单表查询

1)查询全部职工的基本信息

2)查询所有职工的部门、职工号、姓名和薪水

3)查询全体职工的姓名、年龄、所属部门,并用汉语显示表头信息

4)查询1973年出生且为职员的员工信息

5)查询业务科或财务科的职工姓名、性别和所在部门,仅显示前面5位职工 6)查询薪水为20004000的职工编号、姓名、所在部门和薪水 7)查询薪水在3000~4000的职工姓名和薪水 8)查询薪水不在3000~4000的职工姓名和薪水 9)查询所有姓张的职工姓名、所属部门和性别 10)查询所有姓张且全名为三个汉字的职工姓名

11)查询既不在业务科也不在财务科的职工姓名、性别和所在部门

12)查询1991年被雇佣的职工号、姓名、性别、电话号码、出生日期以及年龄 13)查询6月出生的员工编码、姓名、出生日期,并按出生日期的降序输出 14)查询职工工资最高的前10%的职工编号、职工姓名和工资


15)查询每个业务员的订单数量

16)统计在业务科工作且在1973年或1967年出生的员工人数和平均工资 17)统计每种商品的销售数量和金额,并按销售金额的升序排序输出

18查询订单中至少包含3(含3种)以上商品的订单编号及订购次数,且订购的商品数量在3件(含3件)以上。

2.2.1.2 简单表链接

1)查询住址在上海的员工所做的订单,结果输出员工编号、姓名、订单编号、客户编号和订单日期,并按客户编号排序输出。

2)查找订购了“32M DRAM”的商品的客户编号、客户名称、订单编号、订货数量和订货金额,并按客户编号排序输出。

3)查询与“张晓梅”在同一部门工作的员工姓名、所属部门、性别和出生日期,并按所属部门排序输出

4)查询1973年出生的员工所订购产品的订单,输出结果位员工编号、姓名、所属部门、订单编号、客户名称、订单日期,按员工编号排序输出。

5)统计订单中每个商品具有销售数量大于4的订单的订单个数,要求显示商品编号、商品名称、订单数(提示:外连接)

附加:先分析结果,再运行查看分析是否正确

Select a.productNo,productName,quantity,price

From OrderDetail AS a LEFT JOIN Product AS b ON (a.productNo=b.ProductNo) AND quantity>4

Order By a.productNo

LEFT JOIN 换成 RIGHT JOIN FULL JOIN

6查询每个客户订购商品的具体订单信息,输出结果为客户编号、客户名称、商品编号、商品名称、数量、单价和金额

7)查询“52倍速光驱”的销售情况,要求显示相应的销售员的姓名、性别、销售日期、销售数量和金额。

2.2.1.3 简单嵌套查询

1)查询员工“张小娟”所做的订单信息

2)查询没有订购商品的且在北京地区的客户编号、客户名称和邮政编码,并按邮政编码降序排序

3)查询订购了“32M DRAM”商品的订单编号、订货数量和订货单价

4)查询与员工编号E2008005在同一部门的员工编号、姓名、性别、所属部门

5)查询即订购了P20050001商品,又订购了P20070002商品的客户编号、订单编号和订单金额。

6)查询没有订购“52倍速光驱”或“17寸显示器”的客户编号、客户名称。 2.2.1.4 复杂嵌套查询

1)查找至少有2次销售记录的业务员名单和销售日期 2)查找销售金额最大的客户名称和总订单金额

3)查找销售总额少于5000元的销售员编号、姓名和销售额

4)查找至少订购了3种商品的客户编号、客户名称、商品编号、商品名称、数量和金额 5)查找同时订购了商品编号为“P20070002”和商品编号为“20070001”的商品的客户编号、客户姓名、商品编号、商品名称和销售数量,按客户编号排序输出 2.2.1.5 存在量词运算

1)查询订购了“键盘”商品的客户姓名、订货数量和订货日期


2)查询没有订购“键盘”商品的客户名称

3)查询至少销售了5种商品的销售员编号、姓名、商品名称、数量及相应的单价,并按销售员编号排序输出

4)查询没有订购商品的客户编号和客户名称 5)查询订购了所有已列商品的客户名称

6)查询至少包含了“世界技术开发公司”所订购的商品的客户编号、客户名称、商品编号、商品名称、数量和金额。

2.2.2 更新操作

1)分别给5张表增加元组信息,具体信息任意

2)将发票号码为I000000001的订单从数据库中删除,同时删除具体订货信息 3)将上海的客户住址全部改为深圳

4)将工作满5周年的员工薪水上调5%,工作满10周年的员工薪水上调8% 5)将客户c2009000120081月购买的所有商品单价打9 6)根据订单明细表,修改订单主表的订单金额信息

数据定义语言及视图练习 3.1数据库

教材第二章第5

3.2实验内容

1)定义数据库

2)定义表,并声明主键和外键

3)在供应商表中按照所在城市建立一个非聚集索引

4)修改供应商表中供应商状态Status属性为vChar6)类型

5)为三建工程项目建立一个供应情况的视图,包括供应商名、零件名和零件数量。并针对该视图完成以下操作

①显示使用的各种零件名及零件数量 ②显示供应商精益的供应数量

③更改供应商精益的供应零件从“螺母”改为“齿轮” ④删除供应商丰盛泰的对齿轮的供应 ⑤修改视图增加对供应项目名的显示

⑥增加供应商丰盛泰对造船厂项目的螺母供应量为700

6)用SQL语句重新定义第二部分的订单表:订单编号的构成:年月日流水号共12位,200708090001;订单编号、客户编号、员工编号、发票号码设为NOT NULL;业务员必须是员工;订货日期和出货日期的默认值(DEFAULT)为系统当前日期;订单金额默认值0,;发票号码建立UNIQUE约束


本文来源:https://www.wddqw.com/doc/5ef89700677d27284b73f242336c1eb91a3733cd.html