ORACLE DDL语句

数据定义(DDL Data Definition Language):用于创建、删除和管理数据库、数据表及视图与索引。DDL语句通常包括对象的创建(CREATE)、修改(ALTER)以及删除(DROP)等命令。

一、oracle字段类型

1、字符数据类型
CHAR类型:用户存放字符串数据,定义形式为CHAR[(n)],以CHAR类型存放的字符串中的每个字符和符号占用一个字节的存储空间。n表示字符所占的存储空间,n的值范围为1~2000,即最多可容纳2000个字符。若不指定n值,则系统默认值为1。如果输入的字符串的个数小于n,则系统会以后空格自动补齐n个字符,但在取出时会自动去除末尾的空格。若输入的数据超过n个字符则会截掉超出部分。

VARCHAR2类型:用户存放可变长的字符串,具体定义时指明最大长度n。

LONG类型:用来存放可变长度的字符串数据,最多能存储占用2GB空间大小的文本数据。
注:在一个表中只能有一个LONG类型字段,并且LONG类型字段不能被定义为主键或唯一约束;不能建立索引;不能用作存储过程的参数

2、数字数据类型
NUMBER类型:用于存放可变长度的数值,允许正负值、0,格式为NUMBER(P,S),其中P表示数据总长度,取值范围为1~38,;S表示小数位数,取值范围为-84~127之间的数字。如果输入超过设置的值则会被截取,如NUMBER(6,3)输入15.23181,字段实际保存的值为15.232(四舍五入)

3、日期时间类型
DATE类型:用于存放日期和时间数据

TIMESTAMP类型:与DATE基本相同,但不同的是TIMESTAMP会包含小数秒

4、RAW数据类型
RAW类型:用于存放结余字节的二进制数据,最对能存放2000个字节,没有默认大小,所以在使用时要指定大小,可以建立索引

LONG RAW类型:用于存放可变长度的二进制数据,最多能存放2GB,受限跟LONG一样。

5、LOB数据类型
CLOB类型(CHARACTER LOB):用于存放大量字符数据,可以存放非结构化的xml文档。

BLOB类型(BINARY LOB):可以存放较大的二进制对象,如图形、音视频等数据。

二、建表语句
CREATE TABLE <TABLENAME>
(
<COLUMN1> <DATATYPE> [NOT NULL] [DEFAULT <默认值>],
<COLUMN2> <DATATYPE> [NOT NULL] [DEFAULT <默认值>],
...
<COLUMN3> <DATATYPE>
);

注:<>符号表示必填,[]符号表示可选,其他为sql语法关键字:CREATE TABLE。需要注意标点符号

1、带主键的创建方式

eg1:联合主键pk_t_user

begin
execute immediate 'drop table t_user cascade constraints';
commit;
exception when others then commit;
end;
/
create table t_user  (
   id NUMBER(10) not null,
   name varCHAR2(200) not null,
   age NUMBER(2) not null,
   status NUMBER(1) not null,
   craetetime date default sysdate,
   constraint pk_t_user primary key (id,name)
);

eg2:单列主键,主键名由系统给定

begin
execute immediate 'drop table t_user cascade constraints';
commit;
exception when others then commit;
end
/
create table t_user  (
   id NUMBER(10) not null primary key,
   name varCHAR2(200) not null,
   age NUMBER(2) not null,
   status NUMBER(1) not null
);

eg3:新增主键

alter table t_user add constraint pk_t_user primary key(id,name);

以上为新增主键的三种方式。

三、修改字段

修改字段类型

语法:ALTER TABLE 表名 MODIFY 字段名 DATETYPE[<长度>];

alter table t_user modify status integer;

修改字段名称

语法:ALTER TABLE 表名 RENAME OLDCOLUMN TO NEWCOLUMN;

alter table t_user rename column status to state;

注:修改字段类型时,当前字段的数据类型与要转换成的数据类型需相互兼容。
且以下字段类型不可修改:
a、数据类型为test、image、ntext、timestamp
b、有unique约束的字段
c、设有默认值的字段
d、重复的字段
e、计算的或用在计算的字段中
f、用于check约束的字段

四、添加字段
语法一:alter table 表名 add 字段名 数据类型;

alter table t_user add city varchar2(100);--无默认值

语法二:alter table 表名 add 字段名 数据类型 default<默认值> ;

alter table t_user add city varchar2(100) default '北京';--有默认值

五、删除字段
语法:alter table 表名 drop column 字段名;

alter table t_user drop column city;

如果字段有约束条件,则需要先删除约束:alter table tablename drop constraint 约束名|默认值。

—转载请注明出处
原文地址:https://www.cnblogs.com/landiss/p/13858235.html