Oracle操作

   1.查看当前数据库的实例名: show parameter instance_name

  2.数据表结构的相关操作

  创建数据表: create table 表名(列1 数据类型1,列2 数据类型2…….) tablespace 表空间名

  修改数据表:

  l 添加新列: alter table 表名 add (新添加的列名 数据类型 )

  l 修改和删除已有列:alter table 表名 modify(列名 数据类型); alter table 表名 drop column 列名;

  l 重命名列:alter table 表名rename column 旧列名 to 新列名

  l 将表转移到另一个表空间中: alter table 表名 move tablespace 新的表空间

  删除数据表: 当一个数据表没有存在的意义时,则需要执行删除操作

  drop table 命名

  有时,由于某些约束的存在,例如,当前表的主键被其他表用作外键,会导致无法成功删除。利用casca

de constraints选项可以将约束同时删除,从而保证drop table 命令一定能够成功执行。

  3.利用user_tab_cols根据列名获得所在表的信息

  例如:

  Select table_name from user_tab_cols wherelower(column_name)='student_id';

  4.更新数据

  向数据表插入数据: insert into 表名(列名1,列名2,列名3...列名n)

  values(值1,值2,值3...值n);

  更新数据:

  ? 更新单列:update 表名 set 列=新值;

  ? 更新多列:update 表名 set 列1=新值1,列2=新值2,...

  ? 注意事项:对于update操作,最容易被忽视的就是添加where条件。上面两条语句是很危险的。因为没有添加任何限制条件,因此Oracle将更新表中的所有数据。而实际应用中,往往只需要更新部分数据。因此,对于重要数据的update操作,

首先添加where关键字是一个好的习惯,尽管有时候并不需要过滤条件。例:update 表名 set 列=新值 where...;

  5.删除数据

  delete 操作用于删除表中数据。除了delete语句之外,truncate命令同样可以删除表中数据。

  delete from 表名 因为删除动作的作用对象为记录级别,因此无需指定列名信息。

  delete from students where student_id>10;如同update 语句,在使用delete语句时,添加where字句是一个好的习惯。

这样可以避免删除表中的所有数据。

  truncate table语句与delete 语句是有本质区别的。Delete语句与insert、update语句同属于DML——数据操作语言的范畴,当数据修改之后,可以通过回滚操作,忽略所做的数据修改。而truncatetable语句则是属于DDL——数据定义语言的范畴,当数据被删除之后,无法回滚。 通过truncate table命令删除表students的数据。 Truncate table students;

  6.Oracle中的字符型及处理方法

  ü 固定长度字符串char(n)

  ü 可变长度字符串varchar(n) 当实际字符串的长度不足时,不会使用空格进行填充

  ü varchar2(n) 与varchar(n)类型一样是可变长度字符串类型,最大长度都为4000。Oracle在工业标准之外,

自定义了该类型。使用varchar2(n)可以获得Oracle向后兼容性的保证。

  ü 变量声明中的字符串类型 3种字符串类型——char(n)、varchar(n)、varchar2(n),都可以用于声明变量,

但是,最大长度均为32767ü 字符型处理:

  l 返回字符串的小写和大写形式——lower()和upper()函数

  l 单词首字符大写——initcap() 不管字符是全大写还是全小写形式,经过initcap()函数转变后,都为首字符大写,

其余小写的形式。

  l 返回字符串长度——length() 例:select length(‘12345’) from dual;

  l 截取字符串——substr()函数 substr(string,start_index,length)

  l 删除字符串左侧和右侧空格和两侧空格——ltrim()和rtrim()和trim() 例:select ltrim(‘ 000’) new_str from dual;

  l 串联字符串——concat()函数 将两个字符串进行连接

  l 反转字符串——reverse()函数 例:select reverse(‘abcdef’) from dual; 输出结果为:fedcba

  7.Oracle中的数值型及处理方法

  2 将ASCII码转换为字符——chr()函数 select chr(65) character from dual;将输出大写字符A

  2 格式化数值——to_char()函数 to_char(原数值,格式) 其中格式参数由一系列的字符组成。常用字符包括:0、9、,、FM、$、L、C、X

  8.Oracle中的日期型及处理方法

  获得当前日期——sysdate() select sysdatefrom dual;

  为日期加上特定月份——add_months()函数 例如为当前加一个月:selectadd_months(sysdate,1) new

_date from dual;

  返回特定日期所在月的最后一天——last_day()函数

  将日期转换为字符串——to_char()函数 to_char()函数不仅可以用于数值的格式化,同样可以对日期进行格式化。

to_char()函数格式化日期的使用方法如下所示。to_char(日期,格式) 例子:selectto_char(sysdate,’YYYY-MM-DD’)

new_date from dual; 对于to_char()函数来说,所能使用的格式也是Oracle预定义的。如下表:

  To_char()函数中,用于日期的格式信息


格式代码


说明


转换结果实例


YEAR


获得年份的全拼


Two thousand nine


YYYY


四位年份


2009


YYY


年份的后三位


009


YY


年份的后两位


09


Y


年份的后一位


9


Q


季度


2


MM


两位月份


06


MON


月份的缩写


6月


MONTH


月份


6月


WW


一年中的第几周


26


W


一月中的第几周


4


D


一周中的第几天


5


DAY


一周中的星期几


星期四


DD


一月中的第几天


25


DDD


一年中的第几天


176


DY


一周中星期几的缩写


星期四


HH


某时刻的小时数


11


HH12


某时刻的12进制小时数


11


HH24


某时刻的24进制小时数


23


MI


某时刻的分钟数


30


SS


某时刻的秒数


30


FF


某时刻的毫秒数


121

  一. Oracle中的复杂数据处理

  1. avg()函数用于获得一组数据的平均值,该函数只能作用于数值型。

  2. sum() 同样只能应用于数值型

  3. count()函数用于统计记录数目。有三种情形

  l 统计单列 列名作为count()函数的参数。当列值不为空时,将计数1,否则,将计数0

  l 统计所有列 即count(*)进行统计,即使所有列值均为空,Oracle仍将计数

  l 利用count(1)进行统计。 count(1)和count(*)返回值相同,对每条记录都计数1

  二.Oracle中的运算

  1.数学运算 包括加(+)、减(—)、乘(*)、除(/)、四种。无论操作数是何种数据类型,都将首先转换为数值型,

然后才参与运算。 值得注意的是,当其中一个操作数的值为null时,运算结果仍然为null。

  2.

  三.Oracle中的特殊判式

  Oracle进行条件判断时,最常见的操作符为“=”。除此之外,Oracle还提供了若干特殊判式进行逻辑判断。

这些判式包括:

  u between 范围测试

  u in 集合成员测试

  u like 模糊匹配 %(匹配任意长度的任意字符) _(匹配单个字符)

  u is null 空置判断

  u exits 存在性判断

  u all、some、any 数量判断

时间: 2024-03-18 07:26:56

Oracle操作的相关文章

oracle操作不同服务器上的sql server2000

问题描述 oracle操作不同服务器上的sql server2000 我使用透明网关把oracle连接sql server2000,在oracle上做了个触发器绑定到一张表A,表A如果insert或者update将数据同步到sql server2000上,结果insert成功了,update部分语句一直编译不通过,语法有问题!下面图中update中的code与status一直说标示符无效,语法不知道怎么写?(有没有做过类似的数据库问题帮忙下,谢谢) 解决方案 ..额!后来想起来,要加双引号,才能

Oracle操作报错:record is locked by another user

在操作ORACLE数据库的时候,由于执行完,没有COMMIT,直接把PL/SQL关闭掉,后来导致那张表被锁住. 这告诉我们操作数据库之后一定要记得手动commit. 当编辑时就会出现这个信息,record is locked by another user. 解决办法 步骤一 查看锁 select t2.username,t2.sid,t2.serial#,t2.logon_time from v$locked_object t1,v$session t2 where t1.session_id

Oracle操作总结

聚合函数: count sum max min avg count返回的结果集中行的数目 sum max min avg顾名思义.但是要注意聚合函数强调的是"结果集中--",强调了 现在进行的操作对象是结果集 注意NULL不参与聚合函数的预算,要想其参加运算那么要将其转换为非空的值 分组: 在一个查询中需要进行多次统计就需要就必须使用分组 where是分组前过滤,过滤的是原始数据.这样就过滤掉了不必要的数据提高了效率 having是分组后过滤,过滤的是统计结果 先要弄明白:分组,分组

Oracle操作数据库常用名命令

安装Oracle时要注意以下:关闭防火墙,断开网络. 在安装Oracle时,要选上:创建带样本的数据库,如果不选上,就不会有大数据用户出现. 通过DBCA可以创建数据库,如果想连接自己创建的数据库,可以通过如下代码: sqlplus 数据库名称/密码 使用oracle数据库,主要使用以下四个用户: 超级管理员:sys/change_on_install 普通管理员:system/manager 普通用户:scott/tiger---->默认是锁定的. 大数据用户:sh/sh Oracle的卸载最

C++ 操作 Oracle

#include <string> #include <occi.h> #include <iostream> using namespace std; using namespace oracle::occi; struct Student_struct { int no; int age; string name; }; std::string getSQL(void) { std::string str_sql = "SELECT * FROM emp

JavaScript操作Oracle数据库示例_javascript技巧

我还是IT界的一只小菜鸟,参加工作时间不长,不过凭着自己的一颗好学的心还有自己永不停止的学习脚步,自己在编程方面也是收获颇丰~~ 一直以为JavaScript想和数据库交互必须通过AJAX来调用服务器端代码(C#或JAVA)才行,但最近才发现JavaScript可以直接与数据库进行交互...下面是一个简单的从数据库中调取数据加载到界面的小例子(有关JS操作数据方面的知识大家如有什么好的建议希望您能留下,我们相互学习,共同进步)~~ <!DOCTYPE HTML PUBLIC "-//W3C

oracle之CLOB处理完整版

oracle /****操作oracle数据库的CLOB字段,包括读和写*作者:令少爷* */ package com.nes.common.sql.lob; import java.sql.*;import java.io.*;import oracle.jdbc.OracleResultSet;import oracle.sql.*; public class JClob { String tableName = null; //表名 String primaryKey = null; //

Symantec Backup Exec Remote Media Agent及Oracle Agent的部署

以下配置在Oracle服务器上: 一.Remote Media Agent的要求: 您必须具有 Linux 服务器的 root 权限才能安装 Remote Media Agent. 您必须具有访问已安装的 CD-ROM 驱动器的权限. 您必须具有 SCSI 通用 (sg) 设备驱动程序,以便操作系统能够支持存储设备. 安装完成之后,您必须将 Linux 服务器作为 Remote Media Agent 添加到 BackupExec 数据库.然后,您可以将作业发送到挂接到 Linux 服务器的设备

Oracle 11g Dataguard物理备库配置(五) broker switchover测试

本文采用Oracle 11g Dataguard broker switchover测试 1. 采用dataguard broker 测试switchover 1) 主库情况 SQL> select open_mode,database_role,db_unique_name from v$database; OPEN_MODE            DATABASE_ROLE    DB_UNIQUE_NAME -------------------- ---------------- ---