当前位置:文档之家› Oracle笔记

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的卸载:1,停止Oracle的所有服务;2,运行卸载程序;3,修改注册表,删除Oracle相关信息1. Oracle软件有关键--值HKEY_LOCAL_MACHINE\SOFTWARE\Oracle2. Oracle服务HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services3. Oracle事件日志HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Applic ation4. 删除Oracle系统目录:C:\\program files\oracle5. 删除Oracle的环境变量;6. 删除程序菜单中的Oracle菜单;7. (重启系统后)删除Oracle工作主目录:例如:d:\oracleOracle专业术语:数据库实例(Database Instance):运行在数据库文件上的一组Oracle后台进程/线程以及一个共享内存区。

数据库可有实例装载和打开。

Oracle实时应用集群(RAC Real Application Clusters)Oracle 并行服务器架构/RAC架构。

数据库服务名:(Database Services_name):从Oracle8i开始引入,数据库客户端与服务端连接时建议指定其数据库服务名,而不是数据库服务名。

网络服务名(Net Services Name):数据库在客户端的逻辑表示,包含数据库服务名和网络地址两方面的信息。

监听器(Monitor)数据库中的对象:表,视图,约束条件,索引,序列,同义词,存储过程,函数,触发器,包。

数据库安全:用户,方案,权限,角色,额配。

物理存储结构:数据文件(Data File 真正存储数据的文件)重做日志文件(Redo Log File)控制文件(Control File)逻辑存储结构:表空间(Table Space)段(Segment)区(Extent)块(Block)sql查询器,最好用sqlplus worksheet 在其中书写sql语句,使用- - 标示注释。

SQL语句:SQL语句的分类:1,select查询语句;2,DML语句(数据操作语言)(insert update delete Merge 合并表,oracle9i之后新出的);3,DDL语句(数据定义语言)(create,Alert,drop,Truncate截断,比如删除表中的一列)4,DCL语句(数据控制语言)(grant revoke)5,事务控制语句:(commit rollback savepoint)在Select 语句中,对number型数据可以使用算术运算符创建表达式。

例如:select age*10 from student;Select 语句中的连接运算符:"||" 可以把列和字符或其他表达式连接在一起,得到一个新的字符串,实现合成列的功能。

举例:select name || ' is age '|| age from student;select 中使用别名:重命名查询结果中的的字段,以增强可读性。

如果别名中使用特殊字符,或者是强制大小敏感需要使用双引号。

例如:select ename as 员工姓名,empno 员工编号from emp;select 中的空值:空值是无效的,未指定的,未知的或不可预知的值。

空值不等同于空格或者0。

去除重复行:用Distinct 例如:select distinct deptno from emp;如果distinct 后有多个字段,就指明多个字段的组合没有重复的。

查询语句中使用字符串和日期:字符串和日期要用单引号裹起来。

字符串大小写敏感。

日期格式敏感,缺省的日期格式:'DD-MON-RR'例如:select * from emp where name='smith';select * from emp where hiredate='02-4月-01';获取当前的日期格式:select sysdate from dual;字符串转换成日期:select * from emp where hiredate<= to_date('2001-05-05 10:34:50','yyyy-mm-dd hh:mi:ss');运算符:<> 不等于between ........and...... 介于两值之间(包过边界);in(SET)出现在集合中。

is null 为空值。

like 模糊查询:%表示零或多个字符;_ 表示一个字符;对于特殊符号(如% _等)使用escape标示符来查找。

select * from student name like '%!_% ' escape '!'; escape 定义转义符。

可以自己定义那个符号是转义符,这个例子中!是转义符。

desc student查看student表的表结构。

(就是看看表中都有什么字段)用命令select table_name from user_tables 可以查看当前连接的用户的所有表的名称。

用命令select table_name from all_tables 可以查看所有用户的所有表的名称。

(如果权限允许的话)前缀的意义:dba_tables 所有的tablesall_tables 当前用户所能看到的所有的tablesuser_tables 当前用户的有的tablestab tabs好象是user_tables的synonym(同义词)一些查询命令查看当前用户的缺省表空间SQL>select username,default_tablespace from user_users;查看当前用户的角色SQL>select * from user_role_privs;查看用户下所有的表SQL>select * from user_tables;5使用dba_tables,all_tables等都可以,如查找USERS表空间下的所有表:select owner,table_name,tablespace_name from all_tables where tablespace_name='USERS'oracle数据类型:char (10) 十个字节,一个汉字是两个字节。

最大长度2000Bnchar(10) 十个字符,一个汉字是一个字符。

最大长度2000Bvarchar2() 变长字符型最大4000个字节。

number(m,n); m表示总位数,n表示小数点后的位数。

总长度最大为38。

date日期型表示范围公元前4712 -1-1 到公元后4712-12-31。

blob 二进制大对象类型。

最大长度为4G;clob 字符大对象类型。

最大长度为4G;oracle函数:分为单行函数和多行函数。

单行函数:操作数据项,接收参数并返回结果,对每一返回行起作用,可修改数据类型,可嵌套使用。

单行函数分类:字符函数,数值函数,日期函数,转换函数,通用函数。

字符函数:lower()转换为小写,upper()转换为大写,initcap()单词首字母大写;concat()字符串连接,concat('hello','hcl');substr()截取字符串substr('HelloWorld',4,3) 返回loWlpad('smith',10,*);左侧填充* 凑够10位。

结果*****smithrpad('smith',10,*);右侧填充。

数值函数:round() 四舍五入。

trunc();截断trunc(3.14156,m) m可以是正也可以是负,正表示小数点后几位,负表示小数点前几位。

sign()判断数值正负,正值返回+1 负数返回-1 ,零返回0。

日期类型:缺省的日期格式为:DD-MON-YY可以使用sysdate函数获取当前系统日期和时间。

日期型数据可以直接加减一个数值,结果仍为日期。

两个日期相减,结果为两个日期相差多少天。

相关主题