WEB开发网
开发学院数据库Oracle Oracle数据库入门之DDL与数据库对象 阅读

Oracle数据库入门之DDL与数据库对象

 2012-11-28 15:27:55 来源:WEB开发网   
核心提示: 数据库对象常见:表:存放数据的基本数据库对象,由行(记录)和列(字段)组成约束条件:执行数据校验,Oracle数据库入门之DDL与数据库对象,保证数据完整性的系列规则视图:表中数据的逻辑显示索引:根据表中指定的字段建立起来的顺序,用于提高查询性能序列:一组有规律的整数值同义词:对象的别名命名:必须以字母开头,一经执行

 数据库对象
常见:表:存放数据的基本数据库对象,由行(记录)和列(字段)组成
约束条件:执行数据校验,保证数据完整性的系列规则
视图:表中数据的逻辑显示
索引:根据表中指定的字段建立起来的顺序,用于提高查询性能
序列:一组有规律的整数值
同义词:对象的别名
命名:必须以字母开头。可以包含字母、数据、下划线、$、#
同一方案(用户)下的对象不能重名。不能使用Oracle的保留字
补充:Oracle数据库中的表分为用户定义的表和数据字典表
用户定义的表:用户自己创建并维护的一组表,包含了用户所需的信息
数据字典表:由Oracle数据库自动创建并维护的一组表,包含数据库信息



创建表
概述:创建表需要两个前提条件,即具备创建表的权限和有可用的存储空间
创建表时必须指定表名、字段名、字段类型。create table为DDL语句,一经执行不可撤销
语法:create table [schema.]table(column datatype [default expr][,...]);--缺省是将表创建在当前方案(用户)下
举例:create table scott.test1(name varchar2(20),hiredata date default sysdate,salary number(8,2) default 0);
向test1插入新记录的时候,若没有指定hiredate值,缺省就会取当前的系统时间。同样也设置了salsry的缺省值为0
如果插入记录的时候也没有指定eid的值,那么eid的缺省值是null。注意数值型的缺省值不是0,而是null
补充:还可以使用子查询创建表。这是创建表的另一种方式,但不是很常用。即创建表的同时将子查询的结果直接插入其中
新建表与子查询结果的字段列表必须匹配。新建表的字段列表可以缺省,这时字段名就跟子查询的结果的字段名相同
语法:create table [schema.]table(column[,...]) as subquery;--括号中不可以定义字段类型
举例:create table myemp2 as select empno,ename,sal*12 from emp;--非法。表达式不可以充当字段,需要指定别名
create table myemp2 as select empno,ename,sal*12 annsal from emp;--合法
create table myemp(编号,姓名,年薪) as select empno,ename,sal*12 from emp;--指定新建表的字段名



修改表结构
概述:使用alter table语句修改表的结构。包括添加、修改、删除字段。alter语句为DDL语句,一经执行不可撤销
添加:在alter table语句中使用add子句添加新字段。新字段只能被加到整个表的最后
alter table table add(column datatype [default expr] [column datatype]...);
alter table test1 add(grade number(3),phone varchar2(20) default '无');
修改:在alter table语句中使用modify子句修改现有字段。包括数据类型、大小和默认值。但不可以修改字段名
alter table table modify(column datatype [default expr] [column datatype]...);
alter table test1 modify(grade number(2),phone varchar2(15) default '010-12345678');
修改的缺省值设置,只对此后新插入的记录有效。修改操作会受到当前表中已有数据的影响
当已有记录的相应字段只包含空值时,类型和大小都可以修改。如果该字段已包含数值,则修改可能失败
删除:在alter table语句中使用drop子句删除字段。从每行中删除该字段占据的长度和数据,释放在数据块中占用的存储空间
alter table table drop(column[,column]...);
alter table test1 drop(grade,phone);



清空表数据
概述:使用truncate table可以清空表中数据。清除表中所有记录,释放表的存储空间,它是DDL语句,一经执行不可撤销
它与DML中的delete语句有很大的差别。delete可以进行条件性的删除,也可以定义到事务中,对其进行回滚或撤销

1 2 3 4 5 6  下一页

Tags:Oracle 数据库 入门

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接