首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 冲浪宝典 > 网络资源 > Oracle数据库的基础概念和基础操作
【标  题】:Oracle数据库的基础概念和基础操作
【关键字】:Oracle
【来  源】:http://blog.csdn.net/blackstreet/archive/2006/10/25/1351006.aspx

Oracle数据库的基础概念和基础操作

  • 数据库的三个泛式 :
1.1NF
       如果一个表中没有重复组(即行与列的交叉点上只有一个值,而不是一组值),且定义了关键字、所有 非关键属性都依赖于关键字,则这个表属于第一范式(常记成1NF) 
2. 2NF
       如果一个表属于1NF,且不包含部分依赖性,既没有任何属性只依赖于关键字的一部分,则这个表属于第二范式(常记成2NF )。
       解决方式:删除表中不完全依赖于主键的数据
3. 3NF
      如果一个表属于2NF,且不包含传递依赖性(即没有一个非关键属性依赖于另一个非关键属性,或者说没有一个非关键属性决定另一个非关键属性),则这个表是第三范式(常记成3NF)。
      解决方式:删除那些不属于该表的数据
  • Oracle 数据库组件:
逻辑结构图:
 
物理结构:
操作系统文件有三种类型:
1。数据库文件或数据文件
       是物理操作系统文件,包括诸如用户数据、系统数据和Overhead数据等所有数据库数据
       数据文件中的数据以块为单位
       任何数据库创建时至少包含一个数据文件
2。控制文件
       创建数据库时,就创建了控制文件
       存储数据库的物理结构
       还包括关于数据库的信息:数据库的名称,数据文件和恢复日志文件的名称及其位置,时间戳
3。恢复日志文件
       恢复日志文件是操作系统文件集,
      由RDBMS 用于记录对数据库所做的更改,如出现故障,则可从恢复日志中访问并重新应用对数据库所做的更 改,这样即可保护已完成的工作不受损失
   数据库有两种模式运行:NOARCHIVELOG MODE(归档日志),ARCHIVELOG MODE(不归档日志)
  • Oracle数据库数据类型:
  
 Character 数据类型
Char         固定长度的字符串最大长度为2000个字节
varchar2    可变长度的字符串最大长度为4000个字节
long          存储可变长度的大数据字符串最大长度为2GB
  Number
数据类型
number 存储数值
number(9,2)
可存123456,   123456.89   不能为12345789(小数点左边有8位数字,最多为7)
  Date 数据类型
       date
       Timestamp
       Interval day to second
       Interval year to month
       Timestamp with time zone
       Timestamp with local time zone

  Raw 和 Long Raw 数据类型
用于存储二进制的数据.raw最大长度为2000个字节,long raw 最大为2GB
  LOB 数据类型
     CLOB  主要用于大的二进制文件
     BLOB  存储大的字符串
     BFILE  指向数据库服务器文件的指针
  • 多表查询操作: 

 给表起别名:
    Select  e.employee_id,e.last_name,d.department_name  From  employees e,departments d
列的别名:(列名后加 ''column name"、 as column name或直接加别名)
    Select employee_id "Emp #",e.last_name,d.department_name From employees e,departments d
1.自然联接(系统会将一表中的列和二表的列的同名列进联接,缺点各个表中的列要有同名列)         
    Select employee_id,last_name,department_name From employees NATURAL JOIN departments Where  deparment_name='Purchasing'
 2.内联接(和自然联接差不多,但要规定所要联接的列)
    Select e.employee_id,e.last_name,d.department_name From employees e INNER JOIN departments d ON e.department_id=d.department_id Where e.job_id='SA_MAN'
3.外联接(分为左外部联接,右外部联接,完全联接)
左外部联接:左表如果满足WHERE条件,不论在右表中是否为NULL
Select e.employee_id,e.last_name,d.department_name From employees e 
   LEFT OUTER JOIN departments d ON e.department_id=d.department_id
   Where e.job_id='SA_MAN'     
右外部联接:
Select e.employee_id,e.last_name,d.department_name From employees e 
   RIGHT OUTER JOIN departments d ON e.department_id=d.department_id
   Where d.location_id='1700' 
完全联接(FULL OUTER JOIN)

 

  •   集合操作符 
1.UNION和ALL  UNION
    Select employee_id,last_name From employee Where last_name like 'A%'
        UNION [ UNION  ALL ]--UNION会自动过滤去重复行,UNION  ALL不过滤
    Select employee_id,last_name From employee Where last_name like 'B%'
2.INTERSECT(取交集)
    Select employee_id,last_name From employee Where last_name like 'A%'  or last_name like 'B%' 
        INTERSECT--返回like 'B%' 的记录
    Select employee_id,last_name From employee Where last_name like 'A%' or last_name like 'B%' 
3.MINUS (取差集)
    Select employee_id,last_name From employee Where last_name like 'A%'  or last_name like 'B%' 
        MINUS--返回like 'A%' 的记录
    Select employee_id,last_name From employee Where last_name like ' C%' or last_name like 'B%' 
  
SQL约束

1.创建表的组合主键
create table employee_history
(
employee_id number,salary number(8,2),hire_date date default sysdate,
CONSTRAINT emphistory_pk primary key(employee_id,hire_date)
)
2.ALTER TABLE 表名 add constraint 约束名 primary key(列名)
3.ALTER TABLE 表名
  add constraint 约束名 foreign key(外键表) references 所引用的表名(主键列)
4.ALTER TABLE 表名 add constraint 约束名 unique(列名)--添加唯一性
5.ALTER TABLE 表名 
      add constraint 约束名 check(column in('AA','BB'))--column列的值只能为'AA','BB'
 
 
sql plus 或 PLSQL 工具不能显示中文字符:【上一篇】
取某个部门下的所有子部门SQL语句:【下一篇】
【相关文章】
  • Oracle运算符和函数
  • Oracle的用户管理和事务外理
  • Oracle的视图、同义词、序列、簇
  • Oracle的管理表分区和索引
  • Oracle的PL/SQL编程和游标
  • Oracle过程、函数、程序包和对象
  • Oracle触发器和内置程序包
  • 使用SQL*Loader向Oracle导入数据
  • ORACLE常用的SQL语法和数据对象
  • Linux/Unix启动、关闭Oracle
  • 【随机文章】
  • 关于LIST(列表) 的作用(本文章主要用于端口限制方面)
  • JavaScript的系统函数学习
  • 丁达夫的生物信息学讲座部分摘要
  • 2007数据库技术谁主沉浮(下):特定领域数据库市场与技术分析
  • pb函数库之数值计算函数
  • oracle tkprof的使用
  • 光纤SAN与iSCSI SAN孰优孰劣?
  • 某教育网IDC方案-radware
  • 试用Ubuntu
  • PALM 开发笔记(构造位图)
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.