实验要求:
1、 tb_dept1 表结构 字段名称 数据类型 备注 id NUMBER(11) 部门编号 主键 name VARCHAR2(22) 部门名称 location VARCHAR2(50) 部门位置 定义数据表tb_emp5,让它的键deptId作为外键关联到tb_dept1的主键id 表tb_emp5表结构 字段名称 数据类型 备注 id NUMBER(11) 员工编号 name VARCHAR2(25) 员工名称 deptId NUMBER(11) 所在部门编号 salary NUMBER(9,2) 工资 2、将tb_emp5表上的字段name添加唯一性约束。 3、定义数据表tb_emp7,指定员工的部门编号默认为1111,SQL语句如下: 表tb_emp7表结构 字段名称 数据类型 备注 id NUMBER(11) 员工编号 name VARCHAR2(25) 员工名称 deptId NUMBER(11) 所在部门编号 salary NUMBER(9,2) 工资 4、定义数据表tb_emp8,指定员工的性别只能输入“男”或者“女”,SQL语句如下: 表tb_emp8结构 id number(11) 员工编号 name varchar2(25)员工名称 gender varchar2(2) 性别 age varchar2(2)年龄 5、将tb_emp8表上的字段age添加检查约束,规定年龄输入值在15~25之间。
6. 通过CREATE TABLE语句实现完整性约束的定义 具体步骤: (1)建立一个部门表DEPT,其中包括的列及约束如下: Deptno表示部门号,要求取值为1000到9999四位整数,并作为该表的主码; Dname表示部门名,要求部门名唯一; Dloc表示部门的地点,类型为VARCHAR2,宽度为20。 (2)建立一个职工表EMP,其中包括的列及约束如下: Empno表示雇员号,要求取值为100000到999999六位整数,并作为该表的主码; Ename表示雇员名,要求不能取空值,不要求取值唯一。 Sal表示实发工资,Deduct表示扣除项,要求应发工资不得超过5000元。应发工资为实发工资和扣除项之和,这两列的数据类型为NUMBER(7,2)。 Deptno表示部门号,它要参照DEPT表中的Deptno列的取值。 (3)在上述两个表中输入一些数据。 (1000,数学系,理工3号楼) (2000,物理系,理工2号楼) (3000,化学系,理工1号楼) 再在DEPT表中输入下面记录,看会出现什么结果: (999,计算机,理工3号楼) (3000,工商管理系,经法楼) 7、创建了用户user01,密码为mypass创建用户user02,密码为user02 8、修改user01的密码为123456。 9、将create session,select any table,create table和create view这4个系统权限授予user01用户。 10、user01用户想将create session,select any table,create table和create view这4各系统权限授予user2,是否可以? 11、收回user01用户的create view系统权限。 12、使用GRANT和REVOKE实现安全性控制 (1)把对表SC的INSERT权限授予用户U5,并允许他将此权限再授予其他用户。 (2)把查询Student表和修改学生学号的权限授给用户U4。 (3)把用户U4修改学生学号的权限收回。
|
代码如下:
1.
create table tb_dept1 ( id number(11), name varchar2(22), location varchar2(50), primary key (id) );
create table tb_emp5 ( id number(11), name varchar2(25), deptId number(11), salary number(9,2), foreign key (deptId)references tb_dept1(id) );
2.
alter table tb_emp5 add constraint c1 unique(name);
3.
create table tb_emp7 ( id number(11), name varchar2(25), deptId number(11) constraint c2 check (deptId=1111), salary number(9,2) );
4.
create table tb_emp8 ( id number(11), name varchar2(25), gender varchar2(2) constraint c3 check(gender in(‘男’,’女’)), age varchar2(2) );
5.
alter table tb_emp8 add constraint c4 check(age between 15 and 25);
6. (1)
create table DEPT ( Deptno number(10) constraint c5 check(Deptno between 1000 and 9999), Dname varchar2(25) unique, Dloc varchar2(20), constraint DEPTKey primary key(Deptno) );
(2)
create table EMP ( Empno number(11) constraint c6 check(Empno between 100000 and 999999), Ename varchar2(25) not null, Sal number(7,2), Deduct number(7,2), constraint c7 check(Sal+Deduct<=5000), Deptno number(10) references DEPT(Deptno), constraint EMPKey primary key(Empno) );
(3)
insert into DEPT values(1000,’数学系’,’理工3号楼’); insert into DEPT values(2000,’物理系’,’理工2号楼’); insert into DEPT values(3000,’化学系’,’理工1号楼’);
insert into DEPT values(999,’计算机’,’理工3号楼’); insert into DEPT values(3000,’工商管理系’,’经法楼’);
7.
create user user01 identified by mypass; create user user02 identified by user02;
8.
alter user user01 identified by 123456;
9.
grant create session,select any table,create table,create view to user01 with admin option;
10.
可以
11.
revoke create view from user01;
12.
grant insert on sc to user02 with grant option;
grant select,update(sno) on student to user01;
revoke update on student from user01;
|