1.dictionary 数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的。
- 静态数据字典-->主要是在用户访问数据字典时不会发生改变的, --例如某用户创建的表
- 动态数据字典-->是依赖数据库运行的性能的,反映数据库运行的一些内在信息,所以在访问这类数据字典时往往不是一成不变的。这些视图提供了关于内存和磁盘的运行情况,所以我们只能对其进行只读访问而不能修改它们。
数据字典中的表是不能直接被访问的,但是可以访问数据字典中的视图。静态数据字典中的视图分为三类,它们分别由三个前缀够成:user_*、 all_*、 dba_*。
- user_* 该视图存储了关于当前用户所拥有的对象的信息。(即所有在该用户模式下的对象)
- all_* 该试图存储了当前用户能够访问的对象的信息。(与user_*相比,all_* 并不需要拥有该对象,只需要具有访问该对象的权限即可)
- dba_* 该视图存储了数据库中所有对象的信息。(前提是当前用户具有访问这些数据库的权限,一般来说必须具有管理员权限)
--所有的字典都保存在dictionary里面 select * from dictionary; -- 查当前用户里有哪些表 select table_name from user_tables; --查询当前用户下面有哪些视图? select view_name from user_views; --查询当前用户下面的约束在哪些表上面? select constraint_name, table_name from user_constraints; --查询该用户拥有哪些索引 select index_name from user_indexes; --查询该用户拥有哪些数据库对象,对象包括表、视图、存储过程、触发器、包、索引、序列、JAVA文件等。 select object_name from user_objects; --主要描述当前用户的信息,主要包括当前用户名、帐户id、帐户状态、表空间名、创建时间等。 select * from user_users;
2. Index 索引就相当于我们小时候查字典里那个索引
索引的作用:你为某个字段建立索引,别人访问这个字段的时候效率会更高。注意:是读的时候效率会更高。索引的建立是读起来更快,修改起来更慢了(附加修改索引表)。
你访问这个字段,访问量特别大的时候,而且觉得效率比较低的时候,这个时候可以考虑建立索引,但是记住一点:不要轻易的建立索引。
--创建索引 注意:当你给表里某个字段加约束的时候,比如主键约束,或者唯一约束,这个时候Oracle会帮你建立 --对应的这个字段的一个索引,如果你的主键是两个字段的组合,它会帮你建立两个字段组合的一个索引 create index idx_stu_email on stu (email); --删除索引 drop index idx_stu_email; --忘记索引怎么查 select index_name from user_indexes;
3.sequence 这是Oracle里面独特的东西,即特有的东西,一般用来做主键。每次取的时候它会自动增加。sequence与表没有关系。
CREATE SEQUENCE seqTest INCREMENT BY 1 -- 每次加几个 START WITH 1 -- 从1开始计数 NOMAXvalue -- 不设置最大值 NOCYCLE -- 一直累加,不循环 CACHE 10; --设置缓存cache个序列,如果系统down掉了或者其它情况将会导致序列不连续,也可以设置为---------NOCACHE --得到当前值 CURRVAL 总是返回当前SEQUENCE的值,但是在第一次NEXTVAL初始化之后才能使用CURRVAL,否则会出错。 SELECT seqTest.currVal FROM DUAL; --得到下个值 第一次NEXTVAL返回的是初始值;随后的NEXTVAL会自动增加你定义的INCREMENT BY值,然后返回增加后的值。 select seqtest.NextVal from dual; --修改 拥有ALTER ANY SEQUENCE 权限才能改动sequence. 可以alter除start至以外的所有sequence参数. --如果想要改变start值,必须 drop sequence 再 re-create。 alter sequence SEQTEST maxvalue 9999999; --删除 DROP SEQUENCE SEQTEST;
4.数据库三范式
三范式所追寻的原则是:不存在冗余数据
第一范式:确保每列保持原子性 ----> 1.要有主键(设计任何表都要有主键) 2.列不可分
第二范式:确保表中的每列都和主键相关 ---> 当一张表里面有多个字段作为主键的时候,非主键的这些字段,不能依赖于部分主键(只能依赖整个组合的主键,不能依赖部分)
第三范式:确保数据表中的每一列数据都和主键直接相关,而不能间接相关。----->(不能存在传递依赖,除了主键之外的任何其他字段必须直接依赖于主键)
相关推荐
oracle学习笔记-入门基础-01-张园
Oracle基础学习笔记,开窗排序函数,权限管理,递归查询,存储函数触发器游标等等
oracle培训笔记 XML第一课备课(XML基础)笔记 Oracle第五课(作用于多行的函数)备课笔记
oracle的笔记 就是Oracle的基础语句之类
oracle的基础概念和术语,oracle的安装与卸载,创建存储过程,约束,oracle连接超时,服务的作用,创建表空间,用户,赋予权限
超详细Oracle学习笔记,详细记录了oracle的学习过程中遇到的各种问题及基础知识,适合初中级oracle使用人员学习参考。
51CTO下载-李兴华--oracle课堂笔记(全),oracle基础知识讲解对于刚入行的小伙伴很有帮助
这是oracle基础学习笔记.有示例和代码的演示。
有关oracle数据库基础学习OCP课程的基础051的课程笔记
全网最全的oracle学习笔记,oracle学习笔记,oracle,### 4、oracle的七个服务 ```sql 1、Oracle ORCL VSS Writer Service Oracle卷映射拷贝写入服务,VSS(Volume Shadow Copy Service)能够让存储基础设备(比如...
oracle入门学习笔记,有图和代码,代码有解释
最牛逼的Oracle DBA基础笔记 菜鸟必备
oracle笔记,自己看视频的时候总结的。
成功之路 Oracle 11g 中文学习笔记 专为开发人员编写,先引导开发新手熟悉Oracle环境,然后进入数据库开发,并要掌握项目开发的一些技巧。开发技巧展示是本书一大特色(这一点很值得资深的开发人员借鉴)! 本书共24...
Oracle的一些笔记
│ ORACLE学习笔记(二)SQLPLUS基础 - lvhuiqing的专栏 - CSDN博客.mht.lnk │ oracle技巧.txt │ ORACLE的索引和约束详解 - Oracle10g - 沪城篱笆.mht │ oracle里常用命令 - Oracle - 51CTO技术论坛_中国领先的IT...
ORACLE学习笔记 基础的命令,可以学习
老方块 ORACLE 教学笔记 整理 第1堂体验课-SQL技巧篇(一) 第2堂体验课-SQL技巧篇(二) 第3堂体验课-ORACLE并发事务和锁机制 第4堂体验课-索引机制 第5堂体验课笔记 ORACLE体系结构(一...方块笔记--oracle基础篇.pdf
学习oracle的读书笔记,整理基本操作与总结。