
use SM
go
1
//创建SC表
if exists(select from sysobjects where name='sc') //判断数据中是否有该表,若有先删除再重建
drop table sc
create table sc
(
StudentNo varchar(20) not null,
CourseNo varchar(20) not null,
StudentResult int not null
)
go
//添加约束
2
alter table Student add constraint PK_stuno primary key(StudentNo)
3
alter table Student add constraint CK_sex check (sex='男' or sex='女')
4
alter table Course add constraint PK_courseno primary key(CourseNo)
5
alter table Course add constraint UQ_coursename unique (CourseName)
6
alter table sc add constraint FK_studentno foreign key(StudentNo) references Student(StudentNo)
7
alter table sc add constraint FK_courseno foreign key(CourseNo) references Course(CourseNo)
8
alter table sc add constraint PK_stu primary key(StudentNo,CourseNo)
表的两种相关约束是:主键和外键。
1、主键约束(PRIMARY KEY):在一个表中能唯一的标识一行。主键可以限定在多个列上;唯一键约束(UNIQUE key):在一个表中能唯一的标识一行,唯一键也可以限定在多个列上。
主键和唯一键的区别:一个表中最多只能有一个主键。可以多个唯一键;主键所限定的列不能为null,唯一键所限定的列可以为null
2、外键约束(FOREIGN key): 引用表,有外键约束的列所在的表。被引用表,外键所引用的列。被引用的列只能是主键或者唯一键。非空约束(NOT null):表示该列上的数据不能有null值。检查性约束(check):表示该列上的数据必须满足某一个条件表达式。
表约束(table constraint)是2018年全国科学技术名词审定委员会公布的计算机科学技术名词,出自《计算机科学技术名词 》第三版。约束作用:用来保持数据的完整性,防止无效数据进入到数据库中。对表的属性值及其不同属性之间的依赖关系的限制规定。
数据库主键的意思是指一个列或者是多列的组合,它的值能唯一地标识表中的每一行,它的作用是可强制表的实体完整性。主键用于其他表的外键关联,以及本记录的修改与删除。在创建以及更改表的时候可以通过定义 PRIMARY KEY 约束来进行主键的创建。
扩展资料:
数据库主键的作用如下:
1、可以保证实体的完整性。
2、加快数据库的 *** 作速度。
3、在表中添加新记录时,DBMS会自动检查新记录的主键值。
4、DBMS自动按主键值的顺序显示表中的记录。
参考资料:
sqlserver
CREATE TABLE 自己名字表
(
学号 int NOT NULL PRIMARY KEY,
姓名 varchar(50) NOT NULL,
班级Id int FOREIGN KEY REFERENCES 班级表(Id)
)
主键约束
SELECT
tabname AS [表名],
idxname AS [主键名称],
colname AS [主键列名]
FROM
sysindexes idx
JOIN sysindex_columns idxCol
ON (idxobject_id = idxColobject_id
AND idxindex_id = idxColindex_id
AND idxis_primary_key = 1)
JOIN systables tab
ON (idxobject_id = tabobject_id)
JOIN syscolumns col
ON (idxobject_id = colobject_id
AND idxColcolumn_id = colcolumn_id);
唯一约束
SELECT
tabname AS [表名],
idxname AS [约束名称],
colname AS [约束列名]
FROM
sysindexes idx
JOIN sysindex_columns idxCol
ON (idxobject_id = idxColobject_id
AND idxindex_id = idxColindex_id
AND idxis_unique_constraint = 1)
JOIN systables tab
ON (idxobject_id = tabobject_id)
JOIN syscolumns col
ON (idxobject_id = colobject_id
AND idxColcolumn_id = colcolumn_id);
外键约束
select
oSubname AS [子表名称],
fkname AS [外键名称],
SubColname AS [子表列名],
oMainname AS [主表名称],
MainColname AS [主表列名]
from
sysforeign_keys fk
JOIN sysall_objects oSub
ON (fkparent_object_id = oSubobject_id)
JOIN sysall_objects oMain
ON (fkreferenced_object_id = oMainobject_id)
JOIN sysforeign_key_columns fkCols
ON (fkobject_id = fkColsconstraint_object_id)
JOIN syscolumns SubCol
ON (oSubobject_id = SubColobject_id
AND fkColsparent_column_id = SubColcolumn_id)
JOIN syscolumns MainCol
ON (oMainobject_id = MainColobject_id
AND fkColsreferenced_column_id = MainColcolumn_id)
Check约束
SELECT
tabname AS [表名],
chkname AS [Check约束名],
colname AS [列名],
chkdefinition
FROM
syscheck_constraints chk
JOIN systables tab
ON (chkparent_object_id = tabobject_id)
JOIN syscolumns col
ON (chkparent_object_id = colobject_id
AND chkparent_column_id = colcolumn_id)
以上就是关于SQL Server创建 学号 性别 课程编号 check约束 主键约束 UNIQUE约束全部的内容,包括:SQL Server创建 学号 性别 课程编号 check约束 主键约束 UNIQUE约束、表的两种相关约束、什么是数据库里面的主键等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)