我有关于表创建的问题.我想将"Ono"和"Pno"的属性组合成新表的主键.这些都是外键,每个都来自不同的表.我只使用CONSTRAINT Ono_Pno_PK PRIMARY KEY(Ono,Pno)吗?
到目前为止我用过的东西:
CREATE TABLE ODetails
(
Ono Number Not Null,
Pno Number Not Null,
Qty Number(3) Not Null,
Creation_Date Date Not Null,
Created_By VARCHAR(10) Not Null,
Last_Update_Date Date Not Null,
Last_Updated_By VARCHAR2(10) Not Null,
CONSTRAINT Ono_FK FOREIGN KEY (Ono) REFERENCES Orders (Ono),
CONSTRAINT Pno_FK FOREIGN KEY (Pno) REFERENCES Parts (Pno)
);
Run Code Online (Sandbox Code Playgroud) 我正在尝试展示学生工作的所有不同公司。但是,只应显示雇用四名以上学生的公司。
这是我到目前为止:
SELECT EMPLOYER, COUNT (STUDENT_ID)
FROM STUDENT
GROUP BY STUDENT_ID
HAVING COUNT (STUDENT_ID) >4;
Run Code Online (Sandbox Code Playgroud)
我不断收到此消息:
ERROR at line 1:
ORA-00979: not a GROUP BY expression
Run Code Online (Sandbox Code Playgroud)
我不明白。我之前也试过这个:
SELECT STUDENT.EMPLOYER, COUNT (STUDENT.STUDENT_ID)
FROM STUDENT
GROUP BY STUDENT.STUDENT_ID
HAVING COUNT (STUDENT.STUDENT_ID) >4;
Run Code Online (Sandbox Code Playgroud)
但似乎没有任何效果。任何帮助表示赞赏。如果有帮助,我在 SQL*Plus 上。
需要一些帮助:
创建一个名为 TEMP_STUDENT 的表,其中包含以下列和约束:学生 ID 列 STUD_ID 是主键,学生名字列 FIRST_NAME,学生姓氏列 LAST_NAME,列 ZIP 作为外键Student Database Schema 的 ZIPCODE 表中的 ZIP 列,以及一个非空的 REGISTRATION_DATE 列,并且有一个 CHECK 约束将注册日期限制为 2005 年 8 月 26 日之后的日期。所有约束都必须命名。first_name 和 last_name 列都是必需的。
我懂了:
CREATE TABLE Temp_Student
(STUD_ID NUMBER (8,0),
FIRST_NAME VARCHAR2(25) NOT NULL,
LAST_NAME VARCHAR2(25) NOT NULL,
ZIP VARCHAR2(5),
REGISTRATION_DATE DATE NOT NULL,
CONSTRAINT STUD_ID_PK PRIMARY KEY(STUD_ID),
CONSTRAINT ZIP_FK FOREIGN KEY (ZIP)
REFERENCES ZIPCODE (ZIP),
CONSTRAINT chk_REGISTRATION_DATE CHECK (REGISTRATION_DATE> REGISTRATION_DATE 'TO DATE('26-AUGUST-2005'))
);
Run Code Online (Sandbox Code Playgroud)
对最后一个约束的任何帮助,我不知道我在做什么,将不胜感激。
不断收到此消息:
CONSTRAINT chk_REGISTRATION_DATE CHECK (REGISTRATION_DATE> REGISTRATION_DATE …Run Code Online (Sandbox Code Playgroud)