定义表间参照关系的步骤是先定义主表主键(或唯一键),再定义从表外键。
语法格式:
CREATE TABLE table_name ( column_name datatype [ CONSTRAINT constraint_name ] [ FOREIGN KEY ][ ( column [ ,...n ] )] REFERENCES referenced_table_name [ ( ref_column [ ,...n ] ) ] [ ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ] [ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ] [ NOT FOR REPLICATION ] )说明:
例如,创建stu表,其中stno列作为外键,与已建立的以stno列作为主键student表创建表间参照关系:
USE stsc CREATE TABLE stu ( stno char(4)NOT NULL REFERENCES student(stno), stname char(8) NOT NULL, stbirthday date NULL )
语法格式:
ALTER TABLE table_name ADD [ CONSTRAINT constraint_name] [ FOREIGN KEY ][ ( column [ ,...n ] )] REFERENCES referenced_table_name [ ( ref_column [ ,...n ] ) ] [ ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ] [ ON UPDATE { NO ACTION例如:修改scst数据库中score表的定义,将它的“课程号”列定义为外键,假设course表的“课程号”列已定义为主键。
ALTER TABLE score ADD CONSTRAINT FK_score_course FOREIGN KEY(cno) REFERENCES course(cno)
语法格式:
ALTER TABLE table_name DROP CONSTRAINT constraint_name [,…n]例如:删除以上对score课程号列定义的FK_score_course外键约束。
ALTER TABLE score DROP CONSTRAINT FK_score_course------------------------------提 示 --------------------------
提醒我:
要多去练手,不要在这儿说这么多, 不然,一切都是瞎扯。