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

  次阅读 作者:智能小宝 来源:互联网 2016-01-28 13:20 我要评论(0)

数据库对象

常见:表:存放数据的基本数据库对象,由行(记录)和列(字段)组成

约束条件:执行数据校验,保证数据完整性的系列规则

视图:表中数据的逻辑显示

索引:根据表中指定的字段建立起来的顺序,用于提高查询性能

序列:一组有规律的整数值

同义词:对象的别名

命名:必须以字母开头。可以包含字母、数据、下划线、$、#

同一方案(用户)下的对象不能重名。不能使用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语句,一经执行不可撤销

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...