习题一:
表结构:
1、 表名:g_cardapply
字段(字段名/类型/长度):
applyno varchar2(8);//申请单号(关键字)
applydate date; //申请日期
state varchar2(2);//申请状态
2、 表名:g_cardapplydetail
字段(字段名/类型/长度):
applyno varchar8;//申请单号(关键字)
name varchar30;//申请人姓名
idcard varchar18;//申请人身份证号
state varchar2;//申请状态
其中,两个表的关联字段为申请单号。
题目:
1、查询身份证号码为440401430103082的申请日期
2、查询同一个身份证号码有两条以上记录的身份证号码及记录个数
3、将身份证号码为440401430103082的记录在两个表中的申请状态均改为07
4、删除cardapplydetail表中所有姓李的记录
建表语句:
SQL>create table g_cardapply(
applyno varchar2(8) primary key,
applydate date not null,
state varchar2(2)
);
SQL> create table g_cardapplydetail(
2 applyno varchar2(8) primary key,
3 name varchar2(30) not null,
4 idcard varchar2(18) not null,
5 state varchar2(2) not null,
6 constraint FK_CARDAPPLY_DETAIL FOREIGN KEY (applyno) references g_cardapply(applyno)
7 );
解题思路:
1.给的是表g_cardapplydetail中的idcard,要的是表g_cardapply中的apllydate,这是跨表操作,必须关联。
有两种方法:
a:
select a.applydate
from g_cardapply a
inner join g_cardapplydetail b
on a.applyno=b.applyno
where b.idcard='440401430103082';
b:
用子查询(效率比较低)
select applydate
from g_cardapply
where applyno in
(
select applyno
from g_cardapplydetail
where idcard='440401430103082'
);
2.给的是idcard要的是idcard及记录,只在一张表中操作即可。这有统计的操作,必然涉及到分组。分组时,只有被分组的字段和被聚合函数修饰的字段才能出现在select后面。因为是虚表,所以不能用where,必须用having。
select idcard,count(*)
from g_cardapplydetail
group by idcard
having count(*)>=2;
3.这是跨表修改,因为关联只能用来查询,所以只能用子查询来修改(删除也是修改,子查询是个万金油,但查询效率低)。
没有一条语句能够修改两张表,所以要分两条语句完成。
update g_cardapplydetail set state='07' where idcard='440401430103082';
update g_cardapply
set state='07'
where applyno in (
select applyno
from g_cardapplydetail
where idcard='440401430103082'
);
4.这道题考的是模糊查询,%可以表示多个字符,_(下划线)代表一个字符。
delete from g_cardapplydetail
where name like '李%'
分享到:
相关推荐
Oracle数据库是世界上最广泛使用的数据库系统之一,它支持高级的数据管理和处理功能。在这些经典练习题中,我们可以看到一些核心的PL/SQL和SQL查询技术的运用。以下是对这些练习题的详细解析: 1. 查询工资高于7900...
根据提供的信息,我们可以总结出以下Oracle数据库练习题及其解析,主要涵盖了SQL查询、子查询、聚合函数等知识点。 ### 1. 查询所有员工的姓名和部门编号 ```sql SELECT ename, deptno FROM emp; ``` 这个查询非常...
Oracle数据库是世界上最流行的数据库管理系统之一,尤其在企业级应用中占据主导地位。它拥有丰富的功能,其中触发器(Triggers)是实现复杂业务逻辑的重要工具。本篇文章将深入探讨Oracle中的触发器及其在实际问题...
Oracle 基础查询关联查询练习题中第一个练习题是查询职员表中,在 20 和 30 号部门工作的员工姓名和部门号。该查询使用了 IN 运算符来检索部门号在 20 和 30 之间的员工信息。 知识点:IN 运算符的使用、基础查询...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,它提供了丰富的功能和强大的性能,用于存储、管理和检索数据。本资料包含“Oracle数据库基础练习题”,旨在帮助初学者和进阶者巩固对Oracle基础知识的...
Oracle数据库是世界上最广泛使用的数据库管理系统之一,它提供了丰富的功能和工具来管理和操作数据。以下是从给定的练习题中提取的一些关键知识点: 1. **子查询与条件过滤**:在第一题中,我们看到了如何使用`...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,尤其在企业级应用中占据主导地位。对于初学者,掌握Oracle的基本概念、SQL语法以及数据库管理是至关重要的。本资源"Oracle 入门及提高练习题"旨在帮助...
Oracle数据库系统是全球广泛使用的数据库管理系统之一,对于数据库管理员(DBA)、开发人员以及面试者来说,深入理解Oracle的操作和管理至关重要。本资料集中的“经典Oracle练习题”旨在帮助你巩固Oracle的基础知识...
Oracle数据库是全球最广泛使用的商业关系型数据库管理系统之一,它以其强大的功能、高效的数据处理能力和高可用性而闻名。这份“经典资料2----Oracle练习题!”显然是为了帮助学习者提升在Oracle数据库领域的技能和...
Oracle是世界上最广泛使用的数据库管理系统之一,尤其在企业级应用中占据主导地位。Oracle数据库系统以其高效、稳定和安全的特点著称。"Oracle培训练习题和相关环境"这个资源显然是为那些希望深入学习Oracle技术,...
Oracle是世界上最流行的数据库管理系统之一,它提供了强大的数据管理和处理能力。以下是一些基于Oracle的练习题及其解析,旨在帮助你更好地理解和掌握Oracle SQL。 1. Oracle not available错误通常是因为网络问题...
Oracle数据库是世界上最流行的关系型数据库管理系统之一,广泛应用于企业级数据存储和管理。"21天学通ORACLE练习题答案"这个主题旨在帮助学习者通过一系列练习题深入理解Oracle的相关概念和技术。以下是对相关知识点...
Oracle数据库是世界上最流行的数据库管理系统之一,它提供了丰富的SQL语法用于数据查询和操作。在这个Oracle基础练习题中,主要涉及的是多表查询,这是数据库操作中的重要技能,它可以帮助我们从多个相关的表中获取...
Oracle数据库是全球广泛使用的数据库管理系统之一,其在企业级数据管理中扮演着核心角色。"Oracle分节练习题"着重于考察对Oracle数据库系统中SQL(结构化查询语言)和PL/SQL(Oracle的编程扩展)的理解和应用能力。...
Oracle是世界上最流行的数据库管理系统之一,尤其在企业级应用中占据主导地位。本资料"oracle课件和习题"提供了一个全面的学习平台,帮助你深入理解Oracle数据库系统的核心概念和技术。 Oracle数据库系统是关系型...
Oracle数据库是世界上最流行的数据库管理系统之一,它提供了丰富的SQL语法用于数据查询、操作和管理。以下是一些基于给定Oracle练习题的知识点: 1. **子查询**:在第一题中,我们看到一个简单的子查询来选取部门30...
Oracle数据库是世界上最流行的数据库管理系统之一,广泛应用于企业级的数据存储和管理。本资源"oracle练习题"显然聚焦于帮助用户提升在Oracle数据库操作和管理方面的技能。以下将深入讲解一些Oracle数据库的重要知识...
【Oracle练习题及答案(二)】 在Oracle数据库管理中,熟悉SQL查询是至关重要的,以下是一些关于SQL查询的示例题目及其解答,涵盖了多种常见的查询技巧。 1. 列出至少有一个雇员的所有部门 这个查询使用了子查询来...
Oracle是世界上最流行的数据库管理系统之一,尤其在企业级应用中占据着重要的地位。Oracle数据库系统以其高效、稳定和功能强大而闻名。本练习题集旨在帮助用户深入理解和掌握Oracle数据库的相关知识,包括SQL语言、...