1. oracle中如何向建好的表添加非空约束条件
利用oracle enterprise manager console就可以做到
2. 数据库怎么在建表之后怎么给字段添加约束
五大约束
1.—-主键约束(Primay Key Coustraint) 唯一性,非空性
2.—-唯一约束 (Unique Counstraint)唯一性,可以空,但只能有一个
3.—-检查约束 (Check Counstraint) 对该列数据的范围、格式的限制(如:年龄、性别等)
4.—-默认约束 (Default Counstraint) 该数据的默认值
5.—-外键约束 (Foreign Key Counstraint) 需要建立两表间的关系并引用主表的列
五大约束的语法示例
1.—-添加主键约束(将stuNo作为主键)
alter table stuInfo
add constraint PK_stuNo primary key (stuNo)
2.—-添加唯一约束(身份证号唯一,因为每个人的都不一样)
alter table stuInfo
add constraint UQ_stuID unique(stuID)
3.—-添加默认约束(如果地址不填 默认为“地址不详”)
alter table stuInfo
add constraint DF_stuAddress default (‘地址不详’) for stuAddress
4.—-添加检查约束 (对年龄加以限定 15-40岁之间)
alter table stuInfo
add constraint CK_stuAge check (stuAge between 15 and 40)
alter table stuInfo
add constraint CK_stuSex check (stuSex=’男’ or stuSex=’女′)
5.—-添加外键约束 (主表stuInfo和从表stuMarks建立关系,关联字段stuNo)
alter table stuInfo
add constraint FK_stuNo foreign key(stuNo)references stuinfo(stuNo)
约束(Constraint)是Microsoft sql Server 提供的自动保持数据库完整性的一种方法,定义了可输入表或表的单个列中的数据的限制条件(有关数据完整性的介绍请参见第9 章)。在SQL Server 中有5 种约束:主关键字约束(Primary Key Constraint)、外关键字约束(Foreign Key Constraint)、惟一性约束(Unique Constraint)、检查约束(Check Constraint)和缺省约束(Default Constraint)。
3. oracle创建表后怎么再加非空约束
oracle建表约束主要有以下几大类:
nn:not
null
非空约束
uk:unique
key
唯一约束
pk:primary
key
主键约束
fk:foreign
key
外键约束
ck:check
条件约束
一张表必须要有一个字段为主键,这段不能为空,并且值唯一,oracle中一般将该字段定义为数值类型,用序列为该字段插入值;其他字段的约束要根据业务需求来定。
给表中的字段添加约束可以在创建表时添加,也可以在修改时添加。
创建表必须给出表名、字段名、字段类型,约束条件不是必须的。
例如:创建如下表时
create
table
tb_constraint_1
(
empno
number
primary
key,
--主键约束
ename
varchar2(20)
not
null,
--非空约束
email
varchar2(60)
unique,
--唯一约束
sal
number(5)
check(sal>1500),
--核查约束
deptno
number(4)
references
tb_dept(deptno)
--外键约束
);
修改已创建表中某个字段的约束:
alter
table
tb_constraint_1
add
constraint
yueshumingzi
unique(ename
);--修改姓名字段值必须唯一
创建表的外键约束时,外键字段的类型必须和关联表的主键的类型一致。
表名和字段名的长度oracle默认约定为长度不能大于30个字符
创建好的表,字段可以修改,以下是修改
添加表
删除表字段
格式:
alter
table
表名
add
新列列名
列数据类型
[default
0
not
null]
(添加列默认值为0)
alter
table
表名
drop
列名
(删除列)
alter
table
表名
alter
column
列名
新添加的数据类型
(修改列)
4. sql怎样 添加非空约束,和identity在创建完表后加入
非空约束
alter table tb1
add constraint 约束名 check(列名 is not null)
建表以后添加identity列的话,如果列名已经存在必须先drop掉,然后重新添加
假设原来表上有个id列,想让列名id为自增列,则
alter table 表名
drop column id
alter table 表名
add id int identity
5. 数据库表怎么添加约束条件
第一步:新建数据库并设置可写权限
打开SQL Server管理器窗口,用本地用户登录;然后点击右键——新建数据库;完成之后将数据库文件及日志文件设置为可读可写,如图:
6. 怎样用SQL语句对指定字段建立非空约束
五大约束
1.—-主键约束(Primay Key Coustraint) 唯一性,非空性
2.—-唯一约束 (Unique Counstraint)唯一性,可以空,但只能有一个
3.—-检查约束 (Check Counstraint) 对该列数据的范围、格式的限制(如:年龄、性别等)
4.—-默认约束 (Default Counstraint) 该数据的默认值
5.—-外键约束 (Foreign Key Counstraint) 需要建立两表间的关系并引用主表的列五大约束的语法示例
1.—-添加主键约束(将stuNo作为主键)
alter table stuInfo
add constraint PK_stuNo primary key (stuNo)
2.—-添加唯一约束(身份证号唯一,因为每个人的都不一样)
alter table stuInfo
add constraint UQ_stuID unique(stuID)
3.—-添加默认约束(如果地址不填 默认为“地址不详”)
alter table stuInfo
add constraint DF_stuAddress default (‘地址不详’) for stuAddress
4.—-添加检查约束 (对年龄加以限定 15-40岁之间)
alter table stuInfo
add constraint CK_stuAge check (stuAge between 15 and 40)
alter table stuInfo
add constraint CK_stuSex check (stuSex=’男’ or stuSex=’女′)
5.—-添加外键约束 (主表stuInfo和从表stuMarks建立关系,关联字段stuNo)
alter table stuInfo
add constraint FK_stuNo foreign key(stuNo)references stuinfo(stuNo)
约束(Constraint)是Microsoft SQL Server 提供的自动保持数据库完整性的一种方法,定义了可输入表或表的单个列中的数据的限制条件(有关数据完整性的介绍请参见第9 章)。在SQL Server 中有5 种约束:主关键字约束(Primary Key Constraint)、外关键字约束(Foreign Key Constraint)、惟一性约束(Unique Constraint)、检查约束(Check Constraint)和缺省约束(Default Constraint)。
1 主关键字约束
主关键字约束指定表的一列或几列的组合的值在表中具有惟一性,即能惟一地指定一行记录。每个表中只能有一列被指定为主关键字,且IMAGE 和TEXT 类型的列不能被指定为主关键字,也不允许指定主关键字列有NULL 属性。
定义主关键字约束的语法如下:
CONSTRAINT constraint_name
PRIMARY KEY [CLUSTERED | NONCLUSTERED]
(column_name1[, column_name2,…,column_name16])
各参数说明如下:
constraint_name
指定约束的名称约束的名称。在数据库中应是惟一的。如果不指定,则系统会自动生成一个约束名。
CLUSTERED | NONCLUSTERED
指定索引类别,CLUSTERED 为缺省值。其具体信息请参见下一章。
column_name
指定组成主关键字的列名。主关键字最多由16 个列组成。
例7-3: 创建一个产品信息表,以产品编号和名称为主关键字
create table procts (
p_id char(8) not null,
p_name char(10) not null ,
price money default 0.01 ,
quantity smallint null ,
constraint pk_p_id primary key (p_id, p_name)
) on [primary]
2 外关键字约束
外关键字约束定义了表之间的关系。当一个表中的一个列或多个列的组合和其它表中的主关键字定义相同时,就可以将这些列或列的组合定义为外关键字,并设定它适合哪个表中哪些列相关联。这样,当在定义主关键字约束的表中更新列值,时其它表中有与之相关联的外关键字约束的表中的外关键字列也将被相应地做相同的更新。外关键字约束的作用还体现在,当向含有外关键字的表插入数据时,如果与之相关联的表的列中无与插入的外关键字列值相同的值时,系统会拒绝插入数据。与主关键字相同,不能使用一个定义为 TEXT 或IMAGE 数据类型的列创建外关键字。外关键字最多由16 个列组成。
定义外关键字约束的语法如下:
CONSTRAINT constraint_name
FOREIGN KEY (column_name1[, column_name2,…,column_name16])
REFERENCES ref_table [ (ref_column1[,ref_column2,…, ref_column16] )]
[ ON DELETE { CASCADE | NO ACTION } ]
[ ON UPDATE { CASCADE | NO ACTION } ] ]
[ NOT FOR REPLICATION ]
各参数说明如下:
REFERENCES
指定要建立关联的表的信息。
ref_table
指定要建立关联的表的名称。
ref_column
指定要建立关联的表中的相关列的名称。
ON DELETE {CASCADE | NO ACTION}
指定在删除表中数据时,对关联表所做的相关操作。在子表中有数据行与父表中的对应数据行相关联的情况下,如果指定了值CASCADE,则在删除父表数据行时会将子表中对应的数据行删除;如果指定的是NO ACTION,则SQL Server 会产生一个错误,并将父表中的删除操作回滚。NO ACTION 是缺省值。
ON UPDATE {CASCADE | NO ACTION}
指定在更新表中数据时,对关联表所做的相关操作。在子表中有数据行与父表中的对应数据行相关联的情况下,如果指定了值CASCADE,则在更新父表数据行时会将子表中对应的数据行更新;如果指定的是NO ACTION,则SQL Server 会产生一个错误,并将父表中的更新操作回滚。NO ACTION 是缺省值。
NOT FOR REPLICATION
指定列的外关键字约束在把从其它表中复制的数据插入到表中时不发生作用。
例7-4:创建一个订货表,与前面创建的产品表相关联
create table orders(
order_id char(8),
p_id char(8),
p_name char(10) ,
constraint pk_order_id primary key (order_id) ,
foreign key(p_id, p_name) references procts(p_id, p_name)
) on [primary]
注意:临时表不能指定外关键字约束。
惟一性约束
惟一性约束指定一个或多个列的组合的值具有惟一性,以防止在列中输入重复的值。惟一性约束指定的列可以有NULL 属性。由于主关键字值是具有惟一性的,因此主关键字列不能再设定惟一性约束。惟一性约束最多由16 个列组成。
定义惟一性约束的语法如下:
CONSTRAINT constraint_name
UNIQUE [CLUSTERED | NONCLUSTERED]
(column_name1[, column_name2,…,column_name16])
例7-5:定义一个员工信息表,其中员工的身份证号具有惟一性。
create table employees (
emp_id char(8),
emp_name char(10) ,
emp_cardid char(18),
constraint pk_emp_id primary key (emp_id),
constraint uk_emp_cardid unique (emp_cardid)
) on [primary]
7.2.4 检查约束
检查约束对输入列或整个表中的值设置检查条件,以限制输入值,保证数据库的数据完整性。可以对每个列设置符合检查。
定义检查约束的语法如下:
CONSTRAINT constraint_name
CHECK [NOT FOR REPLICATION]
(logical_expression)
各参数说明如下:
NOT FOR REPLICATION
指定检查约束在把从其它表中复制的数据插入到表中时不发生作用。
logical_expression
指定逻辑条件表达式返回值为TRUE 或FALSE。
例7-6: 创建一个订货表其中定货量必须不小于10。
create table orders(
order_id char(8),
p_id char(8),
p_name char(10) ,
quantity smallint,
constraint pk_order_id primary key (order_id),
constraint chk_quantity check (quantity>=10) ,
) on [primary]
注意:对计算列不能作除检查约束外的任何约束。
7.2.5 缺省约束
缺省约束通过定义列的缺省值或使用数据库的缺省值对象绑定表的列,来指定列的缺省值。SQL Server 推荐使用缺省约束,而不使用定义缺省值的方式来指定列的缺省值。有关绑定缺省约束的方法请参见“数据完整性”章节。
定义缺省约束的语法如下:
CONSTRAINT constraint_name
DEFAULT constant_expression [FOR column_name]
例7-7:
constraint de_order_quantity default 100 for order_quantity
注意:不能在创建表时定义缺省约束,只能向已经创建好的表中添加缺省约束。
7.2.6 列约束和表约束
对于数据库来说,约束又分为列约束(Column Constraint)和表约束(Table Constraint)。
列约束作为列定义的一部分只作用于此列本身。表约束作为表定义的一部分,可以作用于
多个列。
下面举例说明列约束与表约束的区别。
例7-8:
create table procts (
p_id char(8) ,
p_name char(10) ,
price money default 0.01 ,
quantity smallint check (quantity>=10) , /* 列约束 */
constraint pk_p_id primary key (p_id, p_name) /* 表约束 */
7. 数据库在表级定义非空约束怎么弄
not null约束只能在列级上定义
所以这个要这样写
CREATE TABLE STUDENT
(
NAME VARCHAR(20),
NUMBER VARCHAR(10),
SCORE INT NOT NULL,
MAJOR VARCHAR(20),
CONSTRAINT NAME_CT CHECK(NAME IN('SONGSHICHAO','WANGJIAYING','YANGSHICHAO')),
CONSTRAINT NUMBER_CT PRIMARY KEY (NUMBER),
CONSTRAINT MAJOR_CT CHECK(MAJOR IN('SOFTWARE','ENGLISH','JAPAN'))
)