在做练习之前,线创建一个表格,插入数据 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; 运行结果: |