更改表的结构
1. 编辑表的字段
修改一个列的数据类型 ( 一般限于修改长度,修改为一个不同类型时有诸多限制):
语法:
ALTER TABLE 表名 MODIFY( 列名, 数据类型);
eg1:
alter table skate_test modify (author number(10,0) )
在修改列的长度时候, 只能编辑比现有字段实际存的长度还要大, 否则提示下面的错误:
ORA-01441: 无法减小列长度, 因为一些值过大
eg2:
alter table skate_test modify (author varchar2(10) )
在修改列的数据类型的时候, 所修改的列必须为空, 否则提示下面的错误:
ORA-01439: 要更改数据类型, 则要修改的列必须为空
2. 增加一个列
语法:
ALTER TABLE 表名 ADD( 列名, 数据类型);
eg1 :
ALTER TABLE skate_test ADD(author NUMBER(38,0) not null);
3. 给列改名 :
语法:
ALTER TABLE 表名 RENAME COLUMN 当前列名 TO 新列名;
eg1 :
ALTER TABLE skate_test RENAME COLUMN author TO authorer_new
4. 删除一个列
语法:
ALTER TABLE 表名 DROP COLUMN 列名;
eg1 :
alter table skate_test drop column author
5. 将一个表改名
语法:
ALTER TABLE 当前表名 RENAME TO 新表名;
eg1 :
alter table skate_test rename to test_sakte
5. 给表加注释
comment column on 表名. 列名 is ' 注释内容'; // 修改表的列的注释
COMMENT ON TABLE MOVO_NEW.TEST_SAKTE IS '注释内容'; //修改表的注释
Oracle 约束基本语法
主键约束的添加-->
方法一:Create table 表名( 字段1 字段1 类型 Primary Key, 字段2 字段2 类型,.. 字段N 字段N 类型);
Create table UserInfo(UserID varchar2(20) Primary Key ,UserPassWord varchar(20),StateID number);
方法二: Alter table 表名 add constraint 约束名 Primary Key( 字段1);
Create table UserInfo(UserID varchar2(20),UserPassWord varchar(20),StateID number);
Alter table UserInfo add constraint PK_UserInfo Primary Key (UserID);
外键约束的添加-->
方法一:Create table 表名( 字段1 字段1 类型, 字段2 字段2 类型 constraint 约束名 references 外键表名( 外键),.. 字段N 字段N 类型);
Create table UserInfo(UserID varchar2(20),UserPassWord varchar(20),StateID number constraint FK_UserInfoState references State(StateID));
( 注:在此之前我们必须先创建好State 表)- Create table State (StateID number primary key,StateName varchar2(20));
方法二: Alter table 外键表 add constraint 约束名 Foreign Key( 外键表中的外键) references 主键表名( 主键表中的主键);
Create table UserInfo(UserID varchar2(20) Primary Key ,UserPassWord varchar2(20),StateID number);
Create table State (StateID number primary key,StateName varchar2(20));
Alter table UserInfo add constraint FK_UserInfoState Foreign Key (StateID) references State(StateID);
非空约束的添加-->
方法一:Create table 表名( 字段1 字段1 类型, 字段2 字段2 类型 constraint 约束名 not null,.. 字段N 字段N 类型);
Create table UserInfo(UserID varchar2(20),UserPassWord varchar2(20) constraint N_UserPassWord not null ,StateID number);
方法二:Alter table 表名 modify ( 字段名 not null);
Create table UserInfo(UserID varchar2(20),UserPassWord varchar2(20),StateID number);
Alter table UserInfo modify (UserPassWord not null);
唯一约束的添加-->
方法一:Create table 表名( 字段1 字段类型1 ,字段2 字段类型2 constraint 约束名 Unique ,字段n 字段类型n);
Create table dog(dogid number,dogName varchar2(20) constraint Un_dogName Unique );
方法二:Alter table 表名 add constraint 约束名 Unique( 被约束字段);
Create table dog(dogid number,dogName varchar2(20));
Alter table dog add constraid Un_dogName Unique (dogName);
检查约束的添加-->
方法一:Create table 表名( 列名1 列名1 类型 constraint 约束名 Check( 表达式), 列名2 列名2 类型,列名N 列名N 类型);
Create table pig(pigID number constraint CK_pigID Check(PigID >=0),pigName varchar2(20));
方法二:Alter table 表名 add constraint 约束名 Check( 表达式);
Create table pig(pigId number,pigName varchar2(20));
Alter table pig add constraint CK_pigID Check (pigID >= 0);
Alter table pig add constraint CK_sex Check (sex in ( ‘ 男 ’ , ’ 女 ’ ));
< 约束删除语句:Alter table 表名 drop constraint 约束名>
Alter table pig drop constraint CK_pigID;