热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

oracle表的创建与管理,Oracle从零开始11——表的管理01——创建和管理表

1.创建和管理表在Oracle中之前使用emp、dept等都是系统内建好的表,在SQL语法中同样支持了表的创建语句,要想创建表,则应该首先

1.创建和管理表

在Oracle中之前使用emp、dept等都是系统内建好的表,在SQL语法中同样支持了表的创建语句,要想创建表,则应该首先了解Oracle中最常使用到的几种数据类型

1)常用的数据类型

常用过的数据类型,如之前的emp表中已经出现的三种:NUMBER,VARCHAR,DATE

No

数据类型

描述

1

VARCHAR、VARCHAR2

表示的是一个字符串,有长度限制,255

2

NUMBER

NUMBER(n):表示一个证整数,数字的长度是n,可以使用INT

NUMBER(m,n):表示一个小数,数字小数长度为n,数字整数长度是m-n,可以使用FLOAT

3

DATE

表示日期的类型,按照标准的日期格式进行存放

4

CLOB

大对象,表示大文本数据,4G的文本

5

BLOB

大对象,表示二进制数据,最大可以存放4G,例如存放电影,歌曲,图片

2)表的建立

按照标准的语法进行,但是有时会指定约束,此处先给出简单语法

建立表的语法:

CREATE TABLE 表名称(

字段名称    字段类型    [DEFAULT 默认值]

字段名称    字段类型    [DEFAULT 默认值]

字段名称    字段类型    [DEFAULT 默认值]

)

复制表的语法:

CREATE TABLE 表名称 AS(子查询)

如果现在子查询写的是SELECT * FROM emp,表示将表的结构和内容一起复制

如果现在子查询写的是SELECT * FROM emp WHERE 1=2,加入了一个永远不可能成立的条件,则表示只复制表的结构,但是不复制表的内容

范例:复制表的结构

CREATE TABLE temp AS SELECT * FROM emp WHERE 1=2;

1177972777551199016.jpg

现在假设要创建一张person表,表中的字段类型及意义如下所示:

No

字段名称

字段类型

描述

1

pid

VARCHAR2(18)

表示人员编号

2

name

VARCHAR2(200)

表示人员姓名

3

age

NUMBER(3)

表示人员年龄

4

birthday

DATE

表示人员生日

5

sex

VARCHAR2(2)

表示人员性别,默认值是男

1569504470155713320.jpg

范例:向表中增加数据

2790261444149830505.jpg

李四的性别就是默认的男。

如果希望在表中增加一个address的字段,则可以将表删除之后再重新创建

3)表的删除

表的删除语法:

DROP TABLE 表名称;

范例:删除表,并重新编写新的脚本(数据库脚本就是删除表、建立表和增加表内容),加入address

2790261444149830509.jpg

4)表的修改(了解)

假设表中已经存在大量纪录,为了增加列而删除,就很麻烦,所以SQL语法中有专门修改表结构的命令:增加列ALTER、修改列MODIFY

增加列的语法:

ALTER TABLE 表名称ADD(列的名称 列的类型 DEFAULT 默认值,列的名称 列的类型 DEFAULT 默认值,…)

范例:为最早的person中增加address列

2702441251416108570.jpg

修改表结构的语法:

ALTER TABLE 表名称 MODIFY(列的名称 列的类型 DEFAULT 默认值,列的名称 列的类型 DEFAULT 默认值,…)

但是在修改表结构的时候,如果数据库中对应的字段里有一个很长的数据,则无法将表的长度缩小,例如现在在name字段中存在一个长度为20的字母,要将name的长度从200修改为10,则无法实现

范例:将person中的name字段的长度修改为50,默认值为"无名氏"

1024287440267179465.jpg

范例:再向表中插入数据,但是不给名字

22799473130667187.jpg

表中×××编号重复,因为没有增加约束

2702441251416108604.jpg

在一般的数据库程序开发中,很少去修改表结构,这一点的IBM DB2数据库中就没有提供ALTER TABLE指令,所以在建表的时候一定要考虑到位。

5)表的重命名(了解)

Oracle独有

在Oracle中提供了RENAME命令,可以为表进行重命名

表的重命名的语法格式:

RENAME 旧的表名称 TO 新的表名称;

范例:将person表 重命名为tperson

1024287440267179490.jpg

6)表的截断(了解)

Oracle独有

之前讲解过,如果现在讲person表中的一条数据使用DELETE语句删除了,可以rollback回滚:DELETE RFOM emp10 WHERE empno=7782;

如果想清空一张表的数据, 同时不需要回滚,可以立刻释放资源,就需要使用截断表

截断表的语法:

TRUNCATE TABLE表名称;

范例:截断tperson表

1024287440267179497.jpg



推荐阅读
author-avatar
黄智铭铭铭铭_216
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有