`
wfzhanga
  • 浏览: 70215 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

oracle 基础sql

阅读更多

 

1.数据基础表:

t_user数据表

 

 

 

 

 

 

 

 

 

 

 

 

2.简单增删改语句:

insert into t_user(id,username,password,roleid) values(seq_user.nextval,'wind','520',109);
delete from t_user t where t.roleid is null; 
update t_user t set t.username='saturn',t.password='456' where t.id=106; 

 

 3.查询语句:

     1) count|distinct

select count(*) from t_user t; //统计表的记录数
select distinct(t.username) from t_user t; //返回不重复的username
select count(distinct t.username||t.password) from t_user t; 
//统计表不重复username和password的记录数
select t.username,count(t.username) from t_user t group by t.username having count(t.username)>1  //统计重复username的:username及其重复次数

 

 

 

    2)inner join | outer left join | outer right join

t_t1
1 A
2 B
3 C

t_t2

ColumnC ColumnD
2 x
4 Y

 

a)inner join

Select * from t_t1 a inner join t_t2 b on a.columna=b.columnc;

 

columnA columnB columnC columnD
2 B 2 X

b)left outer join

 

Select * from t_t1 a left outer join t_t2 b on a.columna=b.columnc;

 

columnA columnB columnC columnD
1 A
2 B 2 X
3 C

c)right outer join

 

Select * from t_t1 a right outer join t_t2 b on a.columna=b.columnc;

 

columnA columnB columnC columnD
2 B 2 X
4 Y

 

d)连接三张表:

Select * from (tableA ainner join tableB b on a.id=b.id) inner join tableC c on c.id=tableA.id 

 

 

3)oracle 分页查询:

select * from (select rownum,t.* from t_user t) where rownum>=1 and rownum<=5;
select * from (select rownum rn,t.* from t_user t order by t.id desc) where rn between 4 and 20; 

 

 

4)多表查询:

select t.* from t_user t,t_role t1 where t.roleid=t1.id and t1.rolename='管理员'; 

 

 

5)oracle时间的处理:

 

默认设置时间类型为:date   采用函数 to_date('2010-09-07','yyyy-mm-dd'),或 to_date('2010-9-5 10:00:00','yyyy-mm-dd HH24:MI:SS')

insert into t_log t values(hibernate_sequence.nextval,104,'新建用户114', to_date('2010-9-5 10:56:47','yyyy-mm-dd HH24:MI:SS'));

select t.* from t_log t where cdate between to_date('2010-09-05','yyyy-mm-dd') and to_date('2010-09-07','yyyy-mm-dd') 
 

 6)top N等问题:

select t.* from t_user t where rownum<=3 order by t.id ; 
//前三最小值

select t.* from t_user t where rownum<=3 order by t.id desc;
//前三最大值

select avg(t.roleid),sum(t.id) from t_user t
//平均值与统计
select t.* from t_log t where t.userid<(select avg(id) from t_user);
//
select t.username,avg(t.roleid) from t_user t group by t.username ;
//统计表中某相同字段username的roleid平均值
select min(t.username),max(t.password) from t_user t 
//最大值与最小值
 

 7)字符函数:

 

select upper(substr(username,1,1))||lower(substr(username,2,length(username)-1)) from t_user 
//将t_user表中的username字段内容的第一个字母大写显示,之后的小写显示

 8)相关函数

PL/SQL Mod,Ceil,floor,round函数
Mod是求余;
Ceil是取靠近值最大的整数;
floor是取靠近值最大的整数;
round是四舍五入;
select mod(10,3) from dual ---1
select mod(4.1,3.1) from dual ---1
select mod(4.9,3.1) from dual ---1.8
select ceil(10/3) from dual ---4
select ceil(3.1) from dual ---4
select floor(3.1) from dual ---3
select floor(3.9) from dual ---3
select round(3.5) from dual ---4
select round(3.1) from dual ---3
 
3.oracle笔试题
题目1:显示各门课程的考场数目和可容纳的考生
各数据表结构如下:
表1:课程表 TC
cid 课程id
cname 课程名
Ctype 考试方式
表2:考场表 TR
Roomid 考场id
address 考场地址
Contain 容纳人数
表3:考场课程对应表 TCR
cid 课程id
roomId 考场id
 
sql:select s.cname,count(s.cname),sum(s.CONTAIN)  from (select * from TC c,TR r,TCR cr where cr.cid=c.cid and cr.roomid=r.roomid) s group by s.cname;
 
写道
题目2:显示考试安排有冲突的考生及考试课程和时间
所谓有冲突,就是指一个考生同一时间(或考试时间有交集)安排了两门及两门以上的考试
表1:课程表 TC
cid 课程id
cname 课程名
Ctype 考试方式
表2:考试表t_exam
eId 考试id
cid 课程id
beginTime 开始时间
endTime 结束时间
表3:考试安排表
studentId 学生id
examId 考试id
 
1) select distinct(t1.eid),t1.btime,t1.etime from t_exam t1, t_exam t2 where ((t1.btime between t2.btime and t2.etime)
  2  or (t1.etime between t2.btime and t2.etime)) and t1.eid!=t2.eid order by t1.eid;

2) select distinct(t1.eid),t1.btime,t1.etime from t_exam t1, t_exam t2 where (t1.btime>t2.btime and t1.btime<t2.etime)
or (t1.etime>t2.btime and t1.etime<t2.etime) or (t1.btime in (select t.btime from t_exam t group by t.btime having count(t.btime)>1)) order by t1.eid;
 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    oracle sql 基础

    oracle sql function

    Oracle Sql基础(beginning oracle sql中文版)

    本资源“Oracle Sql基础(beginning oracle sql中文版)”旨在为初学者提供一个全面的Oracle SQL学习指南。让我们深入探讨Oracle SQL的基础知识。 一、SQL简介 SQL(结构化查询语言)是用于管理关系数据库的标准...

    oracle基础sql_建表_dml_ddl_dql_及常用内置函数等

    详细介绍了oracle的建表语句 增删改查 内外连接查询 授权用户 建sequence oracle常用内置函数 ddl语句 事务控制语句 tcl 等

    Oracle-SQL.rar_oracle_oracle sql_sql

    在“Oracle-SQL.rar”这个压缩包中,包含了一份名为“Oracle SQL.ppt”的文件,这可能是一个PowerPoint演示文稿,用于详细讲解Oracle数据库的基础知识和SQL语言的使用。下面,我们将深入探讨一些Oracle SQL的基础...

    oracle数据库sql基础

    **Oracle数据库SQL基础** 在IT领域,Oracle数据库是全球广泛使用的数据库管理系统之一,而SQL(结构化查询语言)则是与数据库交互的基础工具。本篇将深入讲解Oracle SQL的基础知识,包括基本的SQL语句、单行函数、...

    Oracle四大宝典之一:Oracle Sql基础 中文版

    第三章 ORACLE SQL 单行函数 第四章 从多表中查询数据 第五章 用组函数合计数据 第六章 子查询 第七章 操纵数据 第八章 创建和管理表 第九章 内置约束 第十章 创建视图 第十一章 其他数据库对象 第十二章 控制用户...

    oracle 中的SQL语言基础

    oracle 中的SQL语言基础 oracle 中的SQL语言基础

    数据库开发 Oracle数据库 SQL开发教程 全套PPT课件 共20个章节.rar

    数据库开发 Oracle数据库 SQL开发教程 第01章 Oracle数据库基础(共60页).pdf 数据库开发 Oracle数据库 SQL开发教程 第02章 编写简单的查询语句(共34页).pdf 数据库开发 Oracle数据库 SQL开发教程 第03章 限制...

    oracle、sql语句基础

    oracle、sql语句基础

    Oracle&Sql基础(ppt)

    通过"Oracle&Sql基础(ppt)"的学习,初学者将能够理解和掌握Oracle数据库的基本操作以及SQL语言的使用,为后续的数据库管理和开发工作打下坚实的基础。而文件"1.ppt"和"2.ppt"可能是这个主题的两个部分,分别深入讲解...

    Oracle相关SQL葵花宝典

    本书全面涵盖了从基础到高级的Oracle SQL知识,旨在帮助读者熟练掌握在Oracle环境中进行数据查询、操作、分析以及程序开发的各种技巧。 在Oracle数据库系统中,SQL(Structured Query Language)是用于管理关系...

    Oracle_SQL_实用基础教程

    Oracle_SQL_实用基础教程

    ORACLE SQL性能优化系列

    ORACLE 的解析器按照从右到左的顺序处理 FROM 子句中的表名,因此 FROM 子句中写在最后的表(基础表 driving table)将被最先处理。在 FROM 子句中,选择最有效率的表名顺序非常重要。 四、其他优化技术 除了以上...

    Oracle PL SQL基础

    PL/SQL(Procedure Language/Structuer Query Language)是Oracle对标准SQL规范的扩展,全面支持SQL的数据操作、事务控制等。PL/SQL完全支持SQL数据类型,减少了在应用程序和数据库之间转换数据的操作。

    Oracle SQL(SQL for Oracle)

    Oracle SQL,全称为结构化查询语言在Oracle数据库环境中的应用,是数据库管理员和开发人员用于检索、更新和管理Oracle数据库的核心工具。Oracle SQL是SQL标准的扩展,它提供了许多特有的功能,以满足企业级数据库...

    oracle-sql.rar_oracle

    首先,"oracle常用经典sql查询.doc"很可能包含了各种常见的SQL查询语句,这些语句对于理解和掌握Oracle SQL的基础至关重要。这可能包括了如何选择(SELECT)、插入(INSERT)、更新(UPDATE)和删除(DELETE)数据,...

    Oracle SQL:经典练习题(附答案)

    Oracle SQL是数据库管理和数据分析的重要工具,尤其在处理Oracle数据库时不可或缺。本文提供的经典练习题旨在帮助初学者熟悉SQL语句的编写,特别是针对Oracle数据库特有的功能。以下将详细讲解涉及的知识点。 1. **...

    精通Oracle_SQL(第2版)含源码

    书中不仅包含了基础的SQL语法,还涵盖了高级特性和最佳实践,是Oracle DBA、开发人员和数据分析师的重要参考资料。 1. **SQL基础知识**:本书首先介绍了SQL的基本概念,包括数据定义(DDL)、数据操纵(DML)和数据...

    oracle_sql笔记

    一、基础SQL语法 Oracle SQL遵循标准的SQL语法,包括SELECT、INSERT、UPDATE、DELETE四大语句。用于查询数据的基本结构是SELECT字段列表FROM表名WHERE条件,这允许我们从一个或多个表中提取满足特定条件的数据。...

Global site tag (gtag.js) - Google Analytics