文档库 最新最全的文档下载
当前位置:文档库 › ORACLE笔记_04

ORACLE笔记_04

ORACLE笔记_04
ORACLE笔记_04

●创建数据库实例:

①、使用向导工具来创建

②、手工创建数据库(文档)

当我们创建完一个新的数据库实例后,在服务中就会有两个新的服务创建,这是,你根据实际需要去启动相应的数据库实例。

在同一台机器上,可以同时启动多个数据库实例,我们在登录或者链接的时候,需要指定主机字符串。

●Java 如何链接和操作oracle 数据库

原理图:

代码实现:

我们在eclipse 中,编写一个java 程序,完成对emp 表的操作。

java 链接oracle 主要有两种方式

①、JDBC直连

核心代码:java 连接oracle jdbc 连接:

Class.forName(“oracle.jdbc.driver.OracleDriver”);

Connection ct=DriverManager.getConnection(“jdbc:odbc:thin:@127.0.0.1:1521”,”scott”,”tiger”);

回顾原理:

特别说明:如果使用JDBC 链接,需要启动监听服务。

补充SQL 语句分类:

DML 语句:数据操作语句,insert delete update

DDL 语句:数据定义语言:create table,drop table

DQL 语句:数据查询语句,select

DCL 语句:数据控制语言,commit rollback

对于使用java去查询oracle 会出现一个很奇怪的现象?

pl/sql develop 看到的数据和java程序中看到的数据不一致,这是因为事务控制的问题。

(1)、对java 代码进行一个重构,把对数据库的操作,封装成一个SQLHelper类。(2)、我们把连接数据库的配置信息写到一个文件中去,这样代码更加灵活

②、JDBC-ODBC桥连

核心代码:

Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);

Connection ct=DriverManager.getConnection(“jdbc:odbc:testdb”,”scott”,”tiger”);

testdb:是数据源的名称;

oracle 也提供JDBC-ODBC桥连的方式

步骤如下:

(1)、配置数据源

(2)、设置工作

代码做相应的修改即可。(监听可以不启动)

代码的修改:

private static String username="scott";

private static String password="tiger";

//JDBC方式

private static String driver="oracle.jdbc.driver.OracleDriver";

private static String url="jdbc:oracle:thin:@127.0.0.1:1521:orclydd";

//JDBC-ODBC方式

private static String driver="sun.jdbc.odbc.JdbcOdbcDriver";

private static String url="jdbc:odbc:yddorc";

其他部分代码原样不动即可。

什么时候使用JDBC,JDBC-ODBC?

原则:如果 java 程序和数据库不在同一台机器上,则使用JDBC,如果在同一台机器上,则两个都可以使用。

●to_date 函数的使用:

●需求:我们看看,在插入date 列的时候,我们发现,必须以默认的格式(日-月-年)添加,实际上,我们可能

希望自己习惯的方式添加,比如:

●insert into emp (empno,hiredate) values(999,’1988-11-11’);的格式添加数据时,会报错。我们可以对他使用to_date()来进行转换;

TO_DATE(string,’format’)

改写上面的语句:

insert into emp(empno,hiredate) values (999,to_date('1988-11-11','yyyy-mm-dd'));

作用:把字符串转换成特定格式的日期。

●使用子查询完成行迁移的需求:

(1)、使用sql 建表:

create table temp as select empno,ename from emp where ename like 's%';

(2)、使用子查询完成更新操作

希望员工scott 的岗位,工资,补助与smith 员工一样

update emp set (job,sal,comm)=(select job,sal,comm from emp where ename=’SMITH’) where ename=’SCOTT’;

●sql函数

oracle 数据库的强大体现在:对用户的管理,pl/sql编程,函数丰富。

oracle 函数的分类:

从大的方面看:分为单行函数,比如:length

多行函数:比如:max(),min();

单行函数的分类:

①、字符函数:用于处理字符相关的业务:

(1)、replace(char1,search_string,replace_string)

举例:显示所有员工的姓名,用“我是A”代替“A”

select replace(ename,'A','我是A') from emp;

(2)、instr(c1,c2,i,j)

举例:请找出‘oracletraning’第二个ra出现的位置

select instr('oracletraining','ra',1,2) from dual;

concat 函数:

select concat( ename,'是好人') from emp;

或者写成:

select ename ||'是好人' from emp;

该函数和 || 的作用是一样的。

initcap 函数:将首字母改成大写

举例:select initcap(ename) from emp;

length 函数:

请查询出名字的字符是4 的雇员

select * from emp where length(ename)=4;

请考虑:中文字符是一个字符还是两个字符?

可以这样测试:select length('叶冬冬abc') from dual;返回的结果是6,可见汉字也是1个空间。

lower 函数:返回字符串,并将所有的字符小写

举例:select lower('abDEFEceo') from dual;

upper 函数:把字符串的所有内容都改写成大写

举例:select lower('abDEFEceo') from dual;

扩展:请把雇员的名字,首字母小写,其他大写lower,upper,length,substr

select lower(substr(ename,1,1))||upper(substr(ename,2,length(ename)-1)) from emp;

rpad 和 LPAD 函数;在字符串的右边或者左边填充指定字符

select rpad('page 1',15,'*') from dual;//在右边填充*,以满足总共15个字符

select lpad('page 1',15,'*') from dual; //在左边填充*,以满足总共15个字符

ltrim 和 rtrim 函数:在字符串或是数字的左边或右边删除指定字符

举例:select rtrim('aaaaad de djfoawe foew deaaaa','a') from dual;

select ltrim('aaaaad de djfoawe foew deaaaa','a') from dual;

ceil 函数:向上取整

举例:select ceil(23.33) from dual;//返回24

floor 函数:向下取整

举例:举例:select floor(23.33) from dual;//返回23

mod 函数:取模

举例:select mod(5,2) from dual;

round 函数:用于四舍五入运算

举例:select round(55.5) from dual;

trunc 函数:用于截取一个整数

举例:select trunc(55.5) from dual;

如果trunc 函数,没有指定截取到多少位,则默认截取到整数

select trunc (456.8999,2) from dual; 456.89

select trunc (456.8999,-2) from dual; 400

substr 函数:取子串

举例:select substr('7777ddddd99999',5,10) from dual;

add_months(日期值,增加的月份)

先介绍个查看系统时间的函数

select to_char(sysdate,'yyyy-mm-dd:hh24:mi:ss') from dual;

?请查找最近三个月入职的员工

我们可以把hiredate 增加三个月,如果得到新的日期大于当期日期,则说明该员工是三个月以内入职的。select * from emp where add_months(hiredate,3)>=sysdate;

或者:

select * from emp where hiredate>= add_months (sysdate,-3);

last_day 函数:返回最后一天:

举例:select last_day(sysdate) from dual;

months_between 函数:月份之间相差多少月

select months_between( '19-12月-1999','19-3月-1999') from dual;

next_day 函数:计算离这个日期最近的一个星期几的日期

举例:select next_day(sysdate,'星期六') from dual;

to_char(number/date/char)

转换日期:

我们以1999-11-11:12:12:12显示日期

select to_char(sysdate,'yyyy-mm-dd:hh24:mi:ss') from dual;

显示我们希望的薪水格式:

select to_char(sal,'L999G999D999') from EMP;

针对to_char我们可以有选择的显示。

比如我们要查询1988年入职的员工

select * from emp where to_char(hiredate,'yyyy')='1988';

to_number 函数:把给出的字符串转换成一个数字

举例:select to_number('1999') from dual;

ORACLE 提供了一套系统函数,可以用于查询系统信息;

(Oracle数据库管理)玩转实战教程学习笔记最全版

(O管理)玩转实战教程(韩顺平)学习笔记

韩顺平—玩转oracle视频教程笔记 一:Oracle认证,与其它数据库比较,安装 oracle的卸载 1.停止所有与ORACLE相关的服务。 2. 使用OUI(Oracle Universal Installer)卸载Oracle软件。 “开始”->“程序”->“Oracle-OraDb110g_home1|Oracle installation product|Universal installer. 3.删除注册表内容。运行regedit命令,删除下面内容:HKEY_LOCAL_MACHINE|SOFTWARE|ORACLE注册表键,删除此键。 HKEY_LOCAL_MACHINE|SYSTEM|CurrentControlSet|Services,删除Services键下所有以oracle为首的键。 HKEY_LOCAL_MACHINE|SYSTEM|CurrentControlSet|Services|Eventlog|Application,删除此键下所有以oracle为首的键。 HKEY_CLASSES_ROOT,删除此键下所有以Ora,Oracle,Orcl,EnumOra 为前缀的键。 HKEY_CURRENT_USER|Software| Microsoft|Windows|CurrentVersion|Explorer|MenuOrder|Start Menu|Programs,删除此键下所有以oracle为首的键。 HKEY_LOCAL_MACHINE|SOFTWARE|ODBC|ODBCINST.INI注册表键,删除了

ORACLE笔记

1.Oracle 工具:sqlplus Sqlplus / as sysdba Shutdown immediate(关闭数据库) Startup(启动数据库) 注意:数据库开启才可以进行操作 Select username,account_status from dba_users;(查询数据库中所有的用户名称与用户状态) Alter user scott identified by tiger account unlock;(scott用户解锁) Sqlplus scott/tiger(使用SCOTT 密码为tiger登陆ORACLE数据库) Connect scott/tiger (在SQL>中直接使用SCOTT用户连接数据库) Show all;(看所有变量) Set sqlprompt “_user>”(设置sqlplus环境下面的提示符用自身用户显示) 注意:如要变量下次重启生效必须把变量写入 /u01/app/oracle/product/10.2.0/db_1/sqlplus/admin/glogin.sql中 Host(回到系统) Help index(查看所有命令) Help+命令(类似于LINUX中的MAN,查看命令的格式与用法) Disconnect(关闭SQLPLUS工具但是不离开数据库) Describe emp(查看EMP表) Define(定义变量,常用与写脚本用) 如:DEFINE _EDITOR =”vi” (CHAR) (定义VI编辑器用于保存最后一条执行的SQL语句) Save /u01/app/oracle/aa.sql (保存SQL语句) Get /u01/app/oracle/aa.sql (调用保存的SQL语句) 2.select(select 查询语句是ORACLE中最常用的语句) DML语句包括(insert 写入,update改变,delect删除,merge两张表同步) 注意:merge常用在ETL(数据仓库)底下 DDL数据定义语句包括(create创建对象,alter修改,drop删除对象,rename改名,truncate 删除整个表) TCL事务处理语句(commit提交立刻生效,rollback回滚,savepoint保存点,savepoint(保存点) DCL权限语句(grant赋予权限,revoke(收回权限) ORACLE的表称之为堆表(keep table) SELECT (1) writing basic SQL select statemanes 1. selecting all columns SCOTT>select * from dept; SCOTT>select dname,deptno,loc from dept; Basic SELECT Statement SELECT *|{[DISTINCT] column|expression [alias],...} FROM table;

审计数据转换笔记

目录 一、Oracle课堂笔记 (3) 第一章:Oracle 9i数据库概述 (3) 第二章:Oracle 9i数据库的安装与卸载 (4) 第三章:Oracle 9i数据库的启动与关闭 (4) 第四章:创建数据库 (5) 第五章:配臵访问数据库 (6) 第六章:管理数据库表 (6) 第7章 Oracle数据库的导入导出 (7) 第8章 PL/SQL语言 (9) 实例一 (10) 实例二 (10) 二、SQL Server2000课堂笔记 (10) 第一章:关系数据库基础 (11) 第二章:SQL Server 2000 基础 (12) 第三章:数据库的创建与管理 (12) 第四章:T-SQL 语言基础 (12) 第五章:基本表的创建与管理 (14)

第七章:实现数据完整性 (14) 三、SQL Server2000习题库 (16) 第一章:书本例题(第六章) (16) 第二章:课后习题 (22) 第三章:课间练习 (32) 第四章:单科考试题 (33) 四、数据采集转换 (41) 第一章:课堂笔记 (41) 1、用excel自身的功能导入SQL Server数据 (41) 2、将SQL Server里的表导入AO系统 (42) 3、把设有密码的access的密码取消的方法 (42) 4、金蝶.ais文件变成.mdb文件的处理 (42) 5、SQL Server数据采集方法 (43) 6、业务数据的采集与分析 (44) Ⅰ业务数据一(旌县医院) (44) Ⅱ业务数据二(空调费) (46) 第二章:十一套数据 (47) 0标准数据(2003年) (48) 1真实数据(2004年) (49) 2通用数据(2007年) (50)

oracle笔记七(其他)

1.如何限定特定IP访问数据库 可以利用登录触发器、cmgw或者是在$OREACLE_HOME/network/admin下新增一个protocol.ora文件(有些os可能是. protocol.ora),9i可以直接修改sqlnet.ora: 增加如下内容: tcp.validnode_checking=yes #允许访问的ip tcp.inited_nodes=(ip1,ip2,...) #不允许访问的ip tcp.excluded_nodes=(ip1,ip2,...) 2.如何穿过防火墙连接数据库 这个问题只会在WIN平台出现,UNIX平台会自动解决。 解决方法: 在服务器端的SQLNET.ORA应类似 SQLNET.AUTHENTICATION_SERVICES= (NTS) NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME) TRACE_LEVEL_CLIENT = 16 注册表的HOME0加[HKEY_LOCAL_MACHINE] USE_SHARED_SOCKET=TRUE 3.如何利用hostname方式连接数据库 host name方式只支持tcp/ip协议的小局域网 修改listener.ora中的如下信息 (SID_DESC = (GLOBAL_DBNAME = ur_hostname) --你的机器名 (ORACLE_HOME = E:\oracle\ora92) --oracle home (SID_NAME = orcl) --sid name ) 然后在客户端 的sqlnet.ora中,确保有 NAMES.DIRECTORY_PATH= (HOSTNAME) 你就可以利用数据库服务器的名称访问数据库了 4.dbms_repcat_admin能带来什么安全隐患 如果一个用户能执行dbms_repcat_admin包,将获得极大的系统权限。 以下情况可能获得该包的执行权限: 1、在sys下grant execute on dbms_repcat_admin to public[|user_name] 2、用户拥有execute any procedure特权(仅限于9i以下,9i必须显示授权) 如果用户通过执行如下语句: exec sys.dbms_repcat_admin.grant_admin_any_schema('user_name'); 该用户将获得极大的系统特权 可以从user_sys_privs中获得详细信息

oracle笔记(3)

1.用insert语句进行行数据的迁移 Insert into 表名(列,列) select 列,列from emp where 条件 2.用update更新数据(使用子查询):希望员工scott的岗位,工资,补助与smith员工一样? update emp set (job,sal,comm)=(select job,sal,comm. From emp where ename=?SMITH?) where ename=?SCOTT?; 3.事务 (1)锁 (2)提交事务 (3)回退事务(一开始就做保存点(savepoint)) (4)事务的几个重要操作 1)设置保存点:savepoint a 2)取消部分事务:rollback to a 3)取消全部事务:rollback (5)只读事务:set transaction read only(当前用户能看到之前的操作,若其他用户进行更 新,该用户之后的操作都不能看到更新) (6)字符函数 (1)lower(char):将字符串转化为小写的格式 (2)upper(char): 将字符串转化为大写的格式 (3)length(char):返回字符串的长度 (4)substr(char,m,n):取字符串的子串,从m开始取,取n个 (5)例:以首字符大写的方式显示所有的员工的姓名: (1)完成首字母大写:select upper(substr(ename,1,1)) from emp; (2)完成后面字母小写:select lower(substr(ename,2,length(ename)-1)) from emp; (3)合并:select upper(substr(ename,1,1)) || lower(substr(ename,2,length(ename)-1)) from emp; (6)replace(char1,search_string,replace_string) (7)instr(char1,char2,[,n[,m]])—取子串在字符串的位置 (8)例:显示所有员工的姓名,用”我是A”替换所有”A”:select replace(ename,?A?,? 我是A?) from emp; (7)数学函数 (1)round(n,[m]):用于四舍五入 (2)trunc(n,[m]):用于截取数字 (3)mod(m,n):取模 (4)floor(n):返回<=n的最大整数 (5)ceil(n):返回>=n的最小整数 (6)例:显示在一个月为30天的情况所有员工的日薪金,忽略余数:select floor(sal/30),ename from emp; (8)日期函数 (1)sysdate (2)add_months(d,n) (3)last_day(d):返回指定日期所在月份的最后一天 例:返回在八个月前雇佣的员工(已经入职8个月多的员工):select * from emp where sysdate>add_months(hiredate,300); 例:对于每个员工,显示其加入公司的天数:select trunk(sysdate-hiredate) “入职天

MLDN魔乐科技Oracle课堂笔记

MLDN魔乐科技_Oracle课堂笔记 1.sqlplusw命令 (窗口形式),sqlplusw不支持编辑,一般在编辑器(记事本)中编辑好了后拷贝进去执行,或用ed命令; 2.desc desc [tablename];查看表结构 3.show user 查看当前用户 4.select table_name from tabs 显示当前用户下的表名; 5.set linesize set linesize [number]; 6.set pagesize set pagesize [number];

7.ed ed命令用来从sqlplusw中打开编辑器来编辑文件(文本文件); 8.@ 执行sql文件@D:\a.txt;@d:\a;(a文件的扩展名为.sql) 9.conn conn username/pwd@实例名; 10.sql标准,其功能:DML(数据操作语言),DDL(数据定义语言),DCL(数据控制语言) 11.别名 Oracle中指定列别名;(不要指定为中文); 12.distinct 去除重复记录; 13.|| 字符串连接符; select "我的名字是:" || name from t_user; 14.NOT NULL/IS NULL 选择列值不为空的记录where collumname IS NOT NULL;相反IS NULL; 15.BETWEEN…AND… WHERE COLUMENAME BETWEEN...AND...; 等价于>=,<=,如果是在时间之前,则需将时间''起来;

16.大小写 oracle中查询值是大小写区分的,但关键字不区分; 17.In FieldName in (值1,值2,值3,...值n);NOT IN; 18.Like 在使用Like时常用的通配符:%,匹配任意长度内容,_,匹配一个长度内容; 例:select * from emp where ENAME Like '_M%';表示第二个字母为M的名字. 19.>,<,>=,<=,<>,!=用法 20.order by Order by语句,放在SQL语句最后;desc(从大到小)/asc(从小到大)(默认) 21.单行函数 字符/数值/日期/转换/通用函数; (1).字符:UPPER()变大写,LOWER()变小写,INITCAP()将单词第一个字母大写; 字符长度LENGTH(),字符串截取SUBSTR(),字符串替换REPLACE() 其中substr()的第二个参数即起始位置索引为0或1效果都是从第一个字符开始,负数是从右边开始; (2).数值:四舍五入ROUND(),截取TRUNC(),求模MOD(); ROUND(23.45,2),TRUNC(23.45,-1),MOD(10,3); (3).日期:MONTHS_BETWEEN(),两个日期之间的月数;MONTHS_BETWEEN(DATE1,DATE2) ADD_MONTHS(),下月的今天; NEXT_DAY(),下一个的今天日期; LAST_DAY(), 给定日期的最后一天日期; (4).转换:TO_CHAR(),TO_NUMBER(),TO_DA TE();

Oracle学习笔记

Oracle的四个主要用户 1.超级管理员sys/change_on_install 2.普通管理员system/manager 3.普通用户scott/tiger 4.大数据用户sh/sh 简单查询 1.查询表结构 DESC 表名 2.简单查询SELECT [DISTINCT] *|[字段 [别名]] [,字段 [别名]] … FROM 表名 [别名] (1)查询时也可以使用四则运算,如:SELECT (字段*x)+y FROM 表名 (2)可以使用“||”连接字段与字符串,如: select '工作与工资:' || job || sal 工作工资 from emp 执行结果: 3.限定查询SELECT [DISTINCT] *|[字段 [别名]] [,字段 [别名]] … FROM 表名 [别名] [WHERE 条件(s)] (1)Where字句后可以增加多个条件,最常见的条件就是最基本关系运算:>、<、>=、<=、!=(<>)、BE TWEEN…AND、LIKE、IN(指定范围)、IS NULL(为空)、AND(且)、OR(或)、NOT(非)。 (2)多个条件可以使用AND与OR连接。 例如:select * from emp where sal>1300 and sal<4000 (3)范围判断BE TWEEN…AND:BETWEEN 最小值 AND 最大值(大于等于最小值,小于等于最大值),BE TWEEN…AND 对数字、日期都可以使用!!! 例如:select * from emp where sal between 1300 and 4000 例如:select * from emp where hiredate between '01-1月-1981' and '31-12月-1981' (4)判断为空IS (NOT) NULL 例如:select * from emp where comm is null 例如:select * from emp where comm is not null 例如:select * from emp where not comm is null (5)指定范围的判断(NOT) IN 例如:select * from emp where empno in(7369,7566,7799)

学习oracle数据库的总结(图文整理)

1、在开发环境中连接到数据库,进行基本的select查询操作; 2、熟悉plsql的使用; 3、熟悉sqlplus相关命令(登录、查询、导入导出等) 登录sqlplus: 第一:使用dos窗口登录sqlplus Sqlplus 用户名/密码@数据库实例名 Sqlplus system/密码@数据库实例名as sysdba 第二:使用oracle自带的一个sqlplus登录,提供界面,显得更简单一些。 显示当前用户名:show user; 创建一个用户:create user 用户名identified by 密码; 给用户赋予登录的权限:grant connect to 用户名;(此时才可以使用这个用户来登录这个数据库。)给其赋予dba的权限。 修改用户的密码:alter user 用户名identified by 新密码; 查询: Select * from t_user; Select id from t_user; Select name from t_user; Select birthday from t_user; Select id,name from t_user; 导入导出: 导出表: (注意,导出表的exp命令不是在sqlplus下使用的,是在dos窗口下使用的命令。) exp userid=test/sa@test tables=(qx) file=d:\e1223.dmp exp userid=test/sa@test tables=(t_user,qx) file=f:\test.dmp 导出方案: Exp userid=test/sa@test owner=test file=f:\test2.dmp 导出数据库: Exp userid=test/sa@test full=y inctype=complete file=f:\all.dmp 导入表: 下面以一个例子来说明: 看下面的图,我的用户名test,密码sa,数据库实例名test,所有的表都在这里 现在我执行导出表JD的操作:exp userid=test/sa@test tables=(jd) file=f:\jd.dmp 在我的f盘下就出现了这么一个.dmp文件

Oracle课堂笔记4

●Oracle 复杂表查询 ?数据分组:-max,min,avg,sum,count ?如何显示所有员工中最高工资和最低工资? select max(sal) from emp ; (有多个结果也只显示一个) select min(sal) from emp ; select avg(sal) from emp ; (有空值null则不参与运算) select sum(sal)/count(*) from emp ; (count计算行数) ?统计有多少员工? select count(*) from emp ;(字段亦可,空值不参与运算) ?显示工资最高的员工的名字和工作岗位? (我们可以使用子查询来完成1.先查询最大工资是多少2.查找谁的工资是最大工资) select ename , job from emp where sal = (select max(sal) from emp) ; (SQL语句默认从右往左执行) ?显示工资高于平均工资的员工信息? select ename , job from emp where sal > (select avg(sal) from emp) ; ?group by和having子句: group by对结果进行分组统计, having进行限制(过滤)分组显示结果,通常与group by 同时 出现。 ?如何显示每个部门的平均工资和最高工资?

select avg(sal),max(sal),deptno from emp group by deptno ; ?先是每个部门每个岗位的平均工资和最低工资? select avg(sal),max(sal) ,deptno ,job from emp group by deptno,job order by deptno ; ?显示部门平均工资低于2000的部门和平均工资? select avg(sal),deptno from emp group by deptno having avg(sal)<2000 ;(having不支持别名) ●注意事项: ? 1.分组函数(avg)只能出现在选择列表、having、order by 子句中。 ? 2.如果select中同时出现,顺序是:group by、having、 order by,顺序不能出错。 ? 3.在选择列中,如果有列,表达式,分组函数,那么这些 列和表达式必须有一个出现在group by中,否则会出错。 多表查询:在实际开发中不可避免存在对两张或多张表的复杂查询。 1.我们看看多表查询的原理: select * from emp,dept ; 2.如何实现多表查询: select emp.ename,emp.sal,dept.dname from emp,dept

Oracle EBSGL学习笔记

12.8 1、冲销日记账 1) 原始 借:租金10,000 本位币美元 贷:现金10,000 本位币美元 冲销 借:现金10,000 本位币美元 贷:租金10,000 本位币美元 2)可以创建冲销日记账分录来冲销应计、估计、临时调整和重新分类,或更正错误。 3)方法: 转换借贷项:通过转换借项和贷项金额来冲销日记账分录。 红字冲销:通过将原始日记账金额从正值改为负值来冲销日记账分录。 4)日记账> 输入> 复核日记账(B)其他活动 日记账> 生成> 冲销 2、自动冲销日记账 1)可以自动冲销上一个月的应计日记账分录,并自动将其过账(如果需要)。 2)自动冲销日记账的前提条件: --日记账余额类型为“实际” --日记账类型已启用“自动冲销”选项 --日记账已过帐,但尚未冲销 --日记账冲销期间为“打开”或“将来可输入” 3) 设置> 日记账> 自动冲销(AutoReverse) 3、日记账分录报表提供:会计结算日期、类别、日记账名称、参考、日记账批 4、与Oracle General Ledger 集成 --在Excel中创建日记账 --通过Web ADI 加载到GL_INTERFACE 表 --从接口表中提交“日记账导入” -从Web ADI中与加载流程同时提交 -从Web ADI 中作为独立的提交流程提交 -从Oracle General Ledger中使用“导入日记账”窗口提交 5、Web ADI 的核心功能 1)布局功能 --从布局中删除或向布局中添加字段 --指定字段在布局中的位置 --为布局中的字段分配默认值 --保存布局,可以由具有适当责任的某个人来定义,然后由整个站点使用 2) 文本导入功能 --将文本文件数据导入到桌面文档中

oracle学习笔记

●PLSQL控制台输出语句 SET serveroutput ON; --打开控制台输出服务 dbms_output.put_line('values2='||var_val); --输出语句 ●PLSQL动态变量 var_str := '&input'; ●创建表空间和用户 --创建表空间 CREATE TABLESPACE "BCPBS" LOGGING DATAFILE 'D:\app\E430\oradata\orcl\BCPBS_01.ora' SIZE 2048M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED, 'D:\app\E430\oradata\orcl\BCPBS_02.ora' SIZE 2048M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ; --建立用户 CREATE USER "BCPBS" PROFILE "DEFAULT" IDENTIFIED BY "bcpbs123" DEFAULT TABLESPACE "BCPBS" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK; GRANT "CONNECT" TO "BCPBS"; GRANT "DBA" TO "BCPBS"; GRANT "RESOURCE" TO "BCPBS"; ●删除表空间和用户 drop user bcpbs cascade ; drop tablespace BCPBS including contents and datafiles cascade constraints ; ●自定义函数 CREATE OR REPLACE FUNCTION fun_level_value(level_value number) RETURN number IS return_value number:=null; BEGIN CASE level_value WHEN 0 THEN return_value:='0'; WHEN 1 THEN return_value:='1'; WHEN 2 THEN return_value:='2'; WHEN 3 THEN return_value:='3'; WHEN 6 THEN return_value:='8'; ELSE

oracle学习心得体会

oracle学习心得 一、sqlserver的理解 sqlserver服务器就像一栋大楼,大楼里的机房就像服务器的数据库,机房里的电脑如同数据库里的表 1、登录用户可以登录服务器——可以进大楼 2、登录用户成为数据库用户才能进指定的数据库——进入大楼的人给了某个机房的钥匙 才能进入机房 3、登录用户有权限使用表——进入机房的人有电脑的密码才能使用电脑 二、oracle的理解 oracle服务器(全局数据库)就像一个商场,商场的每一家公司是表空间,公司的业务是表 1、数据库由多个表空间组成——商场里有多家公司组成 2、表空间由段组成——公司要有自己的经营业务,可以只有一个业务,就是一个表空 间中只有一个段,可以有多个业务,就是一个表空间有多个段 3、段由区组成——单个业务的细分类别。例如有家公司经营三个业务,卖书,卖家电,

卖衣服,则每个业务就是一个段。而每个业务又有细分,比如卖书的话要进行分类了。计算机区,人文区,小说区等,每一区都要放上书架存放书籍,则书架就是oracle块,存放数据的 三、数据库,表空间,用户(指定默认表空间),表统统由管理员管理 四、在oem中管理数据库的步骤 1、创建 1)存储——表空间——创建表空间(tomspace)(类似于在sql中创建数据库, 通常可以省略,使用默认表空间为users,,临时表空间为temp) 2)首先展开安全性——创建新用户(tom,指定表空间)(类似于在sql中指定 数据库用户) 3)创建表——指定方案(用户)和表空间(列名不要带<>) 4)设置约束 5)输入信息:方案——用户名——表——右击——查看/编辑目录… 2、修改 1)方案——用户名——表 2)修改表结构,添加约束

韩顺平2011玩转oracle10g视频教学课堂笔记(完整版)

顺平j2ee系列教程--玩转oracle10g学习笔记 引言: 数据保存问题? 可使用文件保存和数据库保存。 使用文件保存数据存在几个缺点: 1、文本的安全性问题; 2、文件不利于查询和对数据的管理; 3、文件不利于存放海量数据; 4、文件在程序中控制不方便。 为解决数据保存问题,专家们设计出更加利于管理数据的东东--数据库(本质就是一个软件),它能更有效的管理数据。数据库是衡量一个程序员水平的重要指标。 数据库 1、数据库的本质就是一款软件,这个软件专门用于管理和维护数据; 2、数据存放在数据库中。 数据库服务器、数据库和表的关系 所谓安装数据库服务器,只是在机器上装了一个数据库管理程序,这个管理程序可以管理多个数据库,一般开发人员会针对每个应用创建一个数据库。 为了保存应用中实体的数据,一般会在数据库创建多个表,以保存程序中实体的数据。 数据库服务器、数据库和表的关系如图所示:

为什么选择oracle--性能优越 概述:目前主流数据库包括 微软: sql server和access 瑞典MySql: AB公司mysql ibm公司: db2(处理海量) 美国Sybase公司: Sybase ibm公司: informix 美国oracle公司: oracle 做项目时应当如何选择数据库? 1、标的(项目预算); 2、功能的要求; 3、并发数(多少人用); 4、安全、稳定性。 5、操作系统(unix[solaris,freeBSD,aix,hp unix]/linux/window) oracle数据库的认证 oca(oracle certified associate)初级认证 ocp(oracle certified professional)中级认证 ocm(oracle certified master)高级认证 oracle10g安装步骤: 1、安装文件 2、把10201_database_win32.zip文件copy到没有中文的路径下 3、检查服务选项,确定本机没有安装过oracle数据库,如果有则卸载 4、将压缩包解压后,双击setup.exe文件进行安装。 说明:建议大家自己建立一个文件目录,比如d:/hsporacle/oracle,然后把数据库安装到

oraclesql优化笔记

基本的Sql 编写注意事项 尽量少用IN 操作符,基本上所有的IN 操作符都可以用EXISTS 代替。 不用NOT IN操作符,可以用NOT EXISTS或者外连接+替代。 Oracle 在执行IN 子查询时,首先执行子查询,将查询结果放入临时表再执行主查询。而EXIST则是首先检查主查询,然后运行子查询直到找到第一个匹配项。NOT EXISTS:匕NOT IN效率稍高。但具体在选择IN或EXIST操作时,要根据主子表数据量大小来具体考虑。 不用“<>”或者“ !=”操作符。对不等于操作符的处理会造成全表扫描,可以用“ <” or “>”代替。 Where子句中出现IS NULL或者IS NOT NULL时,Oracle会停止使用索引而执行全表扫描。可以考虑在设计表时,对索引列设置为NOT NULL这样就可以用其他操作来取代判断NULL的操作。 当通配符“ %”或者“ _”作为查询字符串的第一个字符时,索引不会被使用。 对于有连接的列“ || ”,最后一个连接列索引会无效。尽量避 免连接,可以分开连接或者使用不作用在列上的函数替代。 如果索引不是基于函数的,那么当在Where子句中对索引列使用函数时,索引不再起作用。 Where子句中避免在索引列上使用计算,否则将导致索引失效而进行全表扫描。 对数据类型不同的列进行比较时,会使索引失效。

用“ >=”替代“ >”。 UNION操作符会对结果进行筛选,消除重复,数据量大的情况 下可能会引起磁盘排序。如果不需要删除重复记录,应该使用UNION ALL。 Oracle从下到上处理Where子句中多个查询条件,所以表连接语句应写在其他Where条件前,可以过滤掉最大数量记录的条件必须写在Where子句的末尾。 Oracle从右到左处理From子句中的表名,所以在From子句中包含多个表的情况下,将记录最少的表放在最后。(只在采用RBO 优化时有效,下文详述) Order By 语句中的非索引列会降低性能,可以通过添加索引的方式处理。严格控制在Order By 语句中使用表达式。 不同区域出现的相同的Sql 语句,要保证查询字符完全相同, 以利用SGA共享池,防止相同的Sql语句被多次分析。多利用内部函数提高Sql 效率。 当在Sql 语句中连接多个表时,使用表的别名,并将之作为每列的前缀。这样可以减少解析时间。 需要注意的是,随着Oracle 的升级,查询优化器会自动对Sql 语句进行优化,某些限制可能在新版本的Oracle 下不再是问题。尤其是采用CBO (Cost-Based Optimization ,基于代价的优化方式)时。 我们可以总结一下可能引起全表扫描的操作:

oracle数据库学习笔记心得

select* |字段表名 from 表名 where 布尔表达式【条件】 externalcandidate 职员相关信息 contractrecruiter 猎头公司 查看表里所有字段 describe[描述] contractrecruiter select cname,nperecentagecharge from contractrecruiter 不显示原来名字,显示现在名字【用AS】 select cname as "Recruiter Name",nperecentagecharge as "Hire Fees" from contractrecruiter 不显示原来名字,显示现在名字【可不用AS】 select cname "Recruiter Name",nperecentagecharge "Hire Fees" from contractrecruiter 【双引号是否写】 双引号是为了区分大小写 职位表 position select *from position 缺额运算:[想减] select VDESCRIPTION , nbudgetedstrength, NBUDGETEDSTRENGTH -NCURRENTSTRENGTH , NYEAR from position

select VDESCRIPTION "Potion", nbudgetedstrength "Budgeted Strength" , NBUDGETEDSTRENGTH -NCURRENTSTRENGTH "Vacancies", NYEAR "Year" from position 显示非重复运行 查询来源地的人数 describe externalcandidate 查看职员城市名字 select ccity from externalcandidate 查看职员城市名字【名字不重复,插入一个关键字:distinct】select distinct ccity,cstate from externalcandidate 运算符: 两列 select vfirstname,vlastname from externalcandidate 字段拼接 select vfirstname||vlastname from externalcandidate select vfirstname||' '||vlastname from externalcandidate 学校 describe college 查看所有学校 select *from college 查看只是加利福尼亚的学校 select * from college where cstate='California' 一个条件 select vfirstname,vlastname,dbirthdate,ntestscore from externalcandidate where dbirthdate>='01-1月-70'

Oracle数据库期末复习知识点整理

基础知识 表3.2 Oracle数据类型

表3.3 XSB的表结构

操作表 创建表 CREATE TABLE [schema.] table_name ( column_namedatatype [DEFAULT expression] [column_constraint][,…n] [,…n] ) [PCTFREE integer] [PCTUSED integer] [INITRANS integer] [MAXTRANS integer] [TABLESPACE tablespace_name] [STORGE storage_clause] [CLUSTER cluster_name(cluster_column,…n)] [ENABLE | DISABLE ] [AS subquery] 【例】使用CRETE TABLE命令为XSCJ数据库建立表XSB,表结构参照表3.3。 打开SQL*Plus工具,以system方案连接数据库,输入以下语句: CREATE TABLE XSB ( XH char(6) NOT NULL PRIMARY KEY, XM char(8) NOT NULL, XB char(2) DEFAULT '1' NOT NULL, CSSJ date NOT NULL, ZY char(12) NULL, ZXF number(2) NULL, BZ varchar2(200) NULL ); 修改表 ALTER TABLE [schema.] table_name [ ADD(column_namedatatype [DEFAULT expression][column_constraint],…n) ] /*增加新列*/ [ MODIFY([ datatype ] [ DEFAULT expression ] [column_constraint],…n) ] /*修改已有列的属性*/ [ STORAGE storage_clause ] *修改存储特征*/ [ DROP drop_clause ] /*删除列或约束条件*/ 【例】使用ALTER TABLE语句修改XSCJ数据库中的表。

Oracle笔记

数据库基本概念: 数据库:Database ,DB (数据) 数据库管理系统:(Database Management System,DBMS)oracle ,DB2,Sql_server 等 数据库系统:(Database System ,DBS) 关系型数据库:(Relationship Database ,RDB) SQL语言:(Structured Query Language,结构化查询语言) 数据建模: 要将现实世界中客观存在的事物以数据的形式存储到计算机中并进行处理,就需要对其进行分析,抽象,进而确定数据的结构以及数据间的内在联系,这一过程称为数据建模。 数据模型应满足三个方面的要求: 1,能够比较真实地模拟现实世界 2,容易为人所理解; 3,便于计算机实现。 数据模型三要素: 数据结构---描述事物的静态特性; 数据操作---描述事物的动态特性; 完整性约束----描述事物内部和事物间的约束性关系。 现实世界-------认识抽象-------->概念世界-------转换--------->机器世界 概念数据模型(Conceptual Database Model,CDM) CDM从用户的观点出发对信息进行建模,并不依赖于具体的计算机系统或某个DBMS系统,主要用于数据库的概念设计。 CDM以实体--关系(E-R)模型为基础,将现实世界中的客观对象抽象为实体和关系。 到机器世界中,CDM将被转化为特定DBMS所支持的物理数据模型(Physical Database Model ,PDM)。 CDM相关术语: 实体(Entity):客观存在并且可以相互区分开来的事物。 实体集(Entity Set):同一类实体的集合。 属性(Attribute):描述实体的特性。 关系(Relationship):实体集之间的对应关系(现实世界事物之间的相互关联)。 E-R图三要素: 实体:用矩形框表示

Oracle知识点总结

Oracle知识点总结 根据阎赫老师讲义整理Zealjiang 1、Oracle数据库的安装和配置 ⑴Oracle Internet级数据库 SQLServer 中小企业级数据库 Access 桌面级数据库 ⑵Oracle的安装 注意:来源和目标的目录不允许有中文或空格 ⑶Oracle数据库启动时必需开启的后台服务 ①OracleOrahome90TNSListener 使第三方的软件或语言访问 ②OracleServiceETC Oracle的实例 CRUD 增删改查 注意:②中的ETC是你起的实例的名字 ⑷Oracle的开发工具 ①DOS界面的开发平台 -> 运行->sqlplus ②Oracle本身基于DOS的平台 ->运行-> sqlplusw ③Oracle Enterprise Manager Console ④PL/SQL Developer7.1.5 ⑸创建一个表的完整流程 ①创建一个数数库 例子:创建一个数据库 ETC , 物理文件放在F:\ ,初始化1m ,自增长开启 create tablespace etc

datafile 'f:\etc.dbf' size 1m autoextend on; 删除表空间 drop tablespace 数据库名称; ②为该数据库创建一个帐号和密码 语法: create user 用户名称 identified by 密码 default tablespace 数据库名称 注意:1、在Oracle中账号和数据库one2one绑定 2、Oracle的密码不允许为纯数字或空 3、需要在system账号完成动作 修改Oracle的账号密码 语法:alter user 用户 identified by 新密码 ③用grant 权限 to 用户为该帐户授权 语法: grant 权限名称 to 用户; 撤销权限 语法:revoke 权限名称 from 用户名; ④在该帐号下创建表

相关文档