SQL中规定某列值只能是0或者1的约束该怎么写?

 我来答
博学小赵爱生活
高能答主

2020-04-11 · 专注于食品生活科技行业
博学小赵爱生活
采纳数:456 获赞数:111887

向TA提问 私信TA
展开全部

SQL CHECK 约束。

CHECK 约束用于限制列中的值的范围。

如果对单个列定义 CHECK 约束,那么该列只允许特定的值。

如果对一个表定义CHECK约束,那么此约束会在特定的列中对值进行限制。

--删除表

drop table temp;

--创建表

CREATE TABLE temp (flag NUMBER(1));

--增加约束

ALTER TABLE temp ADD CONSTRAINT ck_temp_flag CHECK

(flag=1 or flag=0);

--测试效果版

insert into temp values(1);

insert into temp values(0);

insert into temp values(1);

--测试效果(约束禁止插入数据),提示权:违反检查约束条件

insert into temp values(2);

insert into temp values(3);

SQL CHECK Constraint on CREATE TABLE。

下面的 SQL 在 "Persons" 表创建时为 "Id_P" 列创建 CHECK 约束。CHECK 约束规定 "Id_P" 列必须只包含大于 0 的整数。

My SQL:

CREATE TABLE Persons

(

Id_P int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

CHECK (Id_P>0)

)

扩展资料:

不同数据库的约束写法:

SQL Server / Oracle / MS Access:

CREATE TABLE Persons

(

Id_P int NOT NULL CHECK (Id_P>0),

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

如果需要命名 CHECK 约束,以及为多个列定义 CHECK 约束,请使用下面的 SQL 语法:

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons

(

Id_P int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')

)

SQL CHECK Constraint on ALTER TABLE.

如果在表已存在的情况下为 "Id_P" 列创建 CHECK 约束,请使用下面的 SQL:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons

ADD CHECK (Id_P>0)

如果需要命名 CHECK 约束,以及为多个列定义 CHECK 约束,请使用下面的 SQL 语法:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons

ADD CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')

撤销 CHECK 约束。

如需撤销 CHECK 约束,请使用下面的 SQL:

SQL Server / Oracle / MS Access:

ALTER TABLE Persons

DROP CONSTRAINT chk_Person



善待myself49
2011-03-13 · TA获得超过115个赞
知道答主
回答量:82
采纳率:0%
帮助的人:57万
展开全部
定义时使用check约束,限制列值只能是0或者1。
请参考:http://blog.csdn.net/shangwei97/archive/2009/09/02/4509785.aspx
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e8724f7e9
推荐于2018-03-09 · TA获得超过150个赞
知道答主
回答量:22
采纳率:0%
帮助的人:16.8万
展开全部
看下面的例子:Oracle10g(10.2.0.1.0)测试通过
--删除表
drop table temp;
--创建表
CREATE TABLE temp (flag NUMBER(1));
--增加约束
ALTER TABLE temp ADD CONSTRAINT ck_temp_flag CHECK
(flag=1 or flag=0);
--测试效果(成功)
insert into temp values(1);
insert into temp values(0);
insert into temp values(1);
--测试效果(约束禁止插入数据),提示:违反检查约束条件
insert into temp values(2);
insert into temp values(3);
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
theprogrammer
2011-03-13 · TA获得超过1650个赞
知道小有建树答主
回答量:1127
采纳率:0%
帮助的人:471万
展开全部
声明为 bit NOT NULL 类型。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式