- 浏览: 240667 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
akka_li:
学习了!但是为什么后续的没有了?!
EJB4:RMI和RMI-IIOP -
springaop_springmvc:
apache lucene开源框架demo使用实例教程源代码下 ...
Lucene学习笔记(一)Lucene入门实例 -
qepipnu:
求solr 客户端 jar包
Solr学习笔记(三)Solr客户端开发实例 -
zhangbc:
是这问题,赞!
Oracle Start Up 2 Oracle 框架构件、启动、解决一个问题 -
feilian09:
查询 select hibernate jdbc 那个效率快
Hibernate,JDBC性能探讨
1. 创建TableSpace、用户及给用户分派权限
可以通过Oracle客户端工具Enterprise Manager Console连接相应数据库,通过图形化操作来完成,这里我记录通过sqlplus连接到Oracle,通过命令来完成创建TableSpace、用户及给用户分派权限:
create tablespace testall datafile 'c:\oracle\product\oradata\datafile.dbf' size 100M; create user kylin identified by ADMIN default tablespace testall; grant connect,resource,dba to kylin;
2.简单的表操作
以上面创建的用户连接到数据库,创建一个表,向表中插入一条数据,查询数据,删除表,如下所示:
create table student( name varchar2(20), age number(3) ); insert into student values('Kobe Bryant',32); select * from student; desc student; drop table student;
3.用Scott用户登录,练习一组查询语句
select empno,ename,job,sal,sal*12+200 from emp; select empno,hiredate, hiredate+10 from emp; select ename||' is a '||job from emp; select ename||' ''s annual salary is '|| sal*12 from emp; select empno as employeeId, ename name, job "Job",sal*12 "Annual Salary" from emp; select empno "Empno",ename "Ename",sal, comm, ename||' - '|| comm, sal+comm from emp;
用DISTINCT 去除重复行
select deptno from emp; select distinct deptno from emp; select distinct deptno, job from emp;
查询结果排序ORDER BY,ASC(升序,缺省),DESC(降序)
select * from emp order by sal; select * from emp order by sal desc; select ename,sal,deptno from emp; select ename,sal,deptno from emp order by sal desc,deptno; select ename,sal,deptno from emp order by sal desc,deptno desc;
条件查询
select * from emp where ename='SMITH'; select * from emp where deptno=10; select * from emp where sal >= 3000; select * from emp where sal >= 3000;
获取当前系统时间:
比较查询
select * from emp where sal between 1200 and 1900; select * from emp where ename in ('SCOTT','WARD'); select * from emp where deptno <> 30;
模糊查询(%表示一个或多个字符,_表示一个字符,对于特殊字符可以用ESCAPE来查找)
select * from emp where ename like 'S%'; select * from emp where ename like '_A%'; select * from emp where ename like '%\_%' escape '\';
空值判断
select * from emp where comm is null; select * from emp where comm is not null;
逻辑运算符
select * from emp where sal>2000 and deptno=20; select * from emp where sal>2000 or deptno=20; select * from emp where ename not in('SIMITH','JONES','KING','SCOTT');
4.Oracle主要数据类型
char | 字符型,最大长度2000B,缺省长度1B |
nchar | 基于NLS(National Language Support)的字符型,最大长度2000B,缺省长度1B |
varchar2 | 可变长度字符型,最大长度4000B |
nvarchar2 | 基于NLS,其余同varchar2 |
varchar | 同varchar2 |
number(m,n) | 数值型,m为总位数,n为小树位数,m最大为38 |
date | 日期型,保存日期和时间 |
long | 变长字符型,最大长度2GB,不支持对字符串进行搜索 |
raw | 变长二进制数据类型,最大长度2000B |
long raw | 变长二进制数据类型,最大长度2GB |
blob | 二进制大对象类型,最大长度4GB |
clob | 字符大对象类型,最大长度4GB |
nclob | 基于NLS,同nclob |
bfile | 在数据库外部保存的大型二进制文件的大对象类型,最大长度4GB |
5.函数
字符函数
函数 | 功能 | 用法 | 返回结果 |
lower() | 转化为小写 | lower(KOBE BRYANT) | kobe bryant |
upper() | 转化为大写 | upper(kobe bryant) | KOBE BRYANT |
initcap() | 字母首字母大写 | initcap(KOBE BRYANT) | Kobe Bryant |
concat() | 字符串连接 | concat('Kobe','Bryant') | Kobe Bryant |
substr() | 字符串截取 | substr('Kobe Bryant',6,6) | Bryant |
length() | 返回字符串长度 | length('Kobe Bryant') | 11 |
instr() | 定位字符串 | instr('Kobe Bryant','be') | 3 |
lpad() | 左侧填充 | lpad('kobe',10,'*') | ******kobe |
rpad() | 右侧填充 | rpad('kobe',10,'*') | kobe****** |
trim() | 过滤首尾空格 | trim(' Kobe Bryant ') | Kobe Bryant |
replace() | 替换 | replace('Kobe Bryant','Kobe','Kylin') | Kylin Bryant |
SQL语句:
select empno,lower(ename),job from emp; select empno,initcap(ename),job from emp; select concat('Kobe','Bryant') from dual; select substr('Kobe Bryant',6,6) from dual; select length('Kobe Bryant') from dual; select instr('Kobe Bryant','be') from dual; select lpad('kobe',10,'*') from dual; select rpad('kobe',10,'*') from dual; select trim(' Kobe Bryant ') from dual; select replace('Kobe Bryant','Kobe','Kylin') from dual;
数值函数
函数 | 用法 | 功能 | 返回结果 |
abs() | 取绝对值 | abs(-3.14) | 3.14 |
round() | 四舍五入 |
round(3.1415) round(3.1415,3) round(314.1592,-2) |
3 3.142 300 |
trunc() | 截断 | trunc(3.1415,3) | 3.141 |
ceil() | 向上取整 | ceil(3.14) | 4 |
floor() | 向下取整 | floor(3.14) | 3 |
sign() | 判断数值正负 |
sign(-3.14) sign(0) sign(3.14) |
-1 0 1 |
sin() | 三角函数 | sin(3.14) | .001592653 |
power() | 冥运算 | power(4.5,2) | |
sqrt() | 开平方根 | sqrt(9) | 3 |
mod() | 取模 | mod(10,3) | 1 |
exp() | 基数为e的冥运算 | exp(1) |
|
相关SQL语句
select ename,sign(sal-1250) "Salary Info" from emp; select sin(3.14) from dual;
日期类型相关函数
函数 | 功能 | 用法 | 返回结果 |
add_months(x,y) | 计算在日期x上加上y个月后的日期 | add_months(sysdate,2) | |
last_day(x) | 返回日期x当月最后一天的日期 | last_day(sysdate) | |
months_between(x,y) | 返回日期x和y之间相差的月数 | months_between(sysdate,sysdate) | |
round(x,y) | 将日期x四舍五入到y所指定的日期单位(月或年)的第一天 |
round(sysdate,'month') round(sysdate,'year') |
01-10月 -10 01-1月 -11 |
trunc(x,y) | 将日期x截断到y所指定的日期单位(月或年)的第一天 |
trunc(sysdate,'month') trunc(sysdate,'year') |
01-10月 -10 01-1月 -10 |
next_day(x,y) | 计算指定日期x后的第一个星期几(由参数y指定)对应的日期 | next_day(sysdate,星期二) |
相关测试SQL语句
select add_months(sysdate,2) from dual; select last_day(sysdate) from dual; select ename,months_between(sysdate,hiredate) from emp; select round(sysdate,'month') from dual; select round(sysdate,'year') from dual; select trunc(sysdate,'month') from dual; select trunc(sysdate,'year') from dual; select next_day(sysdate,'星期二') from dual;
转换函数
如下图所示,为常用几个转换函数
常用日期格式符:
格式符 | 说明 | 举例 |
yyyy | 年份 | 2010 |
mm | 用数字显示月份 | 10 |
dd | 在当月中是第几天 | 5 |
day | 星期几 | 星期日 |
am/pm | 显示上午或下午 | 上午 |
hh/hh12/hh24 | 小时 | 7:41 21:41 |
mi | 分钟 | 41 |
ss | 秒 | 46 |
除上述格式符外,Oracle中日期模式还常用:"- : ; /",如要显示其他文本字符串则需要使用双引号括起来;也可以模式串的开头使用"fm"标记以去掉数字前面的零。
SQL描述
select empno,ename,job, to_char(hiredate,'yyyy-mm-dd') from emp; select to_char(sysdate,'yyyy-mm-dd hh:mi,ss am') from dual; select to_char(sysdate,'yyyy"年"mm"月"dd"日" hh:mi,ss am') from dual; select to_date('2010-10-02','yyyy-mm-dd') from dual;
常用数字描述符:
格式符 | 说明 |
9 | 代表一位数字 |
0 | 代表一位数字,强制显示0 |
$ | 放置一个美元符 |
L | 放置一个本地货币符 |
. | 小数点 |
, | 千位指示符 |
SQL示例:
select to_char(123123.123456) from dual; select to_char(123456.123456,'$999,999.0000000') from dual; select to_number('123456') from dual; select to_number('985,365.1245','999,999.000000') from dual;
发表评论
-
Oracle - Add Exist Validation Before Create Table
2011-11-07 13:49 1463Usually we need to check the ta ... -
Oracle - An Managing Lob examples
2011-10-30 17:28 1454I met a request: I need to read ... -
PL/SQL Studing Notes
2011-10-20 21:48 1390As an extension of native ... -
一组Linux命令
2011-09-29 13:09 1484今天做测试发现Oracle服务器磁盘使用率达到100%导致Or ... -
Thinking in JDBC
2011-09-22 20:56 1882This blog will beas on a series ... -
Oracle Reference Exception Gallery
2011-07-05 22:28 1650The Following Exception is real ... -
SQL Studying Note I - Join
2011-07-02 10:28 1247SQL Join SQL Join are u ... -
Windows批处理脚步实例-创建Oracle数据库用户并向该用户添加数据
2010-12-11 09:25 3452Windows批处理使用方便、 ... -
Oracle starting up 5: Oracle 10g在WINDOWS服务中有5个Oracle服务项及解决与服务项相关的几个问题
2010-10-10 17:25 2347在Windows下安装Oracle 10g,安装完后在WIND ... -
Oracle starting up 5: Oracle数据库基础(续)
2010-10-07 14:15 0通用函数; 通用函数用于任何类型数据(包括空值) ... -
Oracle starting up 4: Oracle 10g 客户端 enterprise manager console 消失问题
2010-10-06 15:20 4326在家装了台服务器,因为家里电脑不行,所以服务器和客 ... -
Oracle Start Up 2 Oracle 框架构件、启动、解决一个问题
2010-10-02 14:07 34888Warming Up: 本文 ... -
Oracle Start Up 1: 几个概念和Oracle数据库的物理结构和逻辑结构
2010-09-29 23:31 2060Oracle 基本概念 数据库(Database) ... -
Oracle 连接错误;ORA-27101: shared memory realm does not exist
2010-09-28 14:27 26372XP下安装Oracle10g 昨天下午刚安装完可以连接(Sq ... -
SQL Server 2005 dev 学习(1)
2010-09-26 15:14 1995关键字:SqlServer2005Dev版本安装 SQL Se ... -
Cassandra Dev 3:Cassandra 应用之CassandraAppender
2010-08-13 13:59 2106本文的目的是展示 ... -
Cassandra Dev 2: Cassandra入门(续) - Cassandra Cluster
2010-08-09 13:56 58075. Cassandra CLI 一般数据库服务器都会提供一 ... -
Cassandra Dev 1: Cassandra 入门
2010-08-06 17:55 4623最近, Cassandra 绝对是一个比较前端的话题 ...
相关推荐
7. **安装Oracle数据库软件**:现在,你可以在离线环境中运行Oracle数据库的安装脚本了。将Oracle 11g的安装介质挂载到一个目录,如`/media/cdrom0`,然后以`oracle`用户身份运行安装程序。 ``` su - oracle cd ...
- 作用:导出源数据库的数据,作为备份或迁移的基础。 9. **导入数据 (Import Data)**: - 命令:`IMPDP / IMP` - 作用:将导出的数据导入到目标数据库中。 10. **启动捕获 (Start Capture)**: - 命令:`EXEC...
3. **在 Standby 服务器上创建数据库**:在 Standby 服务器上创建一个新的数据库实例,如 `Pstandby`,但不完成初始化过程。 4. **恢复和打开 Standby 数据库**:使用 `RESTORE` 和 `RECOVER` 命令恢复数据文件,并...
Oracle Sharding 是Oracle数据库提供的解决方案,使得应用程序可以将数据存储在多个分片中,每个分片都像是独立的数据库一样运行,而系统则可以透明地管理这些分片。 Linux操作系统是Oracle数据库广泛应用的操作...
Oracle数据库在Linux系统中的自动启动与停止配置是系统管理员必须掌握的关键技能,它涉及到系统服务管理、用户权限以及脚本编程。以下将详细介绍这个过程。 首先,我们需要了解Oracle数据库自动启动的核心配置文件...
Oracle数据库有哪几种启动方式 说明: 有以下几种启动方式: 1、startup nomount 非安装启动,这种方式启动下可执行:重建控制文件、重建数据库 读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动...
在Oracle数据库中,字符串处理是日常数据库操作的重要组成部分。这里我们详细探讨了多个与字符串相关的函数,它们在处理和操作文本数据时非常有用。 1. **SUBSTR** 函数:这个函数用于从字符串中提取子串。基本语法...
start up; ``` 4. **恢复初始设置**(如果遇到问题): - 当修改 SGA 参数导致数据库无法启动时,可以通过以下步骤恢复: - 使用 DOS 端登录 Oracle: ``` sqlplus /nolog Conn / as sysdba ``` - 找到...
Oracle数据库是企业级广泛应用的关系型数据库管理系统,而Oracle BAT脚本则是Windows环境下使用批处理(BAT)文件对Oracle数据库进行操作的一种方式。本篇将详细阐述如何利用Oracle BAT脚本来实现每日定时备份与清理...
- **MSSQL与Oracle**:基本语法一致,但Oracle提供了更丰富的功能,如`WITH`子句用于定义子查询,以及`CONNECT BY`和`START WITH`用于层次查询。 综上所述,无论是命名规范还是具体的语法特性,Oracle与MS SQL ...
在Redhat Linux上安装Oracle 9i是一项技术性较强的任务,涉及到操作系统配置、软件依赖、系统用户设置等多个方面。...通过这个过程,你不仅可以提升Linux系统的操作技能,还能深入理解Oracle数据库的架构和运作机制。
3. **StatspackCleanup.ksh 和 statspack_cleanup.ksh**:Statspack 是 Oracle 9i 提供的一个性能分析工具,这两个脚本用于清理 Statspack 收集的旧统计信息。定期清理可以节省存储空间,并保持性能报告的时效性。...
Oracle 9i Streams 是 Oracle 数据库的一个关键组件,主要用于实现数据库间的实时数据复制与传输。它通过捕获源数据库(Source Database)上的变更数据,并将这些变更应用到目标数据库(Target Database)上,从而...
Oracle Streams是Oracle数据库提供的一种用于实时捕获、传播和应用数据库变化的技术。它支持多种类型的数据移动需求,包括异构环境下的数据复制、数据整合以及实时数据分析等场景。在数据迁移项目中,Oracle Streams...
在Linux环境下,Oracle数据库并不默认设置为开机自启动。因此,如果你在CentOS 6.3上安装了Oracle 10g R2,你需要手动配置它以实现开机启动。以下是一份详细的步骤来帮助你设置Oracle数据库的开机自启动。 **一、...
Cleaning up Everything [root@node1 mnt]# 4、软件包规划 安装所有依赖包 binutils-* compat-libstdc++-* elfutils-libelf-* elfutils-libelf-devel-* gcc-* gcc-c++-* glibc-* glibc-common-* glibc-devel-* ...
Oracle Job 是 Oracle 数据库中的一个特性,用于在指定的时间执行一系列数据库操作,这些操作可以是 PL/SQL 块、存储过程或者包。这个功能在数据库管理、数据维护、批处理任务等方面非常实用。在本篇文章中,我们将...
在Oracle数据库管理中,启动和关闭数据库是日常运维的重要环节,涉及到数据库实例的生命周期管理和数据安全。数据库实例是由服务器上的内存结构和一系列服务进程组成的,它负责管理数据库的运行状态和处理用户请求。...