设有如下表结构:
表名: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 HAVING COUNT(g_applyno)>1
4. 将身份证号码为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 '李%';
数据库联系
最新推荐文章于 2024-06-27 12:22:43 发布
1369

被折叠的 条评论
为什么被折叠?



