您的位置:首页 > 数据库

数据库表及其完整性约束

2013-05-19 16:28 393 查看
数据库表有两种基本类型:
关系表
对象表
关系表有三种特征组织表
堆组织表 :不按照特定的顺序排列
索引组织表:按照主键进行排列
外部表:只读表。元数据存储在数据库中,而数据存储在数据库外面
表要么是永久的,要么是临时的。
永久的表生命周期表长
临时表的生命周期是一个事物或者一个会话期间。临时表只是存储(某些应用程序在运行过程中由多个操作生成的)中间结果集。

创建表:
表名称和列集组成。
当你创建一个表的时候,给每列一个列名称,数据类型以及数据的宽度。
表可以包含一个虚拟列,但是虚拟列跟非虚拟列不一样,虚拟列不占用磁盘空间。数据库通过计算一组用户指定的表达式或者函数,
按需派生出虚拟的列值。

创建表:
create table employees(
employee_id number(6),
first_name varchar2(20),
last_namme varchar2(25) constraint emp_last_name_un not null,
constraint emp_salary_min check(salary > 0),
constraint emp_email_uk unique(email)
);
emp_last_name_un 是对last_name进行约束,用户自己定义的非空约束名。否则由oracle会自动生成随机的名字,这样,用户在取消
约束的时候不能够确定约束名字是什么,就必须去查找约束名进行取消约束,这样就增加了工作量.但一般来讲不会给非空约束取名字的。
因为非空约束太普遍了,一个表的很多字段都会要求非空。这样,如果给每个非空约束命名,就会显得很繁琐。
如果建表的命令中没有命名,Oracle会自动命名,所有的约束都是这样。这些问题是属于数据库编程规范的范围,目的就是提高程序和
代码的可读性、可维护性、性能,等等。
但主键约束,外键约束,唯一约束和检查约束一般应命名。

补:
创建存储过程的时候可以create or replace,那么,创建表的时候就不可以了,表里面有数据,存储过程只是代码,两者有本质区别。
那么只能是删除数据表了,但是对表的操作要小心,如果是生产数据库,不能直接删除表的。要对表的结构进行修改,使用alter table来完成

按照数据库的目的来区分:
生产数据库,测试数据库,开发数据库。
开发数据库是软件开发人员使用的,测试数据库是测试人员使用的,生产数据库是客户使用的。但开发库和测试库是还没有定型的,
发现问题还要修改的,最后修改的成品交给客户也就是部署到系统中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: