笔试题(二)—— sql语句

本文介绍MySQL中通过联合查询实现数据整合的方法,并演示如何更新多个表中的数据状态,同时提供删除特定记录的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
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 '李%';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值