SQL基础教程--第二章练习题

在做练习之前,线创建一个表格,插入数据

create table Product(product_id int(4) not null,
product_name varchar(10)  ,
product_type varchar(10) ,
sale_price int ,
purchase_price int,
regist_date date  );
insert into  Product values(0001,"T恤衫","衣服",1000,500,"2009-09-20");
insert into  Product values(0002,"打孔器","办公用品",500,320,"2009-09-11");
insert into  Product values(0003,"运动T恤","衣服",4000,2800,null);
insert into  Product values(0004,"菜刀","厨房用具",3000,2800,"2009-09-20");
insert into  Product values(0005,"高压锅","厨房用具",6800,5000,"2009-01-15");
insert into  Product values(0006,"叉子","厨房用具",500,null,"2009-09-20");
insert into  Product values(0007,"擦菜板","厨房用具",880,790,"2008-04-28");
insert into  Product values(0008,"圆珠笔","办公用品",100,null,"2009-11-11")

 

2.1 编写一条 SQL 语句,从 Product(商品)表中选取出“登记日期(regist_
date)在 2009 年 4 月 28 日之后”的商品。查询结果要包含 product_
name 和 regist_date 两列。

select product_name, regist_date 
from demo.Product
where regist_date>"2009-04-28"

 

2.2 请说出对 Product 表执行如下 3 条 SELECT 语句时的返回结果。
① SELECT *
FROM Product
WHERE purchase_price = NULL;
② SELECT *
FROM Product
WHERE purchase_price <> NULL;
③ SELECT *
FROM Product
WHERE product_name > NULL;

-- mysql中 null 类型不会被检索到,因此三条查询语句都不会返回数据

 

 

2.3 代码清单 2-22(2-2 节)中的 SELECT 语句能够从 Product 表中取出“销
售单价(sale_price)比进货单价(purchase_price)高出 500
日元以上”的商品。请写出两条可以得到相同结果的 SELECT 语句。执行
结果如下所示。

 

SELECT 
    product_name, sale_price, purchase_price
FROM
    demo.Product
WHERE
    sale_price >=purchase_price+500;

 运行结果:

 

 

2.4 请写出一条 SELECT 语句,从 Product 表中选取出满足“销售单价打九
折之后利润高于 100 日元的办公用品和厨房用具”条件的记录。查询结果
要包括 product_name 列、 product_type 列以及销售单价打九折之
后的利润(别名设定为 profit)。
提示:销售单价打九折,可以通过 sale_price 列的值乘以 0.9 获得,利润可
以通过该值减去 purchase_price 列的值获得。

 

SELECT 
    product_name, product_type, 0.9*sale_price-purchase_price as profit
FROM
    demo.Product
WHERE
    0.9*sale_price-purchase_price >= 100;

运行结果:

 

 


 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值