/*
Demo1(Mysql)
*/
-- 表1:申请卡的表
create table g_cardapply(
g_applyno varchar(8) comment '申请单号',
g_applydate bigint(8) comment '申请日期',
g_state varchar(1) comment '申请状态:1为正常,0为异常'
)
-- 向表中插入数据
insert into g_cardapply(g_applyno,g_applydate,g_state) values('g01',current_date,'1');
insert into g_cardapply(g_applyno,g_applydate,g_state) values('g02',current_date,'1');
insert into g_cardapply(g_applyno,g_applydate,g_state) values('g03',current_date,'1');
-- 表2:申请卡的表的详细描述
create table g_cardapplydetail(
g_applyno varchar(8) comment '申请单号',
g_name varchar(30) comment '申请人姓名',
g_idcard varchar(18) comment '申请人身份证号',
g_state varchar(1) comment '申请人状态:1为正常,0为异常'
)
-- 向表中插入数据
insert into g_cardapplydetail(g_applyno,g_name,g_idcard,g_state) values('g01','李白','503516185701097897','1');
insert into g_cardapplydetail(g_applyno,g_name,g_idcard,g_state) values('g02','李白','503516185701097897','1');
insert into g_cardapplydetail(g_applyno,g_name,g_idcard,g_state) values('g03','小李','503516185701097896','1');
-- 1、查询身份证号码为503516185701097896的申请日期
select a.g_applydate 申请日期 from g_cardapply a join g_cardapplydetail b on a.g_applyno=b.g_applyno
where b.g_idcard='503516185701097896';
select a.g_applydate 申请日期 from g_cardapply a,g_cardapplydetail b
where a.g_applyno=b.g_applyno and b.g_idcard='503516185701097896';
-- 2、查询同一个身份证号码有两条以上记录的身份证号码及记录个数
select b.g_idcard,count(b.g_idcard) r from g_cardapplydetail b group by b.g_idcard having r>=2;
-- 3、将身份证号码为503516185701097896的记录在两个表中的申请状态均改为0
update g_cardapply a join g_cardapplydetail b on a.g_applyno=b.g_applyno
set a.g_state='0',b.g_state='0' where b.g_idcard='503516185701097896';
update g_cardapply a,g_cardapplydetail b
set a.g_state='0',b.g_state='0' where a.g_applyno=b.g_applyno and b.g_idcard='503516185701097896';
-- 4、删除g_cardapplydetail表中所有姓李的记录
delete from g_cardapplydetail where g_name like '李%';
笔试题(二)—— sql语句
最新推荐文章于 2025-05-29 14:09:48 发布