10、SQL基础整理(约束2)

约束

除主键约束、外键约束外

唯一约束(主键列、索引列的候选索引)

 

设计---右键---索引/键---需要修改的列----是唯一的----忽略重复键

代码方式:

cid  varchar (20)  unique

联合主键

所谓主键就是可以唯一确定该行数据,由此可以知道,当一个字段不能决定该行的值时,就要考虑采用多个字段作为主键。比如,对于学校来说,班号可以决定班级,但是决定不了班级里的某个人,表示班级里的某个人就需要用
班号+该学生在该班内的编号(当然也可以用唯一的学号来决定,这里只是举个例子)
create table WIZ_META
(
   META_NAME              varchar(50), ---不写null或not null就默认null,如果是主键会默认not null 
   META_KEY               varchar(50),
   META_VALUE             varchar(30),
   DT_MODIFIED            char(19),
   primary key (META_NAME, META_KEY)   ---这个就是联合主键,两个字段都为主键
)

check约束

check约束——表达式——写上需要约束的范围(一个值不能同时给定两个范围)

查看表代码:

 

右键---编写表脚本为---CREATE---新查询编辑器窗口

如:

USE [newData]

GO

 

/****** Object:  Table [dbo].[sstable]    Script Date: 11/04/2014 16:18:50 ******/

SET ANSI_NULLS ON

GO

 

SET QUOTED_IDENTIFIER ON

GO

 

SET ANSI_PADDING ON

GO

 

CREATE TABLE [dbo].[sstable](

    [code] [int] NOT NULL,

    [name] [varchar](20) NULL,

    [sex] [varchar](10) NULL,

    [age] [int] NULL,

    [cid] [varchar](20) NULL,

PRIMARY KEY CLUSTERED

(

    [code] ASC

)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]

) ON [PRIMARY]

 

GO

 

SET ANSI_PADDING OFF

GO

 

ALTER TABLE [dbo].[sstable]  WITH CHECK ADD  CONSTRAINT [CK_sstable] CHECK  (((0)<[age] AND [age]<(150)))

GO

 

ALTER TABLE [dbo].[sstable] CHECK CONSTRAINT [CK_sstable]

GO

 

原文地址:https://www.cnblogs.com/wleaves/p/4165033.html