1、创建员工表ks,字段如下要求
id:数字型,主键,非空
name:字符型,非空
sex:字符型,只能是”M”或”F”
birthday:日期型,默认值为”1995-12-31″
personid:字符型,唯一
address:字符型
remark:字符型
向员工表中插入至少3条记录,以适应不同的约束。
2、创建薪资表salary,字段要求如下:
id:数字型,主键,非空
eid:数字型,外键,关联ks表的id
salary:数字型,取值范围为:5000.00-50000.00
向薪资表salary中插入至少3条记录,以适应不同的约束。
以上要求建表时,创建各种约束。
CREATE TABLE ks
(
idNUMBER(5),
nameNVARCHAR2(50) NOT NULL,
sexNCHAR(1),
birthdayDATE DEFAULT(TO_DATE(‘1995-12-31′,’YYYY-MM-DD’)),
personidNVARCHAR2(20),
addressNVARCHAR2(100),
remarkNVARCHAR2(100),
CONSTRAINT PK_employee_id PRIMARY KEY(id),
CONSTRAINT CK_employee_sex CHECK(sex=’M’ OR sex=’F’),
CONSTRAINT UQ_employee_personid UNIQUE(personid)
);
INSERT INTO ks VALUES(1001,’张三’,’M’,TO_DATE(‘2005-01-15′,’YYYY-MM-DD’),
‘10249012343901’,’地址不祥’,null);
INSERT INTO ks VALUES(1002,’张三2′,’M’,TO_DATE(‘2006-01-15′,’YYYY-MM-DD’),
‘10249012344902’,’地址不祥’,’好淫一个’);
INSERT INTO ks VALUES(1003,’张四’,’M’,TO_DATE(‘2008-01-15′,’YYYY-MM-DD’),
‘10249012354903’,’地址不祥’,’优秀员工’);
CREATE TABLE salary
(/
idNUMBER(5),
eidNUMBER(5),
salaryNUMBER(7,2),
CONSTRAINT PK_salary_id PRIMARY KEY(id),
CONSTRAINT FK_salary_eid FOREIGN KEY(eid) REFERENCES ks (id),
CONSTRAINT CK_salary_salary CHECK(salary BETWEEN 5000.00 AND 50000.00)
);
INSERT INTO salary VALUES(1,1001,5000.00);
INSERT INTO salary VALUES(2,1002,50000.00);
INSERT INTO salary VALUES(3,1003,8000.00);
建立外键 查询 学号为 1001.1002 的学生姓名,工资。
select ks.id ,name,salary
from ks,salary
where ks.id in(1001,1002) and ks.id=salary.eid
— 如何不加后面的 ks.id=salary.eid ,查询出来的就会很多,也就是交叉查询结果。
I