create table testy (id varchar2(100),name varchar2(100),subject varchar2(100),point varchar2(100));
alter table testy add classcode varchar2(100);
alter table testy modify id not null;
delete testy;
drop table testy;
insert into testy (id,name,subject,point) values ('1','张三','语文','90');
insert into testy (id,name,subject,point) values ('2','张三','数学','58');
insert into testy (id,name,subject,point) values ('3','李四','语文','90');
insert into testy (id,name,subject,point) values ('4','李四','数学','90');
insert into testy (id,name,subject,point) values ('5','王五','语文','70');
insert into testy (id,name,subject,point) values ('6','王五','数学','80');
update testy t set t.classcode ='1231' where t.id ='1';
update testy t set t.classcode ='1232' where t.id ='2';
update testy t set t.classcode ='1233' where t.id ='3';
update testy t set t.classcode ='1234' where t.id ='4';
update testy t set t.classcode ='1235' where t.id ='5';
update testy t set t.classcode ='1236' where t.id ='6';
update testy t set t.classcode =null where t.id ='7';
commit;
select * from testy;
-- 查询每门功课都大于80分的学生姓名
select distinct name from testy t where t.name not in (select distinct name from testy y where y.point <= 80);
-- 删除除了自动编号不同,其他都相同的学生冗余信息
insert into testy (id,name,subject,point) values ('7','王五','语文','70');
insert into testy (id,name,subject,point) values ('8','王五','数学','80');
commit;
-- 方法1
delete testy a where a.id not in( select min(t.id) from testy t group by t.name,t.subject,t.point);
-- 方法2 查找表中多余的重复记录,重复记录是根据多个字段(name,subject)来判断
select *
from testy t
where t.name in (select a.name
from testy a
group by a.name, a.subject
having(count(a.name) > 1))
and rowid not in (select min(rowid) from testy b group by b.name,b.subject having(count(b.name)>1));
-- 删重复记录
delete testy t
where (t.name, t.subject) in
(select a.name, a.subject
from testy a
group by a.name, a.subject
having(count(a.name) > 1))
and rowid not in (select min(rowid)
from testy b
group by b.name, b.subject
having(count(b.name) > 1));
insert into testy (id,name,subject,point) values ('6','bob','数学','80');
insert into testy (id,name,subject,point) values ('7','bob Sim','数学','80');
delete from testy t where t.id ='7';
select * from testy t where t.id >all (1,3); -- any
select * from testy t where t.name like '_o%';
select * from testy t where t.name like '_ob';
select * from testy t where t.id between 3 and 6;
select * from testy t where t.id > 5 or t.name like'_ob' and t.point >90; -- 与下面的sql等效
select * from testy t where t.id > 5 or (t.name like'_ob' and t.point >90);
--- (+) 左(右)外连接
create table testz (id varchar2(100),classcode varchar2(100),className varchar2(100),header varchar2(100));
drop table testz;
delete from testz;
insert into testz (id,classcode,classname,header) values ('1','1231','高三(1)班','王怀平');
insert into testz (id,classcode,classname,header) values ('2','1232','高三(2)班','李伟');
insert into testz (id,classcode,classname,header) values ('3','1232','高三(3)班','陈胜');
insert into testz (id,classcode,classname,header) values ('4','1232','高三(4)班','李广');
insert into testz (id,classcode,classname,header) values ('5','1232','高三(5)班','吕布');
commit;
select * from testz for update;
select * from testy y ,testz z where y.id = z.id;
select * from testy y ,testz z where y.id = z.id(+);
select * from testy y ,testz z where y.id (+)= z.id;
分享到:
相关推荐
《SQL基础教程(第二版)_思维导图》是由日本作者MICK编写的一本关于SQL学习的经典著作,虽然这里无法提供完整的书籍内容,但通过提供的思维导图,我们可以深入探讨SQL的基础知识及其在数据库管理中的重要性。...
1. **SQL基础回顾**: 在这一部分,可能会对SQL的基本概念进行复习,如SELECT语句、FROM子句、WHERE子句等。学习者将被提醒如何从数据库中选取数据、指定数据来源以及设置筛选条件。 2. **聚合函数与GROUP BY**: ...
#### 二、SQL基础回顾 在深入探讨高级SQL编程之前,本书首先回顾了SQL的基础知识,包括但不限于: - 数据定义语言(DDL):如创建表、索引等。 - 数据操作语言(DML):如插入、更新、删除记录等。 - 数据查询语言...
#### 一、Oracle SQL 基础回顾与实践 在上一篇文章中,我们详细介绍了 Oracle SQL 的基础知识,包括数据类型、表的创建与管理、基本查询语句等。本篇文章将继续深入探讨更高级的主题,并通过实际案例加深对 Oracle ...
1. **SQL基础回顾**: - **DDL (Data Definition Language)**:用于定义数据库结构的语言,包括CREATE、ALTER、DROP等命令。 - **DML (Data Manipulation Language)**:用于操作数据的语言,主要包括INSERT、...
### MS SQL 基础语句教程 #### 第一天:SQL简介 - **SQL简史**:SQL(Structured Query Language)是一种用于管理关系型数据库的标准语言。它最初由IBM的三位研究人员于1974年提出,后来经过标准化,成为了一个...
第11章 T-SQL基础 11.1 使用多个表 11.2 变量 11.3 临时表 11.4 聚合 11.5 GROUP BY 11.6 HAVING 11.7 独特值 11.8 函数 11.9 RAISERROR 11.10 错误处理 11.11 @@ERROR ...
在本书的第一章中,作者们提供了SQL基础语法和核心概念的简要回顾。这部分内容对于新学习者来说是一个很好的起点,而对于有经验的用户,则可以作为一个快速复习。主要内容包括: - **SQL概述**:介绍SQL...
- **了解Microsoft SQL Server的发展历程**:回顾自1987年至2005年间,SQL Server的发展历史及重要版本的发布时间。 - **掌握SQL Server系统的体系结构**:理解SQL Server 2005的核心组件及其工作原理。 - **熟悉...
1. SQL基础 SQL(Structured Query Language)是用于管理关系数据库的语言。在这个压缩包中,你将学习如何使用SQL来创建、查询、更新和删除数据库中的数据。基础包括数据类型(如VARCHAR2,NUMBER,DATE等)、DML...
无论是初学者还是需要回顾复习的学员,都可以通过这些练习题来检验自己的理解程度,并进一步深化对SQL Server 2000的理解。通过反复实践和学习,你将能够熟练地掌握SQL Server 2000的各个方面,为未来在数据库管理和...
此外,本部分还提供了对SQL语言重要特性的快速回顾以及语言概述。 第二部分“检索数据”专注于SQL中的数据库查询功能。该部分从第5章开始,介绍了SQL的基本结构,并通过示例逐步深入讲解了构建更复杂的查询方法,如...
这对于日常工作中快速查找和回顾SQL语句非常有帮助。 《SQL 测验.doc》:这部分内容将提供一系列测试题目,以检验用户对SQL语法的掌握程度。测验可能包括选择题、填空题和实际的SQL编写任务,涉及从基础查询到复杂...
1. **SQL基础**: 本书首先回顾了SQL的基本概念,如SELECT语句、JOIN操作、聚合函数(COUNT、SUM、AVG等)、子查询以及WHERE和HAVING子句,确保读者对SQL有扎实的理解。 2. **高级查询技术**: 探讨了如何使用窗口...
- **发展历史**:回顾 SQL Azure 的发展历程,分析其市场定位和技术演进方向。 - **性能考量**:探讨 SQL Azure 在性能方面的特点,包括对开发者的影响及如何维护高性能的云数据库。 - **市场竞争**:分析 SQL ...
【SQL Server 2000 知识点详解】 ...通过上述内容,学生能够系统地学习和理解SQL Server 2000的基础知识,为进一步深入学习数据库管理和开发奠定坚实基础。在实践中,不断探索和解决遇到的问题,是掌握这些知识的关键。
内容概要:本文档详细介绍了复杂SQL语言的基础和进阶内容,涵盖基础SQL知识的回顾、复杂查询的构建方法、窗口函数的应用等。具体内容包括:数据定义语言(DDL)、数据操作语言(DML)、数据查询语言(DQL)和数据...
1. **SQL基础**:SQL是用于管理关系数据库的标准语言,它允许我们创建、查询、更新和管理数据。对于员工绩效考核,SQL可以帮助我们高效地存储、检索和处理绩效数据。 2. **数据库设计**:构建一个有效的员工绩效...
从回顾数据库的发展历程开始,简单介绍了数据库的分类和操作方式,并对数据库操作语言SQL进行了详细介绍。 第4~11章按照软件工程的应用步骤阐述了数据库系统的开发过程和技巧。各个数据库应用案例如下: ● 客户...