文档详情

实验八_T-SQL流程控制和函数答案.doc

发布:2017-01-31约2.04千字共5页下载文档
文本预览下载声明
实验八 T-SQL流程控制和函数 实验目的 熟练掌握变量的定义、赋值与使用。 熟练掌握常用基本运算符。 熟练掌握流程控制语句,尤其是条件语句和循环语句。 熟悉并掌握常用的系统函数。 理解什么是标量函数、内嵌表值函数及多语句表值函数。 熟练掌握自定义函数的定义和调用方法。 实验内容及要求 对CPXS数据库,完成如下任务: 创建一名为 CustomerName的局部变量,并在SELECT语句中使用该变量查找“鹿城中学”购买产品的情况(包括产品名称、单价)。 用T-SQL语言编程输出3~300之间能被7整除的数。 查询CP表中各种产品的产品编号、产品名称和价格,对其价格按以下规则进行转换:若价格小于1000,替换为“廉价产品”;若价格在1000-2000之间,替换为“一般产品”;若价格大于2000小于5000,替换为“昂贵产品”;若价格大于5000,替换为“奢侈品”;列标题更改为“评价”。 使用系统函数,计算今天距“2015-1-1”还剩多少天。 题目要求: 雇员“王孔若”签订了一个供应给“鹿城中学”50个优盘的订单,编程实现将订单涉及的相关信息写入数据库中。 实例分析:一条订单会涉及产品、客户及雇员的有关信息,且这些信息分别存放在不同的表中,所以,要将订单涉及的相关信息写入数据库中,需要完成以下几方面的操作。 先要获取该订单的相关信息。然后在将这条订单信息添加到订单表(p_order)中的同时,还必须修改其他表中的信息,包括在客户表(customer)中添加对应于该订单记录对应的客户信息,在产品表(product)中修改产品的库存量,其值必须为当前库存量的值减去刚增加的订单记录中包含的数量值。同理,如果某雇员取消了一个订单,在各表中也必须修改或删除相应的记录信息。 实验过程及结果 (说明:要写出相关SQL语句,实验结果可以是运行画面的抓屏,抓屏图片要尽可能的小。) 1. DECLARE @CustomerName char(30) SELECT @CustomerName=鹿城中学 SELECT customer.公司名称,product.产品名,product.单价 FROM p_order,customer,product WHERE p_order.客户ID=customer.客户ID and customer.公司名称=@CustomerName and product.产品ID=product.产品ID 实验结果: 2. DECLARE @i int SET @i=3 WHILE @i=300 BEGIN IF @i%7=0 PRINT @i SET @i=@i+1 END 实验结果: 3. SELECT product.产品ID,product.产品名,product.单价, CASE WHEN 单价=5000 then 奢侈产品 WHEN 单价=2000 then 昂贵产品 WHEN 单价=1000 then 一般产品 WHEN 单价=0 then 廉价产品 END AS 评价 FROM product 实验结果: 4. SELECT DATEDIFF(day,GETDATE(),2015-1-1) 5. 关于王若孔那道题 USE companyInfo DECLARE @userId int --保存雇员ID DECLARE @cusId int --保存客户ID DECLARE @max_ordId int --保存订单ID的最大值 DECLARE @storePro int --保存产品的库存量 DECLARE @id_product int --保存供应产品的产品编号 SELECT @cusId=客户ID FROM customer where 公司名称=鹿城中学 SELECT @storePro=库存量,@id_product=产品ID FROM product WHERE 产品名=优盘 SELECT @max_ordId=max(订单ID) FROM P_order SELECT @max_ordId=@max_ordId+1 --获取要插入的订单信息的订单ID SELECT @userId=雇员ID FROM employee WHERE 姓名=王孔若 IF @storePro50 PRINT 库存量不够 ELSE BEGIN INSERT P_order VALUES(@max_ordId,@id_product, 50,@userId,@cusId,getdate()) UPDATE product SET 库存量=库存量-50 WHERE 产品ID=@id_
显示全部
相似文档