大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
亲,知其然之气所以然,请看下面的具体案例噢,这样对你的学习有帮助滴
创新互联公司一直在为企业提供服务,多年的磨炼,使我们在创意设计,营销型网站建设到技术研发拥有了开发经验。我们擅长倾听企业需求,挖掘用户对产品需求服务价值,为企业制作有用的创意设计体验。核心团队拥有超过十载以上行业经验,涵盖创意,策化,开发等专业领域,公司涉及领域有基础互联网服务西部信息机房、重庆App定制开发、手机移动建站、网页设计、网络整合营销。
这是的主键和外键为:
修改的sql语句:
--修改主键的名称PK_myTest为PK_myTest22
alter table myTest drop constraint PK_myTest
alter table myTest add constraint PK_myTest22 primary key(aa)
--修改外键的名称fk_myTest为fk_myTest22
alter table myTest drop constraint fk_myTest
alter table myTest add constraint fk_myTest22 foreign key(bb) references test
修改后的主键和外键:
SQL的主键和外键的作用:
外键取值规则:空值或参照的主键值。
(1)插入非空值时,如果主键表中没有这个值,则不能插入。
(2)更新时,不能改为主键表中没有的值。
(3)删除主键表记录时,你可以在建外键时选定外键记录一起级联删除还是拒绝删除。
(4)更新主键记录时,同样有级联更新和拒绝执行的选择。
简而言之,SQL的主键和外键就是起约束作用。
主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。
外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。
---利用Sql查询指定表的所有外键约束及外键表名与列名
select a.name as 约束名,object_name(b.parent_object_id) as 外键表,d.name as 外键列,object_name(b.referenced_object_id) as 主健表,c.name as 主键列 from sys.foreign_keys A inner join sys.foreign_key_columns B on A.object_id=b.constraint_object_id inner join sys.columns C on B.parent_object_id=C.object_id and B.parent_column_id=C.column_id inner join sys.columns D on B.referenced_object_id=d.object_id and B.referenced_column_id=D.column_id where object_name(B.referenced_object_id)='指定表名'
你这个表设计不符合第三范式。
正常应该是有一个学生表(stu_id,stu_name,age,sex),班级表(class_id,class_name),然后再有一个学生班级表(stu_id,class_id)
学生表中stu_id是关键字;班级表中class_id是关键字;学生班级表中stu_id,class_id组合关键字;
学生班级表中:
stu_id是外键,引用学生表的stu_id
class_id是外键,引用班级表的class_id