设有职工关系Emp(Eno,Ename,Esex,EDno)和部门关系Dept(

资格题库2022-08-02  8

问题 设有职工关系Emp(Eno,Ename,Esex,EDno)和部门关系Dept(Dno,Dname,Daddr),创建这两个关系的SQL语句如下:CREATE TABLE Emp(Eno CHAR(4),Ename CHAR(8),Esex CHAR(1)CHECK(Esex IN(‘M’,‘F’)),EDno CHAR(4)REFERENCES Dept(Dno),PRIMARY KEY(Eno));CREATE TABLE Dept(Dno CHAR(4)NOT NULL UNIQUE,Dname CHAR(20),Daddr CHAR(30));直接运行该语句,DBMS会报错,原因是:(  )。若经过修改,上述两个表创建完毕之后(尚无数据),则下述语句中能被执行的是(  )。问题1选项A.创建表Dept时没有指定主码B.创建表Dept时没有指定外码C.创建表Emp时,被参照表Dept尚未创建D.表Emp的外码EDno与被参照表Dept的主码Dno不同名问题2选项A.INSERT INTO Emp VALUES(‘e001’,‘王’,‘M’,‘d1’);B.INSERT INTO Emp VALUES(NULL,‘王’,‘M’,‘d1’);C.INSERT INTO Emp VALUES(‘e001’,‘王’,‘M’,NULL);D.INSERT INTO Emp VALUES(‘e001’,‘王’,‘X’,‘d1’);

选项

答案 CC

解析 本题考查对完整性约束的掌握。本题中,职工关系Emp为参照关系,其属性EDno参照部门关系Dept中的Dno,在创建Emp关系时,系统会根据参照约束查找被参照关系,因此,被参照关系就先于参照关系而建立。约束一旦建立,更新数据必须满足约束条件才可正确执行,表Emp有主码约束和参照约束,故Eno不能取空值,EDno列因为被参照关系Dept尚无记录,故只能取空值。
转载请注明原文地址:https://www.tihaiku.com/congyezige/2419981.html

最新回复(0)