数据定义(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
注:<>符号表示必填,[]符号表示可选,其他为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、timestampb、有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 约束名|默认值。