关于数据库习题,用SQL语言实现
表结构1.表名:cardapply字段(字段名/类型/长度):applynovarchar8;//申请单号(关键字)applydatebigint8;//申请日期stat...
表结构
1.表名:cardapply
字段(字段名/类型/长度):
applyno varchar 8;//申请单号(关键字)
applydate bigint 8;//申请日期
state varchar 2;//申请状态
2.表名:cardapplydetail
字段(字段名/类型/长度):
applyno varchar 8;//申请单号(关键字)
name varchar 30;//申请人姓名
idcard varchar 18;//申请人身份证号码
state varchar 2;//申请状态
其中,两个表的关系字段为申请单号
1、查询身份证号码为1234567812342的申请日期
2、查询同一个身份证号码有两条以上申请记录的身份证号码及记录个数
3、讲身份证号码为401234567812的记录在两个表中的申请状态均改为3
4、删除cardapplydetail表中的所有姓王的记录
求解答~~谢谢 展开
1.表名:cardapply
字段(字段名/类型/长度):
applyno varchar 8;//申请单号(关键字)
applydate bigint 8;//申请日期
state varchar 2;//申请状态
2.表名:cardapplydetail
字段(字段名/类型/长度):
applyno varchar 8;//申请单号(关键字)
name varchar 30;//申请人姓名
idcard varchar 18;//申请人身份证号码
state varchar 2;//申请状态
其中,两个表的关系字段为申请单号
1、查询身份证号码为1234567812342的申请日期
2、查询同一个身份证号码有两条以上申请记录的身份证号码及记录个数
3、讲身份证号码为401234567812的记录在两个表中的申请状态均改为3
4、删除cardapplydetail表中的所有姓王的记录
求解答~~谢谢 展开
展开全部
1.select applydate from cardapply c left join cardapplydetail cd on c.applyno=cd.aaplyno
where idcard = '1234567812342'
2.select count(*),idcard from cardapply c left join cardapplydetail cd on c.applyno=cd.aaplyno
where idcard in (select idcard from cardapplydetail where (select count(idcard) from cardapplydetail group by idcard )>1)(这个不太确定,没试验,手写的)
3.update cardapply c set c.state='3',cd.state='3' left join cardapplydetail cd on c.applyno=cd.aaplyno where idcard='401234567812'
4.delete from cardapplydetail where name like '王%'
手打的,没有试验正确性。不对的再来探讨一下
where idcard = '1234567812342'
2.select count(*),idcard from cardapply c left join cardapplydetail cd on c.applyno=cd.aaplyno
where idcard in (select idcard from cardapplydetail where (select count(idcard) from cardapplydetail group by idcard )>1)(这个不太确定,没试验,手写的)
3.update cardapply c set c.state='3',cd.state='3' left join cardapplydetail cd on c.applyno=cd.aaplyno where idcard='401234567812'
4.delete from cardapplydetail where name like '王%'
手打的,没有试验正确性。不对的再来探讨一下
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询