一、原题
二、题目翻译
下面哪个CREATE TABLE语句是有效的?
三、题目解析
四、测试
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
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
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选项正确。
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
本文详细解析了SQL中创建表语句的有效性,并通过实际操作验证了正确性。主要内容包括:理解不同选项的使用场景,区分主键与唯一约束的区别,了解日期字段的正确配置,以及默认值的应用。通过实例演示了有效创建表语句的正确格式,并提供了SQL语句创建表的实际错误案例,帮助读者深入理解SQL语法。
5544

被折叠的 条评论
为什么被折叠?



