- 浏览: 80740 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (66)
- Html (4)
- j2se (19)
- jsp (1)
- xml (0)
- eclipse (1)
- Linux (7)
- 心情 (13)
- javascript (2)
- db (1)
- javascript常用代码 (1)
- PHP (1)
- spring source (0)
- Spring (0)
- Ibatis (0)
- Memcached (0)
- Ehcache (0)
- freeMarker (0)
- velocity (0)
- UML (0)
- SQL (0)
- DB2 (0)
- Oracle (0)
- Mysql (0)
- Spring Security (0)
- Log4j (0)
- Tomcat (0)
- MongoDB (0)
- Solr (0)
- Spring CXF (0)
- Maven (0)
- JPbm (0)
- Design Pattern (0)
- JVM (0)
最新评论
-
greathjt:
watchpoint等等怎么设置?
eclipse debugger use
解锁用户:alert user scott account unlock
本帖最近评分记录
用系统管理员账号登陆数据库:conn sys/sys as sysdba conn scott/tiger 或者connect user/pwd 切换用户 ed或者edit//打开一个缓冲文件 操作回滚:rollback,一旦提交(commit)则不可回滚; 数据操纵语言dml,数据定义语句ddl,数据控制语言dcl 显示表结构:desc emp --单行注释 /* */多行注释 SQL>@d:\student.sql //执行sql文件 -------------------------------------------------- --创建雇员表emp create table emp ( empno number(4) not null ,--员工号 ename varchar2(10),--员工姓名 job varchar2(9),--工种 mgr number(4),--所属经理编号 hiredate date,--入职日期 sal number(7,2),--薪水 comm number(7,2),--奖金 deptno number(2),--部门号 primary key(empno) ); --创建部门表dept create table dept ( deptno number(2) not null ,--部门号 dname varchar2(14),--部门名称 loc varchar2(13),--部门位置 primary key(deptno) ); --创建工资等级表salgrade create table salgrade ( grade number not null ,--等级 losal number,--最低薪水 hisal number,--最高薪水 primary key(grade) ); --------------------------------------------------------------------- select ename,sal*12 from emp; select 2*3 from emp; select 2*3 from dual;--计算表达式 select sysdate from dual;--获取系统当前时间 ----------------------------------------------------------------------- --字段取别名 select ename, sal*12 anuual_sal from emp;--取别名 select ename, sal*12 as anuual_sal from emp;--取别名 select ename, sal*12 "anuual sal" from emp;--取别名,可以显示空格,保持大小写 ------------------------------------------------------------------------------- --连接符 select ename||'aa''aa' from emp;--"||"连接符号,两个单引号表示一个单引号 ----------------------------------------------------------------------------- --distinct,不重复 select distinct deptno,job from emp;--先查询,再排除重复记录 ------------------------------------------------------------------------------ --between,范围之内 select * from emp where sal between 800 and 1500;--between相当于>= and <= -------------------------------------------------------------------------------- --null,空 空值是指不可用来分配的值 空值不等于空或空格 任何类型的数据都有空值 空值相加任何数据还为空 select ename,sal from emp where comm=null; --没有记录,没有实际用处 select ename,sal from emp where comm is null; --为空,有记录 select ename,sal from emp where comm is not null;--不为空 ------------------------------------------------------------------------- --in,在一个枚举的范围内 select ename,sal from emp where sal in(800,1500,1300); select ename,sal from emp where sal not in(800,1500,1300); -------------------------------------------------------------------------- --系统默认的日期格式 select ename,hiredate from emp where hiredate>'20-2月 -81'; -------------------------------------------------------------------------- --通配符,"_"匹配一个字符,"%"匹配任意的字符串 select ename,sal from emp where ename like '%a%'; select ename,sal from emp where ename like '_a%'; select ename,sal from emp where ename like '%\%%';--系统默认的转义字符为"\" select ename,sal from emp where ename like '%$%%' escape '$';--escape,指定转义字符 -------------------------------------------------------------------------------------- --order by,先查询,后排序,desc:降序,asc:升序(系统默认) select * from dept order by deptno desc; select * from dept where deptno<>10 order by deptno asc; select ename,sal,deptno from emp order by sal desc,deptno asc;--先按工资降序排列,工资相同的列,再按升序排列 --------------------------------------------------------------------------------------- --单行函数 --lower(),将字符串转化为小写 select ename from emp where lower(ename) like '%y%'; select ename from emp where ename like '%y%' or ename like '%Y%'; --upper(),将字符串转化为大写 select ename from emp where upper(ename) like '%Y%'; --substr()字符串截取 select substr(ename,1,3) from emp;--从ename中的第一个字符开始截取三个字符 --chr(),将数字转化其对应的ascii码字符 select chr(65) from dual; --ascii(),将对应的字符转化为其ascii码对应的数字 select ascii('A') from dual; --round()四舍五入,默认精确到各位 select round(23.652) from dual; select round(23.652,1) from dual; select round(23.652,-1) from dual; --to_char()将数字或日期转化为字符串 select to_char(sal) from emp; select to_char(sal,'$999,999,999.99') from emp;--将sal,安装相应的格式转化为字符串 select to_char(sal,'L999,999,999.99') from emp; select to_char(sal,'L000,000,000.00') from emp; $:美元,L或者l:本地货币 select to_char(hiredate) from emp; select to_char(hiredate,'yyyy-mm-dd hh:mi:ss') from emp; select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from emp; --to_date(),将当前固定格式的字符串转化为日期 select ename,hiredate from emp where hiredate>=to_date('2008-09-03 00:00:00','yyyy-mm-dd hh24:mi:ss'); --to_number(),将当前的固定格式的字符串转化为数字 select sal from emp where sal>to_number('$1,050.00','$9,999.99'); --nvl(),对为空的字段进行处理 select ename,sal*12+nvl(comm,0) from emp;--不会空,则加comm,为空则加0; ------------------------------------------------------------------------------- --组函数 --max():最大值,min():最小值,avg():平均值,sum():求和,count():统计记录数 select max(sal) from emp; select min(sal) from emp; select avg(sal) from emp; select sum(sal) from emp; select count(*) from emp; select count(comm) from emp;--不统计字段为空的记录 --group by分组 select deptno,avg(sal) from emp group by deptno; select deptno,job,avg(sal) from emp group by deptno,job;--deptno,job相同的记录为一组 ---------------------------------------------------------------------------------------------- --having,对分组进行过滤 select deptno,avg(sal) from emp group by deptno having avg(sal)>1000; ------------------------------------------------------------------------------------------------- select deptno,avg(sal) from emp where sal>1000 group by deptno having avg(sal)>1200 order by avg(sal) asc; -------------------------------------------------------------------- [ 本帖最后由 yiliren2000 于 2008-10-6 23:57 编辑 ]
一卷书,二人谈,三味斋,四方客,五音六律,七嘴八舌,九寻盏,十得杂语一堂。
|
|
TOP |
yiliren2000
浪曦会员 |
2# 大 中 小 发表于 2008-10-5 01:14 只看该作者
--case when,分支
统计empno<1003,empno<1005,和其他的记录的个数 select count(*), (case when empno<1003 then 1 when empno<1005 then 2 else 3 end) no from emp group by ( case when empno<1003 then 1 when empno<1005 then 2 else 3 end ); ---------------------------------------------------------------- --sql,1999新标准 select ename,sal from emp join (select max(sal) max_sal,deptno from emp group by deptno) t on (emp.sal = t.max_sal and emp.deptno=t.deptno); --交叉连接 select ename,dname from emp cross join dept; --等值连接 select * from emp,salgrade where emp.sal between salgrade.losal and salgrade.hisal; select ename,dname from emp join dept on(emp.deptno=dept.deptno); select ename,dname from emp join dept using(deptno); --非等值连接 select ename,dname,grade from emp e join dept d on (e.deptno=d.deptno) join salgrade s on (e.sal between s.losal and s.hisal) where ename not like '_A%'; --自连接 select e1.ename ,e2.ename from emp e1 join emp e2 on (e1.mgr=e2.empno) --外连接 select e1.ename,e2.ename from emp e1 left join emp e2 on(e1.mgr=e2.empno); select e1.ename,e2.ename from emp e1 right outer join emp e2 on(e1.mgr=e2.empno); select e1.ename,e2.ename from emp e1 full outer join emp e2 on(e1.mgr=e2.empno); --------------------------------------------------------------------------------------- --导出导出数据 drop user liuchao cascade;--删除用户liuchao exp--导出当前用户的表结构,和数据,在cmd中执行 --创建一个用户liuchao,密码liuchao,数据存在默认的表空间users,在表空间users分配大小为10M的空间 create user liuchao identified by liuchao default tablespace users quota 10M on users grant create session,create table,create view to liuchao;--授权liuchao用户可以连接数据库,创建表,创建视图 imp--导入表结构 create table emp2 as select * from emp;--复制emp表的数据到新创建的表emp2 ----------------------------------------------------------------------------------------------- --rownum,列号:每一个表都默认有一个显示列号的字段rownum select rownum,emp.* from emp; select rownum,ename from emp where rownum<=3; --运用虚列选出第n-m条的记录(效率较高) select * from ( select rownum row_num,emp.* from emp order by empno ) where row_num between 2 and 3; --利用分析函数:row_number() over ( partition by col1 order by col2 )选出第n-m条的记录 select * from ( select row_number() over (order by empno) no,emp.* from emp ) where no between 2 and 3; ----------------------------------------------------------------------------------------- --列约束条件 create table stu ( id number(6) primary key,--主键约束 name varchar2(20) constraint stu_name_nn not null,--不为空约束 sex number(1) check(sex in(0,1)),--检查约束 age number(3), sdate date, grade njmber(2) default 1,--默认约束 class number(4) references class(id),--外键约束 email varchar2(50) unique--唯一约束 ) create table stu ( id number(6), name varchar2(20), sex number(1), age number(3), sdate date, grade number(2) default 1, class number(4) , email varchar2(50), constaint stu_id_pk primary key(id), constaint stu_name_email_uni unique(email,name) constaint stu_class_fk foreign key(class) ) --添加,删除约束条件 alert table stu add(addr varchar2(100)); alert table stu add drop addr; alert table stu modify(addr varchar2(150)); alert table stu drop constraint stu_class_fk; alert table stu add constraint stu_class_fk foreign key(class) reference class(id) ; ----------------------------------------------------------------------------------------- 数据字典表的存储表(dictionary) desc dictionary select tablename from dictionary; 常用数据字典表(user_tables,user_views,user_constraints) desc user_tables; select table_name from user_tables; select view_name from user_views; select constraint_name from user_constraints; select constraint_name,table_name from user_constraints; select index_name from user_indexes; ---------------------------------------------------------------- --索引(提高对经常访问的字段读取速度) create index idx_stu_email on stu(email);--创建索引 drop index idx_stu_email;--删除索引 --视图(就是一个子查询) create view v$_stu as select id,name,age from stu;--创建视图 desc v$_dept_avg_sal_info;--显示表结构中的所有视图 ----------------------------------------------------------------------------- --序列(一般用于作为主键) create table article ( id number, title varchar2(1024), cont long ); create sequence seq;--创建序列 drop sequence seq;--删除序列 start with 1;--从1开始 select seq.nextval from dual;查询下一个序列值 insert into article values (seq.nextval,'a','b');--将虚列作为主键 --------------------------------------------------------------------- --思考题 部门平均薪水的等级 哪些人是经理 不用组函数求最高薪水 平均薪水最高的部门编号与名称 比普通员工的最高薪水还要高的经理人名称 求部门经理人中平均薪水最低的部门名称 求比普通员工的最高薪水还要高的经理人名称 求薪水最高的前五名雇员 求薪水最高的第六名的到十名雇员 -------------------------------------- --三范式 第一范式:要有主键,列不可分 第二范式:不能存在部分依赖, 第三范式:不能存在传递依赖 |
发表评论
-
Java中获取系统环境信息
2013-03-15 07:10 896将 getProperty(String) 方法使用的当前 ... -
Java 编程的动态性
2012-10-11 02:04 0Java 编程的动态性,第 1 部分: 类和类装入 ... -
读《重构》笔记
2009-02-12 01:08 828重构:改善即有代码 重构是一个过程,在不改变即有代码的外在行为 ... -
Object 源码
2008-12-21 12:24 1281Oject 源码: /* * @(#)Object.java ... -
thread 源码
2008-12-21 11:57 1051线程的状态:NEW , RUNNABLE , BLOCKED, ... -
java gc工作原理
2008-12-19 11:20 3015GC基本工作原理: java内 ... -
看《告诉你最真实的招聘潜规则》 有感
2008-12-18 09:31 709告诉你最真实的招聘潜规则 http://www.iteye.c ... -
时间管理
2008-12-17 14:20 541积极主动 ; 按计划行事 ; 任务细分----按任务分段- ... -
测试驱动开发 笔记
2008-12-14 17:14 710测试驱动开发是测试作为软件开发过程的中心,它要求在编写任何产品 ... -
集合类
2008-12-12 17:58 671集合类 Set HashSet 优点: 后台 ... -
think pattern in java 笔记1
2008-11-25 00:40 936模式概念: 模式是帮助 ... -
Linux jdk 安装
2008-10-22 19:54 7741.下载成功后上传至服务器任意目录 ... -
Hibernate对象持久化方法分析
2008-10-19 11:46 1928Hibernate对象持久化方 ... -
编写好的面向对象代码
2008-10-13 11:47 807本文是java.net上的一篇 ... -
Java I/O中的数据编码转换
2008-10-13 11:34 1023作者:Flyingis JDK1.4开始便引入了ja ... -
???Java容器分析--Map
2008-10-13 11:31 836作者:Flyingis标准的Java类库中包含了几种类型的M ... -
Java容器分析--List和Set
2008-10-13 11:26 831作者:Flyingis ... -
Java I/O中的对象序列化
2008-10-13 11:17 779Java对象序列化将那些实现了Serializable接口 ... -
eclipse debugger use
2008-10-11 13:32 1791最基本的操作是:1, 首先在一个java文件中设断点,然后运行 ... -
java信徒齐(七)步走
2008-10-08 16:19 945Java信徒齐(七)步走: 0) ...
相关推荐
oracle基础教程 课程说明 1 课程介绍 1 课程目标 1 相关资料 1 第1章 ORACLE数据库概述 2 1.1 产品概述 2 1.1.1 产品简介 2 1.1.2 基本概念 3 1.2 ORACLE系统结构 4 1.2.2 ORACLE物理结构 4 1.2.3 系统全局区 6 ...
对于初学者来说,掌握Oracle基础知识是进入数据库领域的第一步。本文将深入浅出地介绍Oracle数据库的一些核心概念和基本操作,帮助你快速入门。 一、Oracle数据库系统概述 Oracle数据库是由美国Oracle公司开发的,...
oracle ORACLE 基础资料 基础知识 培训资料oracle ORACLE 基础资料 基础知识 培训资料oracle ORACLE 基础资料 基础知识 培训资料oracle ORACLE 基础资料 基础知识 培训资料
Oracle 基础教程 Oracle 是一款流行的关系型数据库管理系统,由 Oracle 公司开发和维护。作为一个功能强大且广泛应用的数据库管理系统,Oracle 具有强大的数据存储和管理能力,广泛应用于各种 Industries,包括金融...
通过本Oracle基础教程PPT,你将逐步了解并掌握这些概念,为你的Oracle学习之路打下坚实基础。随着对Oracle的理解加深,你还可以进一步探索高级主题,如数据仓库、分布式数据库、RAC集群等。学习Oracle不仅是技术的...
以下将详细讲解Oracle基础知识,包括数据库管理、表的创建与维护、SQL查询技巧、权限管理以及PL/SQL编程等方面。 1. **Oracle数据库优势** Oracle数据库因其高性能、高可用性和安全性而受到青睐。它支持大规模并发...
这个"oracle基础知识考试题_答案.zip"压缩包文件包含了关于Oracle数据库的基础知识学习材料,特别是针对初学者或者准备Oracle相关资格考试的人员。 首先,Oracle数据库的核心概念包括SQL(结构化查询语言)的使用,...
本资料“oracle基础知识回顾与练习.zip”是针对Oracle数据库的基础知识进行整理,采用纯SQL语句的形式,适合初学者及需要巩固基础的用户进行学习和实践。 1. SQL基础 SQL(Structured Query Language)是用于管理...
Oracle基础教程.pdf
ORACLE基础知识及故障定位 学校oracle基础知识,包含所有orcale的数据库知识,以及常见问题解决思路,解决方案,问题怎么定位。
oracle基础创建表,删除表,修改表,查看表的结构和数据,添加数据语法:删除数据语法,更新数据语法:基础查询语法:
《Oracle基础教程》是由James Perry和Gerald Post合著,并由钟鸣、郝玉洁等人翻译的一本教育性书籍,旨在帮助初学者和专业人士理解Oracle数据库的基础知识。源码下载部分提供了书中各章节实例的数据文件,使读者能够...
本文将基于"Oracle基础资料"这一主题,结合提供的压缩包文件"Oracle8i_9i数据库基础.doc",深入探讨Oracle数据库的基础知识,包括其核心概念、数据类型、SQL语句、表的创建以及备份恢复策略。 首先,Oracle数据库的...
oracle基础教程,很适合oracle的学习和数据库的操作练习。同时里面主要是以练习为主。包括了ORACLE的基础操作。
这篇“Oracle基础培训文档”旨在为初学者提供一个全面了解Oracle数据库的平台,帮助大家掌握其基本概念、操作和管理技巧。 首先,我们从基础开始,Oracle数据库的核心是SQL(结构化查询语言),它是用于管理和处理...
"Oracle基础教程.pdf" 提供了丰富的学习资源,共分为21章,涵盖了Oracle数据库的核心概念和技术。 第1章:Oracle简介 本章将介绍Oracle数据库的历史、特点和应用领域,以及它在现代企业级数据管理中的重要地位。你...
以上是Oracle基础训练的主要内容,通过深入学习和实践,你将能熟练掌握Oracle数据库的基础操作和高级特性。"Oracle基礎教程(一).ppt"至"Oracle基礎教程(三).ppt"中的材料将帮助你逐步掌握这些知识,为你的数据库管理...
"Oracle基础知识"涵盖了SQL语言的基本概念以及Oracle 10G版本的相关特性。以下将详细介绍这些知识点。 首先,SQL(Structured Query Language)是用于管理和处理关系数据库的标准编程语言。SQL基础包括以下几个部分...
Oracle 基础知识点总览 Oracle 基础知识点可以概括为以下几个方面: 1. Oracle 概述 Oracle 是一种对象关系数据库管理系统(ORDBMS),它提供了关系数据库系统和面向对象数据库系统这二者的功能。Oracle 数据库...