如何用oracle里面的alter table语句去添加一个列约束

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用oracle里面的alter table语句去添加一个列约束相关的知识,希望对你有一定的参考价值。

CREATE TABLE employees(employee_id NUMBER(6),
last_name VARCHAR2(25),
email VARCHAR2(25),
salary NUMBER(8,2),
commission_pct NUMBER(2,2),
hire_date DATE NOT NULL,
...
department_id NUMBER(4),
CONSTRAINT emp_dept_fk FOREIGN KEY (department_id)REFERENCES departments(department_id),CONSTRAINT emp_email_uk UNIQUE(email));
我创建了如上的一个table,但没有给列name约束条件,现在我想给列name一个约束NOT NULL.怎么用alter table去实现呢?我在网上好像没有看到有人这么做过,用的多是添加primary key.哪位达人帮帮忙,谢谢了

alter table employees modify name not null
这个只是一个限制,不需要创建约束的。
不过如果这个字段已经有数据并且存在空数据,是无法修改成功的。
参考技术A sqlserver
getdate()
access
now()
oracle
sysdate

SQL ALTER TABLE 语句

SQL ALTER TABLE 语句


ALTER TABLE 语句

ALTER TABLE 语句用于在已有的表中添加、删除或修改列。

SQL ALTER TABLE 语法

如需在表中添加列,请使用下面的语法:

ALTER TABLE table_name
ADD column_name datatype

 

如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):

ALTER TABLE table_name
DROP COLUMN column_name

 

要改变表中列的数据类型,请使用下面的语法:

SQL Server / MS Access:

ALTER TABLE table_name
ALTER COLUMN column_name datatype

 

My SQL / Oracle:

ALTER TABLE table_name
MODIFY COLUMN column_name datatype

 

Oracle 10G 之后版本:

ALTER TABLE table_name
MODIFY column_name datatype;

 

 


SQL ALTER TABLE 实例

请看 "Persons" 表:

P_IdLastNameFirstNameAddressCity
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

现在,我们想在 "Persons" 表中添加一个名为 "DateOfBirth" 的列。

我们使用下面的 SQL 语句:

ALTER TABLE Persons
ADD DateOfBirth date

 

请注意,新列 "DateOfBirth" 的类型是 date,可以存放日期。数据类型规定列中可以存放的数据的类型。如需了解 MS Access、MySQL 和 SQL Server 中可用的数据类型,请访问我们完整的 数据类型参考手册

现在,"Persons" 表将如下所示:

P_IdLastNameFirstNameAddressCityDateOfBirth
1 Hansen Ola Timoteivn 10 Sandnes  
2 Svendson Tove Borgvn 23 Sandnes  
3 Pettersen Kari Storgt 20 Stavanger  

 


改变数据类型实例

现在,我们想要改变 "Persons" 表中 "DateOfBirth" 列的数据类型。

我们使用下面的 SQL 语句:

ALTER TABLE Persons
ALTER COLUMN DateOfBirth year

 

请注意,现在 "DateOfBirth" 列的类型是 year,可以存放 2 位或 4 位格式的年份。


DROP COLUMN 实例

接下来,我们想要删除 "Person" 表中的 "DateOfBirth" 列。

我们使用下面的 SQL 语句:

ALTER TABLE Persons
DROP COLUMN DateOfBirth

 

现在,"Persons" 表将如下所示:

P_IdLastNameFirstNameAddressCity
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

以上是关于如何用oracle里面的alter table语句去添加一个列约束的主要内容,如果未能解决你的问题,请参考以下文章

如何用SQL语句求oracle 数据库所有表的行数?

在SQL中,如何用ALTER命令删除表中所有完整性约束,然后再用ALTER命令建立

ORACLE中通过SQL语句(alter table)来增加删除修改字段

如何用SQL语句修改一个表的字段,让它不能为空

如何用sql语句对性别的 约束条件让它只能填 男 或 女

oracle数据库中如何用sql语句查出重复字段以及如何删除?