【sql語句】實驗二 檢視
阿新 • • 發佈:2018-12-16
1. 根據EMPLOYEES表中的僱員編號、僱員名字、部門編號建立一個名為EMPLOYEES_VU的檢視。把僱員名字的表頭改為EMPLOYEE。
create view employees_vu
as select employee_id, last_name employee, department_id
from employees;
2. 顯示EMPLOYEES_VU檢視的內容。
select *from employees_vu;
3. 從USER_VIEWS資料字典檢視中選擇檢視的名字和文字。
EMP_DETAILS_VIEW作為你的模式的一部分已被建立。
注意:為了看到一個LONG列的更多內容,可以使用iSQL*Plus中SET LONG n命令,這裡n的值就是你想看到的LONG列的字元的數目。
set long 880;//normal:80
select view_name,text from user_views
where view_name='EMPLOYEES_VU' or view_name='EMP_DETAILS_VIEW';
4. 使用EMPLOYEES_VU檢視,輸入一個查詢顯示所有僱員的名字和部門號。
select employee,department_id from employees_vu;
5. 建立一個名為DEPT50的檢視,其中包含在50部門中所有僱員的僱員號、僱員名和部門編號,標識檢視列為EMPNO, EMPLOYEE和 DEPTNO。不能允許通過檢視將一個僱員再分配到另一個部門。
create view dept50
as select employee_id empno,last_name employee,department_id deptno
from employees
where department_id=50
with check option;
6. 顯示DEPT50檢視的結構和內容
describe dept50;
select *from dept50;
7. 試圖把Matos調派到部門80中去。
//檢視 WITH CHECK OPTION where 子句違規 update dept50 set deptno=80 where employee='Matos';
8.建立名為SALARY_VU的檢視,其中包含所有僱員的名、部門名字、薪水和薪水等級。分別用Employee、Department、 Salary 和 Grade標識各列。(在scott/tiger使用者下做本題,使用emp、dept、salgrade(薪水等級)三張表)
emp(EMPNO, ENAME, JOB, MGR HIREDATE, SAL, COMM, DEPTNO )
dept(DEPTNO, DNAME, LOC )
salgrade(GRADE, LOSAL, HISAL )
grant create view to scott;//scott無權,用system登入授權
create view salary_vu
as select ename employee, dname department,sal salary,grade
from emp,dept,salgrade
where emp.deptno=dept.deptno and emp.sal between salgrade.losal and salgrade.hisal;