设有如下表结构:
表名:g_cardapply
字段(字段名/类型/长度):
g_applyno varchar 8;//申请单号(关键字)
g_applydate bigint 8;//申请日期
g_state varchar 2;//申请状态
表名:g_cardapplydetail
字段(字段名/类型/长度):
g_applyno varchar 8;//申请单号(关键字)
g_name varchar 30;//申请人姓名
g_idcard varchar 18;//申请人身份证号
g_state varchar 2;//申请状态
其中,两个表的关联字段为申请单号。
基于以上关系模式完成下列要求的SQL语句:
1. 创建表g_cardapply
CREATE TABLE g_cardapply (
g_applyno VARCHAR(8)PRIMARY KEY,
g_applydate BIGINT(8),
g_state VARCHAR(2))ENGINE=INNODB DEFAULT CHARSET=utf8;2. 查询身份证号码为440401430103082的申请日期
SELECT a.g_applydate FROM g_cardapply a,g_cardapplydetail b WHERE a.g_applyno=b.g_applyno AND b.`g_idcard`="440401430103082"
SELECT g_applydate FROM g_cardapply WHERE g_applyno IN(
SELECT g_applyno FROM g_cardapplydetail WHERE g_idcard="440401430103082")3. 查询同一个身份证号码有两条以上记录的身份证号码及记录个数
SELECT g_idcard,COUNT(g_applyno)'次数' FROM g_cardapplydetail GROUP BY g_idcard HAVINGCOUNT(g_applyno)>14. 将身份证号码为440401430103082的记录在两个表中的申请状态均改为07
UPDATE g_cardapplydetail AS a,g_cardapply AS b SET a.g_state='07',b.g_state='07' WHERE a.g_applyno =b.g_applyno AND g_idcard="440401430103082";5. 删除g_cardapplydetail表中所有姓李的记录
DELETE FROM g_cardapplydetail WHERE g_name LIKE '李%';