Heim >Datenbank >MySQL-Tutorial >Oracle表的创建修改及增删改查-DML操作

Oracle表的创建修改及增删改查-DML操作

WBOY
WBOYOriginal
2016-06-07 17:32:391196Durchsuche

必须以字母开头,长度不能超过30个字符。不能使用ORACLE保留字。只能使用A-Za-z0-9$#等。表 TABLE包括:分区表,TABLE PARTITION

1.表名和列的命令规则:

必须以字母开头,长度不能超过30个字符。不能使用Oracle保留字。只能使用A-Za-z0-9$#等。

表 TABLE包括:分区表,TABLE PARTITION 簇CLUSTER 索引表INDEX-ORGANIZED TABLE(IOTs)

 

2.支持的数据类型:

 

标量数据类型:

varchar2 最大值4000字符 变长字符型数据

char 最大值2000字符,定长字符型数据

date 日期型数据,取值范围从公元前4712.1.1到9999.12.31 timestamp 精确到毫秒

number 数字型数据,

clob 用于在数据库中存储定长字节的大数据对象,如WORD文件。字符型大对象最大4G

blob 存储大的无结构二进制对象,如照片或幻灯片。

bfile 用于在数据库外的操作系统文件中存储大的无结构的二进制对象,如电影

raw 在数据库直接存储二进制数据。最大长度2000个字节

LOGN LONG RAW,ORACLE 8 劈头盖脸数据库中存储二进制图像文本等。

 

3.关于ROWID

在用户向表中插入一行数据时,ORACLE会自动在这一行数据加上一个ROWID,每行都有一个唯一ROWID,ORACLE利用ROWID定位数据行。并不显式存储为一列的值,是访问一个表中行的最快机制。

000000 FFF BBBBBB RRR

数据对象号 相应文件号块号 行号

数据对象号,,被赋予每一个对象,在一个数据库中是唯一的。相对文件号,对同一个表空间中每一个文件是唯一的。块号,为相对文件中包含数据行的块的位置。行号,标识块头中行目录位置。

SQL> select ename,rowid from scott.emp;

ENAME ROWID

---------- ------------------

SMITH AAAR3sAAEAAAACXAAA

ALLEN AAAR3sAAEAAAACXAAB

WARD AAAR3sAAEAAAACXAAC

JONES AAAR3sAAEAAAACXAAD

SMITH行的数据对象号为AAAR3s,相对文件号AAE,块号AAAACX,行号AAA

#############################

ORACLE数据行结构

行头 row header,存储行中列数,迁移信息,行锁状态。

行数据,一系列列长和列值组成

列长 columnlength,一般需要一个字节,列长度超过250字节,列长为3个字节

列值 columnvalue,列的实际值紧接列长字节后存放。

创建表时,应将不同表放在不同表空间中。

 

4.建表的几种方式

create table语句建表 要指明表名,列名,列数据类型,列宽度,是否有默认值

用查询语句做子句建表。此时新建表的内容将是所查询表的相应列的内容。

create table t2 as select ename name,salsalary from emp;

create table t2 as select * from emp;

用假条件,只对立表结构,不要数据

create table t3(c1,c2,c3) as selectename,empno,sal from emp where 9=1;

create table student(xh number(4),xmvarchar2(20),sex char(2),birthday date,sal number(7,2));

 

5.修改表

修改列的数据类型、字长

alter table t2 modify(name char(4));

修改表的名称,表的OWNER或SYSDBA修改

rename t2 to t_2;

修改列名称

alter table t3 rename column c1 to name;

表注释和列注释

修改一列:

alter table emp4 modify test varchar2(20);

删除一列:

alter table emp4 drop column test;

更多详情见请继续阅读下一页的精彩内容

 

相关阅读:

Oracle DML流程

PL/SQL“ ORA-14551: 无法在查询中执行 DML 操作”解决

MySQL常用DDL、DML、DCL语言整理(附样例)

Oracle基本事务和ForAll执行批量DML练习

Oracle DML语句(insert,update,delete) 回滚开销估算  

linux

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn