SQL外键约束设置与使用指南:T_SQL语句全解析
如何使用T_SQL语句设置外键约束
ALTERTABLEstrcouADDCONSTRAINTfk_strcou_studentnumberFOREIGNKEY(学号)REFERENCESstudent(学号)ALTERTABLEStuCouADDCONSTRAINTfk_StuCou_coursenumberFOREIGNKEY(课程号)REFERENCESDepartment(number)course)ALTERTABLECourseADDCONSTRAINTfk_Course_coursenumberFOREIGNKEY(课程编号)REFERENCESDepartment(课程编号)ALTERTABLEclassADDCONSTRAINTfk_Class_departmentnumberFOREIGNKEY(departmentnumber)REFERENCESDepartment(departmentnumber)ALTERTABLEstudentADDCONSTRAINTfk_student_classnumberFOREIGNKEY(类号)REFERENCESclass(类号)sql用命令创建主键与外键。
SQL中创建主键和外键约束的方法:--创建表时可以对字段添加约束:createtableStudent(StudentNointPRIMARYKEYIDENTITY(1,1),--添加主键约束和identity的列属性(均构成实体)integrity)StudentNamenvarchar(15)notnull,--添加非空约束,没有“notnull”默认为:可以beemptyStudentSchoolText(20)FOREIGNKEYREFERENCESSchoolTable(SchoolName),--添加外键约束,格式:FOREIGNKEYREFERENCES关联表名(字段名)StudentAgeintDEFAULT((0)),--添加默认值约束StudentSexnvarchar(2)CHECK(StudentSex=N'male'orStudentSex=N'female')--添加检查约束,格式:check(条件表达式))--如果建表后添加约束,格式为:--主键:变量表名addconstraintPK_fieldname--“PK”是主键的缩写,fieldname是要创建的字段名主键,'PK_wordSegmentName'是主键约束的名称(fieldname)——fieldname与以上--唯一约束:变量表名addconstraintUQ_unique字段名(字段名)--外键约束:变量表名addconstraintFK_name--"FK"外键外键(字段名)的缩写指关联表名(关联字段)name)-注意变量表引用'的表名称相关'和'相关字段名'AaddconstraintFK_BFforeignkey(ticket_no)引用表B(ticket_no)变量AaddconstraintFK_CForeignkey(person_no)引用表C(person_no)结果表变量addconstraintFK_StudentNoforeignkey(StudentNo)referencesStudent(StudentNo)学生降级表DECADETACADE隐藏,记分板所有学生成绩将被删除。--检查约束:变量表名addconstraintCK_检查字段名(条件表达式)--条件表达式中的条件与关系运算符挂钩--默认值约束:变量表名addconstraintDF_字段名default'默认值'为字段名--'默认值'是您想要默认约束的值:变量表名dropconstraint约束名-约束名是你之前创建的约束的名称,如:字段PK_-注意:如果建表时就创建了约束,则不用命令删除-只能参考资料可以可以在“企业管理器”中找到:http://www.studyofnet.com/news/92.html希望以上回答可以帮助到您。
sql怎么设置外键(sql怎么设置外键约束)
sqlserver中建立外键约束有3种方式:在enterprisemanager、tables、designtable中,设置表属性,可以建立约束,referencekey在enterprisemanager、diagrams、newdiagrams中,建立两个表之间的关系;直接使用transactsql语句。
1.所有这三种方法都必须首先创建一个数据表。
1)创建表author:
createtable[dbo].[author](
[id][h3int]notnull,[authorname][char](10)null,[address][char](480)null,[introction][ntext]null
)
2)创建表mybbs:
reatetable[dbo].[mybbs](
[id][h3int]entityid(1,1)notnull,[authorid][h3int]notnull,[标题][char](40)null,[创建日期][日期时间]null,[摘要][char](480)空,[内容][ntext]空
)
2.将mybbs表中的authorid设置为外键,引用author表的id字段,直接使用transactsql语句。
流程如下:
1)添加mybbs表的fk_mybbs_author外键约束(authorid),mybbs表中的authorid受author表中的主键id约束:
开始事务
altertabledbo.mybbsaddconstraintfk_mybbs_author
foreignkey(authorid)
referencedbo.author([id])onupdatecascadeondeletecascade
2)删除外键约束fk_mybbs_author:
--altertabledbo.mybbsdropconstraintfk_mybbs_author
--rollback
committransaction
updatecascade和onupdatecascade两个选项上面的ondeletecascade表示以后author表的id字段有删除或者更新操作时,mybbs表中的id也会被删除或者级联更新。
如果未选中,则无法更新或删除author表中与mybbs表关联的ID。
SQL中主键和外键的作用:
1.插入非空值时,如果该值在主键表中不存在,则无法插入。
2.在更新过程中,不能将其更改为主键表中不存在的值。
3.删除主键表记录时,可以选择外键记录一起级联删除,也可以在创建外键时拒绝删除。
4.更新主键记录时,还有级联更新和拒绝执行的选项。
简而言之,SQL的主键和外键起到了约束的作用。