数据库SQL语句练习题(一)

一、题目描述

某健身俱乐部开发一个信息管理系统,该信息系统的部分关系模式如下:
会员(会员手机号,姓名,折扣)
项目(项目名称,项目经理,价格)
消费(流水号,会员手机号,项目名称,消费金额,消费日期)
(1)新建消费表,要求指定关系的主键和外键,以及消费金额大于零的约束。(说明:流水号char(12),会员手机号char(11),项目名称varchar(20),消费金额numeric(20,2),
消费日期date)
(2) 修改姓名为“李丽”,项目名称为“健身操”的消费金额为200元。
(3)查询没有会员消费过的项目。(IN和EXISTS)
(4)往消费表增加一条信息(流水号: 202004160001,会员手机号: 13912345678,项目名称:普拉提,消费金额: 200消费日期: 2020/4/16)。

(5)删除会员陈明的所有消费信息。
(6)列出所负责项目的消费总金额大于20万(200000) 的项经理。
(7)建立视图VW1得到消费信息,包括以下属性:流水号,会员手机号,姓名,项目名称,项目经理,消费金额。

二、问题解答

(1)

Create table 消费(
流水号char (12) primary key,
会员手机号char (11),
项目名称varchar(20),
消费金额numeric(20,2) check(消费金额>0),
消费日期date,
foreign key(会员手机号) references会员(会员手机号) ,
foreign key(项目名称) references项目(项目名称)
)

Create table 消费(
流水号char (12) primary key,
会员手机号char (11) references会员,
项目名称varchar(20) references项目,
消费金额numeric(20,2) check( 消费金额>0),
消费日期date
)

(2)

update消费
set 消费金额=200 
where会员手机号in
(select会员手机号from 会员where姓名='李丽') 
and项目名称='健身操';

(3)
①IN

Select *
From项目
Where项目名称not in(select 项目名称from消费)

②EXISTS

Select *
From项目
Where not exists (select * from 消费where项目名称=项目.项目名称)

(4)

Insert into 消费
Values ('202004160001',' 13912345678','普拉提',200, '2020/4/16')

(5)

Delete from消费
Where会员手机号in(select会员手机号from会员where姓名='陈明')

(6)

select项目经理,sum(消费金额)from项目,消费
where项目.项目名称=消费.项目名称
group by项目经理
having sum(消费金额)> 200000

(7)

create view VW1(流水号,会员手机号,姓名,项目名称,项目经理,消费金额)
select流水号,消费.会员手机号,姓名,消费.项目名称,项目经理,消费金额
from会员,项目,消费
where消费.会员手机号=会员.会员手机号and 消费.项目名称=项目.项目名称

有不足之处希望大家多多指正哟~

你可能感兴趣的:(数据库笔记)