hara
Oracle Quiz4 본문
Oracle을 이용한 sql전체적인 문제(pl-sql포함)
[1~2지문]
CREATE __(1)__ VIEW view1
AS
SELECT info_no, info_date
FROM order_info
WHERE info_date < SYSDATE
WITH CHECK OPTION
1.이름이 'view1'인 뷰의 구조를 변경하기 위한 (1)을 완성하시오.
or replace
2.'view1'이 만들어진 상태에서 다음중 오류발생하는 SQL문을 고르시오. (1),(2),(3)
1)INSERT INTO view1 VALUES (999, SYSDATE+1);
2)INSERT INTO view1(info_no) VALUES (999);
3)UPDATE view1 SET info_date = SYSDATE+1;
4)UPDATE view1 SET info_no = 999;
3.시퀀스의 NEXTVAL와CURRVAL이 사용되지 못하는 곳을 적으시오.
-view의 select 절
-distinct 키워드가 있는 select문
-group by, having, order by절이 있는 select문
-select,delete,update의 서브쿼리
-create talbe, alter table 명령의 default값
4.인덱스를 만들면 안되는 경우에 대해 적으시오.
-테이블에 행의 수가 적을 때
-where문에 해달 컬림이 자주 사용되지 않을때
-검색 결과가 전체 데이터의 10%~15% 이상일때
-테이블에 DML 작업이 많은 경우 즉, 입력 수정 삭제 등이 자주 일어날때
5.SQL과 PLSQL의 차이점을 설명하시오.
plsql은 sql에 확장된 것이며,
변수 선언, 비교처리, 반복처리를 할 수 있습니다.
6.procedure와 function의 차이점을 설명하시오.
procedure은 반환값이 없는 반면 function은 반환값이 있습니다.
7.패키지의 용도를 설명하시오.
관련 있는 프로시저를 보다 효율적으로 관리하기 위해 사용합니다.
8.다음 구문이 정상실행되도록 PLSQL구문을 완성하시오.
exec my.a; -->'a입니다'가 출력됨
exec my.b('hello'); -->'HELLO'가 출력됨
exec my.b('bonjour');-->'BONJOUR'가 출력됨
var result varchar2(10);
exec :result = my.c(94); --> 인자값이 '90'점이상이면 A를 반환
print result -->'A'가 출력 '80'점이상이면 B를 반환
'70'점이상이면 C를 반환
exec :result = my.c(80); '60'점이상이면 D
print result -->'B'가 출력 60미만이면 F를 반환
exec :result = my.c(71);
print result -->'C'가 출력
-------------------------------------
set serveroutput on
create or replace package my
is
procedure a;
procedure b(ch varchar2);
function c(num number) return varchar2;
end;
/
create or replace package body my
is
procedure a
is
begin
dbms_output.put_line('a입니다');
end;
procedure b(ch varchar2)
is
begin
dbms_output.put_line(ch);
end;
function c(num number)
return varchar2
is
begin
if (num>=90) then return 'A';
elsif (num>=80) then return 'B';
elsif (num>=70) then return 'C';
elsif (num >=60) then return 'D';
else return 'F';
end if;
end;
end;
/
-----------------------------------
9. 고객(Customer)정보가 삭제되면 포인트(points)정보도 삭제되도록 points_del_trig를 완성하시오
--(old.id)주의하기
create or replace trigger points_del_trig
after delete on customer
for each row
begin
delete from points where points.id=(:old.id);
end;
/
'공부 > DataBase' 카테고리의 다른 글
Oracle 포트번호바꾸기 (0) | 2017.04.16 |
---|---|
Oracle Quiz5 (1) | 2017.02.22 |
Oracle Quiz3 (0) | 2017.02.22 |
Oracle Quiz2 (0) | 2017.02.22 |
Oracle Quiz1 (0) | 2017.02.21 |