当前位置:  数据库>oracle

Oracle数据库学习札记

    来源: 互联网  发布时间:2017-03-18

    本文导语: 记下有关Oracle数据库的一些重要知识,以供备查! 一.文件系统和作用执行文件:Oracle系统的核心,数据文件只能被Oracle处理程序所识别,离开了可执行文件系统就无意义.存放可执行文件的空间一定要安全可靠.参数文件:启动实例时候...

记下有关Oracle数据库的一些重要知识,以供备查!

一.文件系统和作用
执行文件:Oracle系统的核心,数据文件只能被Oracle处理程序所识别,离开了可执行文件系统就无意义.存放可执行文件的空间一定要安全可靠.
参数文件:启动实例时候配置Oracle数据库的一些基本信息,确定运行环境.参数文件应数据库不同而不同,命名方式为init.ora.
控制文件:在Oracle服务器启动期间来标识物理文件和数据库结构的二进制文件.控制文件提供了建立新实例时候所需要的文件目录,可以在Oracle操作其间更新控制文件,可以建立多个控制文件副本,以便进行数据库恢复.
数据文件:数据文件用来存放用户的数据,它的稳定性和完整性都十分重要.每个数据库都至少一个相关数据文件.
联机重做日志文件:是数据库的事物日志,它用于恢复数据库.
输出文件:它影响数据库的可恢复性,它由Oracle自带的输出程序生成,它在指定时间点上对数据库的数据和结构进行备份.它是数据库逻辑副本,而不是物理副本.
临时文件:用以在内存不足以保存中间结果集的时候保存结果集.它不生成重做,即不生成联机重做文件.






二:后台进程和作用
后台进程的主要作用是为了提高数据库的性能和可靠性,没个进程都有自己的职责.
pmon:监控服务器进程,确保能够销毁发生损坏或出现故障的进程,并释放资源.
smon:负责重新启动系统,清楚临时段,执行盘区结合任务.确保系统达到一致性.
dbwr:负责将缓存中的数据块写入到磁盘中.
lgwr:日志写入器,负责向联机重做日志文件中写入已提交的事物处理.
ckpt:检查点进程,负责使用最新的检查点信息更新所有控制文件和数据文件的标题.数据库写入器会周期性的将其缓寸写入到磁盘中,存储检查点.
cjq0:负责管理和协调作业.
arc0:归档器:主要负责备份联机重做日志中的事物,以防止他们被覆盖.







三.系统表,视图和作用
查看有关用户的信息:dba_users
查看有关角色的信息:dba_roles,dba_role_privs,role_sys_privs
查看有关系统权限的信息:dba_sys_privs
查看当前数据库表空间状况:dba_tablespaces
查看用户的系统权限:user_sys_privs
查看某个用户对另外一个用户授予的权限:user_tab_privs_made
查看某个用户对另外一个用户授予的列级权限:user_col_privs_made
查看某个用户接受的权限:user_tab_privs_recd
查看某个用户接受的列级权限:user_col_privs_recd
查看有关用户的角色信息:user_role_privs
查看有关授予某个角色的系统权限信息:role_sys_privs
查看有关授予某个角色的对象权限信息:role_tab_privs
查看当前用户所拥有的表信息:user_tables
查看当前用户有权限访问的表信息:all_tables
查看当前用户所拥有的所有表的列信息:user_tab_columns
查看当前用户可以访问的表中的列信息:all_tab_columns
查看当前用户所拥有的所有约束信息:user_constraint
查看当前用户所拥有的所有约束和列的关系:user_cons_constraint
查看表中注释内容:user_tab_comments
查看表中列注释内容:user_col_comments
提供练习的表:dual
查看相关时区的名称和简称:v$timezone_names





















四.表空间和作用
system表空间:记录运行信息.
sysaux表空间:存储支持Oracle系统活动的许多工具和选项.
temp表空间:存储中间结果.
undo表空间:存储事物提交或撤消的改变数据.



五.默认用户角色
DBA:执行数据库中所有的操作
connect:可以执行数据库连接等操作
resource:可以执行使用数据库资源等操作
select_catalog_role:可以执行select操作
OLAP_DBA:可以执行与表,视图有关的操作
scheduler_admin:可以执行作业管理等操作
exp_full_database:可以执行引出数据库等操作
imp_full_database:可以执行引入数据库等操作







六.权限
系统权限:可以执行数据库中某些操作的权限称为系统权限.如:create table
create user系统权限:拥有此权限才可以创建用户
create session系统权限:拥有此权限的用户可以连接数据库
create any table系统权限:在任意模式中创建表
create synonym系统权限:可以创建同意词
execute any procedure系统权限:执行任何过程
create role系统权限:可以创建角色
drop any table系统权限:可以删除任何表
创建用户:create user 用户名identified by 口令[default tablespance 默认表空间] [temporary tablespace 临时表空间]
修改用户口令:alter user 用户名 identified by 新密码
锁定用户和解锁用户:alter user 用户名 account [lock|unlick]
修改用户默认表空间:alter user 用户名 default tablespace 新表空间名 [temporary tablespace 新临时表空间名]
删除用户:drop user 用户名 [cascade]   如果当前用户拥有对象则必须加上 cascade
为用户授以系统权限:grant 系统权限1[,系统权限2,系统权限3.....] to 用户名 [with admin option] 如果允许用户把权限转受于其它用户则要加上with admin option
收回授予的系统权限:revoke 系统权限1[,系统权限2,系统权限3.....] from 用户名   在收回权限时,被当前用户所转授的权限不会被收回
对象权限:针对数据库中的表,视图等对象的权限为对象权限.如:select insert update delete execute
为用户授予对象权限:grant 对象权限[(列名称)] on 对象名 to 用户名 [with grant option] 如果允许用户把权限转受于其它用户则要加上with grant option
收回授予的对象权限:revoke 对象权限 on 对象名 from 用户名收回权限只能从表上收回,不能从列上收回,在权限被收回时,被该用户转授的权限也会被收回
创建同义词:create [public] synonym 同义词名 for 对象名   public代表所有用户都可以使用公共同义词
角色:角色是一组可以授予用户和其它角色的权限,一个用户可以拥有多种角色
创建角色:create role 角色名 [identified by 角色口令]
授予角色权限:类似授予用户权限
收回角色:drop role 角色名






















七.表
建表:create [global temporary] table 表名 (列名 列类型[其它信息]) [ on commit (delete|preserve) row] [tablespace 表空间名]   on commit指定表中数据持续时间,delete在事物执行完毕后删除,preserve表示在会话结束后删除
查看表的系统信息:desc|describe 对象名
删除表:drop table 表名
添加列:alter table 表名 add 列名 列类型
更新列:alter table 表名 modify 列名 列类型
删除列:alter table 表名 drop column 列名
禁止约束:alter table 表名 discount contraint 约束名
禁止约束:alter table 表名 enable [novalidate] contraint 约束名   如果有novalidate则表示在激活时不验证数据内容是否满足约束
删除约束:alter table 表名 drop constraint 约束名
修改表名称:rename 旧表名 to 新表名
注释表:注释表就是为表和表中列添加文字说明以让其它人可以看懂表结构
注释表语法:comment to table 表名 is 注释信息     comment to column 表名.列名 is 注释信息   注释内容用单引号











八.操作数据
插入数据:insert into 表名(列名列表) values(列值列表) 插入列时用default关键字代表值则是插入列的默认值,如果用null则代表插入一个空值,插入列的时候必须满足列的约束
复制数据:insert into 表名(列列表) 和列对应的查询语句
修改数据:update 表名 set 列名=列值[,列名1=列值1......] [where 限制条件列表]
删除数据:delete from 表名 [where 限制条件列表]
删除表中所有数据的两种方法:delete from 表名 ; truncate table 表名;truncate table效率高些,因为它是重新设置表的存储空间
合并数据操作:把两个表合并成一个表,并且以某一字段作为判断是否相同的机准.如表A和表B 用id来判断是否相同,那么把表A合并到B中,则以A中的数据为基准,如果a.id=b.id成立,那么合并后的其它字段将采用a表的
合并数据:merge into 表名1 using 表名2 on (比较表达式) when matched then 更新语句 when no matched then 插入语句
闪回查询:有两种类型的闪回查询1.基于时间的闪回查询,把系统回复到之前的某一时间;2.是基于版本号的闪回查询,把系统回复到之前一个版本号.使用闪回查询,则必须拥有dbms_flashback包的execute权限.
授予用户闪回查询的对象权限:grant execute on dbms_flashback to 用户名;
执行基于时间的闪回查询:execute dbms_flashback.enable_at_time(时间);   时间一般算法:sysdate-分钟数/1440
执行基于系统版本号的闪回查询:execute dbms_flashback.enable_at_system_change_number(系统改变号); 改变号可以通过;dbms_flashback.get_system_change_number();获得
关闭闪回查询:执行完闪回查询功能后应该关闭,关闭的方法为:dbms_flashback.disable();
事务:事务是一个单元操作,这些操作要么全部成功,要么全部失败.












九.检索
算数运算:可以在查询中使用算数运算(+,-,*,/)
别名:在Select语句中为了便于查看为列临时定义的名称.定义方式: 列名 [as] 别名
合并输出结果:使用'||'符号连接.例:结果1||结果2[||结果3....]
空值处理:nvl(空值列,显示值) 如果列的值是空则显示显示值
distinct关键字:限定在检索结果中不出现重复值;select distinct 列列表 from 表名
where:where后面跟运算表达式;例:select 列列名 from 表名 where 限制条件
运算符:
=等于
或!=不等于
大于
=大于或等于
>any(值列表):比值列表中的最小值大
all(值列表):比值列表中的最大值大


    
 
 

您可能感兴趣的文章:

  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • Oracle 数据库开发工具 Oracle SQL Developer
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • 关于JDBC连接Oracle数据库,是否必须有Oracle客户端
  • ORACLE数据库常用字段数据类型介绍
  • win2000+jbuilder6+oracle817编出的程序,在win2000下执行很好,在win98下却访问不了oracle数据库
  • oracle数据库导出和oracle导入数据的二种方法(oracle导入导出数据)
  • Oracle发布Oracle SQL Developer 1.2数据库开发工具 帮助用户简化开发工作
  • 怎样调出ORACLE数据库中的数据,该如何连接?
  • Oracle收购TimesTen 提高数据库软件性能
  • 卸载oracle数据库
  • Oracle数据库恢复后心得
  • linux上安装oracle 数据库后,是否能写shell程序实现数据库的自动启动。
  • Linux下如何用C语言操作Oracle数据库相关的图书推荐
  • Oracle数据库运行Oracle form时避免出现提示信息
  • Oracle欲收购开源数据库MySQL未果
  • 如何在JBuilder中连接Oracle数据库?
  • Oracle数据库访问参数文件的顺序
  • 循序渐进学习Oracle数据库
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • jsp文件上传smartupload到oracle数据库中没有longblob的数据类型如何处理的?
  • 将Oracle 8i数据成功移植Oracle 10g的方法
  • 我从JSP页将数据插入到oracle数据库中,为何汉字插入后数据库中显示为乱码呢?
  • 紧急求救:对Oracle数据库中long 型数据进行模糊查询 如何查?
  • Linux下Oracle数据库,dbstart持续不动,数据库无法启动解决
  • 紧急求救:jsp对Oracle数据库中long 型数据进行模糊查询 如何查?
  • 请问:ORACLE中的数据取出来后,需不需要进行一定的转换才能变为C语言的数据类型啊?
  • 手把手教你Oracle数据库导出数据库结构到PowerDesigner
  • Oracle与FoxPro两数据库的数据转换步骤
  • Oracle 对数据文件大小的限制
  • 数据库服务器 Oracle
  • 关于系统重装后Oracle数据库完全恢复的解决办法
  • 取数据库前几条数据(sql server、oracle、mysql)的sql写法
  • oracle数据库入门知识简述
  • linux下用什么办法连接oracle数据库并且读取数据呢?(用c++代码实现时)
  • 深入理解Oracle数据库的启动和关闭
  • 轻松理解Oracle数据库中的物理结构
  • 用java怎样实现oracle数据库表和excel数据表的转换
  • c/c++ iis7站长之家
  • jbuilder6 中怎样引入oracle 数据访问包
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle 10g和Oracle 11g网格技术介绍
  • Oracle EBS R12 支持 Oracle Database 11g
  • ORACLE日期相关操作
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3