sql创建表约束,sql创建表约束取值范围

http://www.itjxue.com  2023-01-21 02:32  来源:未知  点击次数: 

SQL中怎样在创建表的同时创建约束

create?table?A?

(?

Id?int?primary?key?identity,

names?nvarhcar(50),

foreign?key(Id)?references?B(Id)?--b表的id作为a表的外键

)?

create?table?B

(

Id?int?primary?key?identity,

names

)

数据库用SQL语言建表,什么是完整性约束?请问如何写出各种完整性约束?

一、数据的完整性

实体完整性

实体完整性简单的说,就是将表中的每一行看作一个实体。实体完整性要求表的标示符列或主键的完整性。可以通过建立唯一索引、PRIMARY KEY约束、UNIQUE约束,以及列的IDENTITY属性来实施实体完整性。

域完整性

域完整性是指给定列的输入有效性。要求表中指定列的数据具有正确的数据类型、格式和有效的数据范围。强制域有效性的方法有:限制类型(通过数据类型)、格式(通过 CHECK 约束和规则)或可能值的范围。域完整性通过 FOREIGN KEY 约束、CHECK 约束、DEFAULT 定义、NOT NULL 定义和规则来实现。

引用完整性

引用完整性又称参照完整性。引用完整性维持被参照表和参照表之间的数据一致性,他通过主键(PRIMARY KEY)约束和外键(FOREIGN KEY)约束来实现。

用户定义完整性

二、约束操作

与表相关的约束

在SQL 2008中,常用有6种约束,分别是NOT NULL,UNIQUE,PRIMARY KEY,FOREIGN KEY,DEFAULT和CHECK.

--添加主键约束(即primary key约束)

alter table goods add constraint pk_gid primary key(gid)

--1.删除主键约束

alter table goods drop pk_gid

--添加唯一约束(即unique约束)

alter table goods add constraint uq_gname unique(gname)

--删除唯一约束:仿1.

--添加缺省约束(即default约束)

alter table goods add constraint def_gtel default 0000-00000000 for gtel

--删除缺省约束:仿1.

--添加检查约束(即check约束)

alter table goods add constraint ck_gprice check(gprice500)

--删除check约束:仿1.

--创建表2

create table g_p

(

wno int identity(1,1) primary key,

gno int

)

--添加外键约束(即foreign key约束)

alter table g_p

add constraint fk_gno

foreign key(gno) references goods(gid)

--删除外键约束:仿1.

--使用newid()

select newid()--生成全球唯一的ID号

create table customer

(

custID uniqueidentifier not null default newid(),

customer char(30) not null

)

insert customer values(newid(),\''\''accp\''\'')--向customer中插入信息

-----------------------------------慢慢研究----

sql 创建表 日期约束

CREATE TABLE 学生基本信息 ( [Sno] INT NOT NULL IDENTITY(10000,1), [Sname] NVARCHAR(20) NOT NULL, [Ssex] NVARCHAR(5) NOT NULL, [Sage] INT NOT NULL, [Sdate] DATETIME NOT NULL, [Sp] NVARCHAR(25) NOT NULL, [Sdept] NVARCHAR(25) NOT NULL, CONSTRAINT xsjbxx_pk_sno PRIMARY KEY([Sno]), CONSTRAINT xsjbxx_ck_sno CHECK([Sno] BETWEEN 10000 AND 99999), CONSTRAINT xsjbxx_ck_sname CHECK(LEN(Sname)20), CONSTRAINT xsjbxx_ck_ssex CHECK([Ssex]='男' OR [Ssex]='女'), CONSTRAINT xsjbxx_ck_Sdate CHECK([Sdate] BETWEEN '2003-5-1' AND GETDATE()) ) 我试过了可以正常运行

SQL中的几种约束的创建与删除

约束的目的就是确保表中的数据的完整性。

常用的约束类型如下:

主键约束:(Primary Key constraint) 要求主键列唯一,并且不允许为空

唯一约束:(Unique Constraint) 要求该列唯一,允许为空,但只能出现一个空值

检查约束:(Check Constraint) 某列取值范围限制、格式限制等。如有关年龄的限制

默认约束:(Default Constraint) 某列的默认值,如我们的男性学员比较多,性别默认为男

外键约束:(Foreign Key Constraint) 用于在两表之间建立关系,需要指定引用主表的哪一列

一、添加约束

在创建表时,我们可以在字段后添加各种约束,但一般不这样混用,推荐将添加约束和建表的语句分开编写。

添加约束的语法如下:

Code:

Alter Table 表名

Add Constraint 约束名 约束类型 具体的约束类型

上述语法标识修改某个表,添加某个约束,其中约束名的命名规则推荐采用"约束类型_约束字段"这样的形式。

Code:

---添加主键约束

Alter Table stuInfo

Add Constraint PK_stuNO primary Key(stuNo)

---添加唯一约束

Alter Table stuInfo

Add Constraint UQ_stuID unique(stuID)

---添加默认约束

Alter Table stuInfo

Add Constraint DF_stuAddress default('地址不详') for stuAddress

---添加检查约束

Alter Table stuInfo

Add Constraint CK_stuAge check(stuAge between 15 and 40)

---添加外键约束

Alter Table stuMarks

Add Constraint FK_stuNo foreign key(stuNo) references stuInfo(stuNo)

二、删除约束

如果错误的添加了约束,则可以删除约束

删除约束的语法如下:

Code:

Alter Table 表名

Drop Constraint 约束名

附加:在创建表的时候同时添加约束的写法:

Code:

use stuDB

go

if exists(select * from Sysobjects where name = 'stuInfo')

drop table stuInfo

go

create table stuInfo

(

stuName varchar(20) not null primary key(stuName)

,stuID int not null unique(stuID)

,stuAddress varchar(20) not null default('地址不详')

,stuAge int not null check(stuAge between 15 and 40)

)

SQL数据库创建表表 'dbo.Student' 的表级别约束未指定列列表怎么办?

如果您要在 SQL 数据库中创建一个名为 "dbo.Student" 的表,并且想要指定一个表级别约束,但没有指定列列表,您可以使用下面的 SQL 语句来完成这个操作:

CREATE TABLE dbo.Student (

-- 指定列的名称、数据类型和约束

);

-- 添加表级别的约束

ALTER TABLE dbo.Student

ADD CONSTRAINT constraint_name constraint_type (column_list);

其中,constraint_name 是您给表级别约束命名的名称,constraint_type 是约束的类型(例如 PRIMARY KEY 或 FOREIGN KEY),column_list 是您想要指定约束的列的列表。

例如,如果您想要为 "dbo.Student" 表添加一个名为 "PK_Student_ID" 的主键约束,指定 "ID" 列作为主键列,可以使用下面的 SQL 语句来完成这个操作:

CREATE TABLE dbo.Student (

ID INT NOT NULL,

-- 其他列的定义

);

ALTER TABLE dbo.Student

ADD CONSTRAINT PK_Student_ID PRIMARY KEY (ID);

希望这些信息能够帮助您解决问题。如果您还有其他问题,欢迎随时继续提问。

用sql语句建表和设置约束

create table 选课及成绩表

(课程号 VARCHAR(20) CHECK (课程号 LIKE '[A-Z][A-Z][0-9][0-9][0-9][0-9]),

学号 VARCHAR(20),

constraint pk_pr primary key(课程号, 学号),

constraint fk_学号 foreign key(学号 ) REFERENCES 学生情况表.学号,

constraint fk_课程号 foreign key(课程号 ) REFERENCES 课程档案表.课程号

)

(责任编辑:IT教学网)

更多

推荐测评专题文章