OCP-1Z0-051 补充题库 第36题 约束

一、原题
Which CREATE TABLE statement is valid?
A.
CREATE TABLE ord_details
(ord_no NUMBER(2) PRIMARY KEY,
item_no NUMBER(3) PRIMARY KEY,
ord_date DATE NOT NULL);
B.
CREATE TABLE ord_details
(ord_no NUMBER(2) UNIQUE, NOT NULL,
item_no NUMBER(3),
ord_date DATE DEFAULT SYSDATE NOT NULL);
C.
CREATE TABLE ord_details
(ord_no NUMBER(2) ,
item_no NUMBER(3),
ord_date DATE DEFAULT NOT NULL,
CONSTRAINT ord_uq UNIQUE (ord_no),
CONSTRAINT ord_pk PRIMARY KEY (ord_no));
D.
CREATE TABLE ord_details
(ord_no NUMBER(2),
item_no NUMBER(3),
ord_date DATE DEFAULT SYSDATE NOT NULL,
CONSTRAINT ord_pk PRIMARY KEY (ord_no, item_no));


答案:
D

二、题目翻译

下面哪个CREATE TABLE语句是有效的?

三、题目解析
A选项不正确,一张表,只能有一个主键,不能有多个主键。
B选项不正确,ord_no列不正确,如果是有多个约束,直接写就行了,不用在中间加逗号。
C选项不正确,ord_date列,default是默认值,要填一个确定的值,不能是not null,这个是约束;另外ord_no已经是主键了,主键就有唯一约束,再加一个唯一约束,多余。
D选项正确。

四、测试


SQL> create table t(id int unique,not null);
create table t(id int unique,not null)
                             *
ERROR at line 1:
ORA-00904: : invalid identifier

SQL> create table t(id int unique not null);

Table created.

SQL> CREATE TABLE ord_details
  2  (ord_no NUMBER(2) ,
  3  item_no NUMBER(3),
  4  ord_date DATE DEFAULT NOT NULL,
  5  CONSTRAINT ord_uq UNIQUE (ord_no),
  6  CONSTRAINT ord_pk PRIMARY KEY (ord_no));

ord_date DATE DEFAULT NOT NULL,
                      *
ERROR at line 4:
ORA-00936: missing expression

猜你喜欢

转载自blog.csdn.net/hollo_hhy/article/details/38545843