상세 컨텐츠

본문 제목

[오라클] 4월 20일 수업 예제

카테고리 없음

by esoesmio 2023. 4. 20. 17:43

본문

 

ㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁ 제약조건 목록 조회

 

ㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁ
eno number primary key,
ename varchar2(20),
job varchar2(10),
mgr number,
sal number(11, 3),
comm number(5, 2),
만드는데 sal3000을 넘는, com100, 1000 사이인 테이블 만들어라ㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁ;

 

 

ㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁT_board_file2 테이블을 만드는데 t_board에서 board_no를 참조키, 포린키로, board_no, board_file_no 둘을 프라이머리
키로 하는 테이블을 만들어람ㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁ
BOARD_NO NUMBER,
BOARD_FILE_NO NUMBER,
BOARD_FILE_NM VARCHAR2(200),
BOARD_FILE_PATH VARCHAR2(2000),
ORIGIN_FILE_NM VARCHAR2(200),;
 
 
ㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁ 그림참조 문제 여기에 cascade 도 넣어본다.;
 

 

 

 

 

select *
from emp_pk1;


참조해올껀 무조건 pk나 uk가 되야함;;

1-2 foreign key
    ;;

dept _ pk1의 dno을 참조하여 emp_pk1의 dno를 fk로 생성

            ;

select *
from DEPT_PK1;
;
insert into DEPT_PK1
values (2, 'd', 'e', 2);

drop table emp_pk1;

create table emp_pk_fk1
(
    eno   number primary key,
    ename varchar2(20),
    job   varchar2(10),
    mgr   number,
    hdate date,
    sal   number(10, 3),
    comm  number(5, 2),
    dno   number
        constraint fk_emp_dno
            references dept_pk1 (dno)
---열을 지정할때만 foreign키를 넣어주고 아니면 빼도 된다.

);
select *
from emp_pk_fk1;

fk에 데이터 추가;
fk는 null(x) 중복데이터 허용, index도 아님

insert into emp_pk_fk1
values (5, '홍길동', '개발', 0, sysdate, 3000, 300, 3);

select *
from emp_pk_fk1;
--dno에는 dept에 있는것만 사ㅛㅇ해야 한다. 참조키니까
insert into emp_pk_fk1
values (2, '홍길동', '설계', 0, sysdate, 3000, 300, 2);

부모테이블에 없는 값은 저장할 수 없다.;

insert into emp_pk_fk1
values (1, '홍길동', '설계', 0, sysdate, 3000, 300, 1);



select A.*, B.dname, b.loc, b.director
from emp_pk_fk1 A
         join dept_pk1 B on a.dno = b.dno;

cascade 옵션이 없을 때 부모테이블의 데이터의 수정이나 삭제가 불가능
    부모테이블의 데이터는 자식테이블에서 사용중이기 때문에 함부로 삭제/
수정을 할 수 없도록 막아놓음
    자식테이블의 데이터를 먼저 삭제하고 부모테이블의 데이터를 삭제나 수정해야함

    점유된 데이터를 자식테이블에서 제거하면 부모테이블에서 수정/
삭제 가능

delete
from dept_pk1
where dno = 1;


update dept_pk1
set dno = 3
where dno = 1;

update EMP_PK_FK1
set dno = 2
where dno = 1;

select *
from emp_pk_fk1;
select *
from DEPT_PK1;


update EMP_PK_FK1
set dno = 3
where dno = 2
  and job = '개발';

update DEPT_PK1
set loc   = '천안',
    dname = '개발3'
where dno = 3;


insert into dept_pk1
values (1, '개발1', '서울', 1);

select *
from DEPT_PK1;

dept_pk1
    (부모)
    dno 2,3은 emp_pk_f1(자식)점유, dno 1은 점유되어 있지 않기 때문에
        dno 2,3은 수정/
삭제 불가능,dno 1은 수정/
삭제가 가능
            dno3의 데이터 점유를 해지(dno 1로 보내고) dno3 데이터 부모테이블에서 삭제

select *
from DEPT_PK1;

delete
from DEPT_PK1
where dno = 2;

select *
from EMP_PK_FK1
;
update emp_pk_fk1
set dno = 1
where dno = 2;

insert into DEPT_PK1
values (2, 'weg', 'weg', 2);
insert into DEPT_PK1
values (3, 'weg', 'weg', 2);

insert into DEPT_PK1
values (4, 'weg', 'weg', 2);

insert into DEPT_PK1
values (5, 'weg', 'weg', 2);


select *
from DEPT_PK1;



select *
from EMP_PK_FK1;

delete
from DEPT_PK1
where DNO = 5;

insert into emp_pk_fk1
values (6, '2', '3', '4', sysdate, '4000', '600', 5);

부모테이블에 있는거 삭제할때는  포린키있는 자식에서 그 삭제하는거 아닌 다른거로 바꾸고 부모에서 지워야됨

캐스캐이드 옵션 추가된 fk생성;
ㅣ;;
create table emp_pk_fk2
(
    eno   number primary key,
    ename varchar2(20),
    job   varchar2(10),
    mgr   number,
    hdate date,
    sal   number(10, 3),
    comm  number(5, 2),
    dno   number,
    constraint fk_emp_dno2 foreign key (dno)
        references dept_pk1 (dno)
            on delete cascade
---열을 지정할때만 foreign키를 넣어주고 아니면 빼도 된다.

);


ㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁ  제약조건 목록 조회
    ;
select *
from ALL_CONSTRAINTS
where owner = 'C##EUNSUK';


데이터저장;

insert into emp_pk_fk2
values (1, '홍길동', '개발', 0, sysdate, 3000, 300, 1);
insert into emp_pk_fk2
values (2, '장길산', '개발', 0, sysdate, 3000, 300, 2);
commit;
select *
from emp_pk_fk2;

delete cascade 옵셔일 때 부모데이터 삭제;

select *
from DEPT_PK1;
delete
from DEPT_PK1
where DNO = 2;

alter table emp_pk_fk1
    drop constraint fk_emp_dno;

캐스케이드는 부모 테이블 정보를 날리면 자식껏도 다 날라간다.;

    자식;
select *
from emp_pk_fk2;
부모;
select *
from DEPT_PK1;


/////////////////////////////
지울수는 있는데 바꿀수는 없음?!?!?!!
 /////////////////////////////
지울수는 있는데 바꿀수는 없음?!?!?!!
/////////////////////////////
지울수는 있는데 바꿀수는 없음?!?!?!!
/////////////////////////////
지울수는 있는데 바꿀수는 없음?!?!?!!
////////////////////////////
지울수는 있는데 바꿀수는 없음?!?!?!!
/////////////////////////////
지울수는 있는데 바꿀수는 없음?!?!?!!
/////////////////////////////
지울수는 있는데 바꿀수는 없음?!?!?!!
/////////////////////////////
지울수는 있는데 바꿀수는 없음?!?!?!!
/////////////////////////////
지울수는 있는데 바꿀수는 없음?!?!?!!

 바꾸지는 못하는거느냐? 캐스케이드가 있근ㄴ데;

update DEPT_PK1
set dno = 99
where dno = 1;ㅇㅇㅇ

commit;

delete
from DEPT_PK1
where DNO = 1;

왜 3이상인것은 안보이는가;
왜 3이상인것은 안보이는가;
왜 3이상인것은 안보이는가;
왜 3이상인것은 안보이는가;

select rownum, A.*
from (select sno, sname, avr from STUDENT order by AVR desc) A
where rownum>3;
마지막 번호를 표출할때 붙는다.;
;



부모테이블에서 삭제되는 데이터를 참조하고 있는 자식테이블의 데이터도 같이 삭제된다.;
다른곳에서 지원하는
update cascade 옵션은 부모테이블의 데이터를 수정할 수 있다.
    부모테이블에서 수정되는 데이터를 참조하고 있는 자식테이블의 데이터도 같이 수정된다.
;

update DEPT_PK1
set dno = 99
where dno = 1;
delete
from DEPT_PK1
where dno = 1;




create table t_user
(

    user_id   varchar2(20) primary key,
    password  varchar2(50),
    join_date date


);
insert into t_user
values ('gogi', '1234', sysdate);
commit;
이 유저 아이디는 하나만 존재할 수 있음;


select *
from t_user;
select *
from T_USER_DETAIL;



create table t_user_detail
(
    user_id    varchar2(20) primary key,
    user_name  varchar2(20),
    user_email varchar2(100),
    user_tel   number(11),
    constraint fk_user_id foreign key (user_id)
        references t_user (user_id)
);

insert into t_user_detail
values ('gogi', null, null, null);
얘도 무조건 하나만 존재할 수 있음
    저것도 하나만 만들수있고 이것도 하나만 만들수있고
    그래서 1:1관계이다.
부모테이블의 pk, uk 컬럼이 자식테이블의 fk uk 가 되야한다.


    1:n 관계
    부모테이블의 데이터 1개로 자식테이블 데이터 여러개를 생성할 수 있는 관계
    dept_pk1과 emp_pk_fk100은 1:n 관계
    dept_pk1의 pk인 dno로 emp_pk_fk100에서는 여러개의 데이터(중복) 을 생성할 수 있기 때문에
    1:n관계


    t_board와 t_board_file을 1:n 관계로 만들어보기;

drop table T_BOARD_file;


select *
from T_BOARD;

create table t_board_file
(
    board_no        number,
    board_file_no   number,
    board_file_nm   varchar2(200),
    board_file_path varchar2(2000),
    origin_file_nm  varchar2(200),
    constraint pk_bf_board_file_no primary key (board_no, board_file_no),
    constraint fk_board_board_no foreign key (board_no)
        references T_BOARD (BOARD_NO)


);

select *
from T_BOARD;

select *
from t_board_file;
insert into t_board_file
values (1, 2, 'gga', 'cdrive', 'finemeae');

alter table T_BOARD
    drop constraint GHAKE;
ALTER TABLE T_BOARD
    ADD CONSTRAINT haha PRIMARY KEY (board_no);
-- insert into

;;;

1-3 unique key
;
create table emp_uk
(
    eno   number
        constraint uk_emp_eno unique,
    ename varchar2(20)

);
데이터 저장;
insert into emp_uk
values (1, '홍길동');
insert into emp_uk
values (null, '장길산');
select *
from emp_uk;

1-4 check
;
    
    ㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁ 
     eno   number primary key,
    ename varchar2(20),
    job   varchar2(10),
    mgr   number,
    sal   number(11, 3),
    comm  number(5, 2),
        만드는데 sal이 3000을 넘는, com이 100, 1000 사이인 테이블 만들어라ㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁ;
create table emp_chk
(
    eno   number primary key,
    ename varchar2(20),
    job   varchar2(10),
    mgr   number,
    sal   number(11, 3),
    comm  number(5, 2),
    constraint chk_emp_sal check (sal >= 3000),
    constraint chk_emp_comm check (comm between 100 and 1000)
);

select *
from emp_chk;

check 조건에 맞지 않는 데이터 저장
;
insert into emp_chk
values (1, null, null, 0, 1000, 900);
--제약조건에 ㅇ맞지 않아서 안들어감
insert into emp_chk
values (1, null, null, 0, 3000, 500);



--1 : N 관계
--부모테이블의 데이터 1개로 자식테이블 데이터 여러개를 생성할 수 있는 관계
--DEPT_PK1과 EMP_PK_FK100는 1:N관계
--DEPT_PK1의 PK인 DNO으로 EMP_PK_FK100에서는 여러개의 데이터(중복)를 생성할 수 있기 때문에 1:N관계
--T_BOARD와 T_BOARD_FILE을 1:N관계로 만들어보기
DROP TABLE T_BOARD_FILE;



select *
from t_board;


ㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁT_board_file2 테이블을 만드는데 t_board에서 board_no를 참조키, 포린키로, board_no, board_file_no 둘을 프라이머리
    키로 하는 테이블을 만들어람ㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁ
    
    
CREATE TABLE T_BOARD_FILE2
(
    BOARD_NO        NUMBER,
    BOARD_FILE_NO   NUMBER,
    BOARD_FILE_NM   VARCHAR2(200),
    BOARD_FILE_PATH VARCHAR2(2000),
    ORIGIN_FILE_NM  VARCHAR2(200),
    CONSTRAINT PK_BF_BOARD_FILE_NO2 PRIMARY KEY (BOARD_NO, BOARD_FILE_NO),
    CONSTRAINT FK_BOARD_BOARD_NO2 FOREIGN KEY (BOARD_NO)
        REFERENCES T_BOARD (BOARD_NO)
);

의미가 t_board안에 있는 board_no
select *
from t_board;
select *
from t_board_file2;

t board 에 있는 board_no만 가져와서 쓸수있다.   아닌걸 가져오려 하면 규칙위반

;;
INSERT INTO T_BOARD
VALUES (1, NULL, NULL, NULL, NULL, NULL);
INSERT INTO T_BOARD
VALUES (6, NULL, NULL, NULL, NULL, NULL);

INSERT INTO T_BOARD_FILE2
VALUES (6, 5, NULL, NULL, NULL);



1-5 not null;



create table emp_not_null
(

    eno   number primary key,
    ename varchar(20)  not null,
    job   varchar2(10) not null,
    mgr   number,
    hdate date         not null,
    dno   number       not null

);



select *
from emp_not_null;


이거넣으면 못넣는다고 한다. notnull이라서.;

insert into emp_not_null
values (1, '홍길동', null, 0, sysdate, 0);

--not null 으로 지정된 컬럼에 null을 저장하면 에러가 발생


create table emp_def
(

    eno   number primary key,
    ename varchar(20)                  not null,
    job   varchar2(10) default '개발'    not null,
    mgr   number,
    hdate date         default sysdate not null,
    dno   number                       not null

);

select *
from emp_def;

default로 지정된 컬럼 제외한 데이터 저장
insert into emp_Def (eno, ename, mgr, dno)
values (1, '홍길동', 0, 1);


create table factory
(
    fno   number primary key,
    fname varchar2(50) not null,
    loc   varchar2(10) default '서울'
---or constraint pk_fac_fno primary key(fno)



);



ㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁ 그림참조 문제 여기에 cascade 도 넣어본다.;
create table goods
(

    gno   number primary key,
    gname varchar2(50),
    pri   number default 10000,
    fno number,
    constraint geg foreign key (fno)
        references factory (fno)


);
insert into factory values (1,'iphonefactory','california');
insert into goods values (19, 'iphone', 1000, 1);
insert into goods values (1, 'iphone2', 3000, 1);
select * from factory;
select * from goods;

create table prod
(
    pno   number primary key,
    gno number not null,
    price number default 7000,
    pdate date,
    constraint kilhahe foreign key (gno)
        references goods(gno)

);

 

 

 

 

 

 

 

조건문

 

PL/SQL에서는 조건문으로 if. , cafe문을 사용할 수 있다.

If 조건 then 실행문 : 조건에 충족되면 실해문이 실행되는 조건

If 조건 then 실행문 else 실행문2:조건이 충족되면 실행문ㅇ 1이 실행되고 조건이 충족하지 않으면 실행문 2 실행되는 형태의 조건

 

IF 조건1 then 실행문

         Else if 조건2 then 실행문2

         Else if 조건3 then 실행문3

        

         Else 실행문 n : 조건을 검사하여 해당 조건이 충족하는 실행문을 실행하고 모든 조건에 충족하지 않을대는 else에 실행문을 실행

 

End if ;; 조건문의 종료를 알려줘야한다.

CASE 비교대상

WHEN 1 THEN 실행문1;

WHEN 2 THEN 실행문2;

..

ELSE

실행문 n;

END CASE;

 

CASE

WHEN 조건식1 THEN 실행문1;

WHEN 조건식2 THEN 실행문2;

 

ELSE

실행문N;

END CASE;

반복문

 

PL/SQL에서는 기본 LOOP, WHILE LOOP, FOR LOOP, CUSOR FOR LOOP 의 네가지 반복문을 제공

기본 LOOP : 기본 반복문

WHILE LOOP : 특정 조건식의 결과를 통해서 반복

FOR LOOP : 반복 횟수를 지정해서 회수만큼 반복

CURSOR FOR LOOP : 커서를 통해 반복 수행

 

반복문 제어 명령어

-       EXIT : 현재 수행중인 반복문을 중단시키는 역할

-       EXIT WHEN 조건 : 조건이 충족되면 반복문을 종료

-       CONTINUE : 현재 진행중인 실행을 건너뛰고 다음번 실행으로 넘어감

-       CONTINUE WHEN 조건 : 조건을 충족하면 현재 실행을 건너뜀

 

7. 기본 LOOP

LOOP 반복 실행될 작업;

END LOOP;

 

방금한거 IF문으로

 

 

 

DECLARE

 

 

 

 

 

 

 

 

WHILE LOOP

-       WHILE 조건 LOOP

-       반복 실행될 작업;

-       END LOOP;

 

 

 

FOR LOOP

-       FOR I IN 시작값.. 종료값 LOOP

-       반복 실행작업;

-       END LOOPL

 

SET SERVEROUTPUT ON;

 

FOR I IN REVERSE 시작값.. 종료값 LOOP 반복실행작어;

END LOoP;

홀수만 출력하도록 모드를써서

MOD(i. 2)

 

 

 

 

 

 

 

 

조건문

 

PL/SQL에서는 조건문으로 if. , cafe문을 사용할 수 있다.

If 조건 then 실행문 : 조건에 충족되면 실해문이 실행되는 조건

If 조건 then 실행문 else 실행문2:조건이 충족되면 실행문ㅇ 1이 실행되고 조건이 충족하지 않으면 실행문 2 실행되는 형태의 조건

 

IF 조건1 then 실행문

         Else if 조건2 then 실행문2

         Else if 조건3 then 실행문3

        

         Else 실행문 n : 조건을 검사하여 해당 조건이 충족하는 실행문을 실행하고 모든 조건에 충족하지 않을대는 else에 실행문을 실행

 

End if ;; 조건문의 종료를 알려줘야한다.

CASE 비교대상

WHEN 1 THEN 실행문1;

WHEN 2 THEN 실행문2;

..

ELSE

실행문 n;

END CASE;

 

CASE

WHEN 조건식1 THEN 실행문1;

WHEN 조건식2 THEN 실행문2;

 

ELSE

실행문N;

END CASE;

반복문

 

PL/SQL에서는 기본 LOOP, WHILE LOOP, FOR LOOP, CUSOR FOR LOOP 의 네가지 반복문을 제공

기본 LOOP : 기본 반복문

WHILE LOOP : 특정 조건식의 결과를 통해서 반복

FOR LOOP : 반복 횟수를 지정해서 회수만큼 반복

CURSOR FOR LOOP : 커서를 통해 반복 수행

 

반복문 제어 명령어

-       EXIT : 현재 수행중인 반복문을 중단시키는 역할

-       EXIT WHEN 조건 : 조건이 충족되면 반복문을 종료

-       CONTINUE : 현재 진행중인 실행을 건너뛰고 다음번 실행으로 넘어감

-       CONTINUE WHEN 조건 : 조건을 충족하면 현재 실행을 건너뜀

 

7. 기본 LOOP

LOOP 반복 실행될 작업;

END LOOP;

 

방금한거 IF문으로

 

 

 

DECLARE

 

 

 

 

 

 

 

 

WHILE LOOP

-       WHILE 조건 LOOP

-       반복 실행될 작업;

-       END LOOP;

 

 

 

FOR LOOP

-       FOR I IN 시작값.. 종료값 LOOP

-       반복 실행작업;

-       END LOOPL

 

SET SERVEROUTPUT ON;

 

FOR I IN REVERSE 시작값.. 종료값 LOOP 반복실행작어;

END LOoP;

홀수만 출력하도록 모드를써서

MOD(i. 2)

 

 

 

 

 

 

 

 

조건문

 

PL/SQL에서는 조건문으로 if. , cafe문을 사용할 수 있다.

If 조건 then 실행문 : 조건에 충족되면 실해문이 실행되는 조건

If 조건 then 실행문 else 실행문2:조건이 충족되면 실행문ㅇ 1이 실행되고 조건이 충족하지 않으면 실행문 2 실행되는 형태의 조건

 

IF 조건1 then 실행문

         Else if 조건2 then 실행문2

         Else if 조건3 then 실행문3

        

         Else 실행문 n : 조건을 검사하여 해당 조건이 충족하는 실행문을 실행하고 모든 조건에 충족하지 않을대는 else에 실행문을 실행

 

End if ;; 조건문의 종료를 알려줘야한다.

CASE 비교대상

WHEN 1 THEN 실행문1;

WHEN 2 THEN 실행문2;

..

ELSE

실행문 n;

END CASE;

 

CASE

WHEN 조건식1 THEN 실행문1;

WHEN 조건식2 THEN 실행문2;

 

ELSE

실행문N;

END CASE;

반복문

 

PL/SQL에서는 기본 LOOP, WHILE LOOP, FOR LOOP, CUSOR FOR LOOP 의 네가지 반복문을 제공

기본 LOOP : 기본 반복문

WHILE LOOP : 특정 조건식의 결과를 통해서 반복

FOR LOOP : 반복 횟수를 지정해서 회수만큼 반복

CURSOR FOR LOOP : 커서를 통해 반복 수행

 

반복문 제어 명령어

-       EXIT : 현재 수행중인 반복문을 중단시키는 역할

-       EXIT WHEN 조건 : 조건이 충족되면 반복문을 종료

-       CONTINUE : 현재 진행중인 실행을 건너뛰고 다음번 실행으로 넘어감

-       CONTINUE WHEN 조건 : 조건을 충족하면 현재 실행을 건너뜀

 

7. 기본 LOOP

LOOP 반복 실행될 작업;

END LOOP;

 

방금한거 IF문으로

 

 

 

DECLARE

 

 

 

 

 

 

 

 

WHILE LOOP

-       WHILE 조건 LOOP

-       반복 실행될 작업;

-       END LOOP;

 

 

 

FOR LOOP

-       FOR I IN 시작값.. 종료값 LOOP

-       반복 실행작업;

-       END LOOPL

 

SET SERVEROUTPUT ON;

 

FOR I IN REVERSE 시작값.. 종료값 LOOP 반복실행작어;

END LOoP;

홀수만 출력하도록 모드를써서

MOD(i. 2)

 

 

 

 

 

 

 

 

조건문

 

PL/SQL에서는 조건문으로 if. , cafe문을 사용할 수 있다.

If 조건 then 실행문 : 조건에 충족되면 실해문이 실행되는 조건

If 조건 then 실행문 else 실행문2:조건이 충족되면 실행문ㅇ 1이 실행되고 조건이 충족하지 않으면 실행문 2 실행되는 형태의 조건

 

IF 조건1 then 실행문

         Else if 조건2 then 실행문2

         Else if 조건3 then 실행문3

        

         Else 실행문 n : 조건을 검사하여 해당 조건이 충족하는 실행문을 실행하고 모든 조건에 충족하지 않을대는 else에 실행문을 실행

 

End if ;; 조건문의 종료를 알려줘야한다.

CASE 비교대상

WHEN 1 THEN 실행문1;

WHEN 2 THEN 실행문2;

..

ELSE

실행문 n;

END CASE;

 

CASE

WHEN 조건식1 THEN 실행문1;

WHEN 조건식2 THEN 실행문2;

 

ELSE

실행문N;

END CASE;

반복문

 

PL/SQL에서는 기본 LOOP, WHILE LOOP, FOR LOOP, CUSOR FOR LOOP 의 네가지 반복문을 제공

기본 LOOP : 기본 반복문

WHILE LOOP : 특정 조건식의 결과를 통해서 반복

FOR LOOP : 반복 횟수를 지정해서 회수만큼 반복

CURSOR FOR LOOP : 커서를 통해 반복 수행

 

반복문 제어 명령어

-       EXIT : 현재 수행중인 반복문을 중단시키는 역할

-       EXIT WHEN 조건 : 조건이 충족되면 반복문을 종료

-       CONTINUE : 현재 진행중인 실행을 건너뛰고 다음번 실행으로 넘어감

-       CONTINUE WHEN 조건 : 조건을 충족하면 현재 실행을 건너뜀

 

7. 기본 LOOP

LOOP 반복 실행될 작업;

END LOOP;

 

방금한거 IF문으로

 

 

 

DECLARE

 

 

 

 

 

 

 

 

WHILE LOOP

-       WHILE 조건 LOOP

-       반복 실행될 작업;

-       END LOOP;

 

 

 

FOR LOOP

-       FOR I IN 시작값.. 종료값 LOOP

-       반복 실행작업;

-       END LOOPL

 

SET SERVEROUTPUT ON;

 

FOR I IN REVERSE 시작값.. 종료값 LOOP 반복실행작어;

END LOoP;

홀수만 출력하도록 모드를써서

MOD(i. 2)

 

 

 

 

 

 

 

 

조건문

 

PL/SQL에서는 조건문으로 if. , cafe문을 사용할 수 있다.

If 조건 then 실행문 : 조건에 충족되면 실해문이 실행되는 조건

If 조건 then 실행문 else 실행문2:조건이 충족되면 실행문ㅇ 1이 실행되고 조건이 충족하지 않으면 실행문 2 실행되는 형태의 조건

 

IF 조건1 then 실행문

         Else if 조건2 then 실행문2

         Else if 조건3 then 실행문3

        

         Else 실행문 n : 조건을 검사하여 해당 조건이 충족하는 실행문을 실행하고 모든 조건에 충족하지 않을대는 else에 실행문을 실행

 

End if ;; 조건문의 종료를 알려줘야한다.

CASE 비교대상

WHEN 1 THEN 실행문1;

WHEN 2 THEN 실행문2;

..

ELSE

실행문 n;

END CASE;

 

CASE

WHEN 조건식1 THEN 실행문1;

WHEN 조건식2 THEN 실행문2;

 

ELSE

실행문N;

END CASE;

반복문

 

PL/SQL에서는 기본 LOOP, WHILE LOOP, FOR LOOP, CUSOR FOR LOOP 의 네가지 반복문을 제공

기본 LOOP : 기본 반복문

WHILE LOOP : 특정 조건식의 결과를 통해서 반복

FOR LOOP : 반복 횟수를 지정해서 회수만큼 반복

CURSOR FOR LOOP : 커서를 통해 반복 수행

 

반복문 제어 명령어

-       EXIT : 현재 수행중인 반복문을 중단시키는 역할

-       EXIT WHEN 조건 : 조건이 충족되면 반복문을 종료

-       CONTINUE : 현재 진행중인 실행을 건너뛰고 다음번 실행으로 넘어감

-       CONTINUE WHEN 조건 : 조건을 충족하면 현재 실행을 건너뜀

 

7. 기본 LOOP

LOOP 반복 실행될 작업;

END LOOP;

 

방금한거 IF문으로

 

 

 

DECLARE

 

 

 

 

 

 

 

 

WHILE LOOP

-       WHILE 조건 LOOP

-       반복 실행될 작업;

-       END LOOP;

 

 

 

FOR LOOP

-       FOR I IN 시작값.. 종료값 LOOP

-       반복 실행작업;

-       END LOOPL

 

SET SERVEROUTPUT ON;

 

FOR I IN REVERSE 시작값.. 종료값 LOOP 반복실행작어;

END LOoP;

홀수만 출력하도록 모드를써서

MOD(i. 2)

 

 

 

 

 

 

 

 

조건문

 

PL/SQL에서는 조건문으로 if. , cafe문을 사용할 수 있다.

If 조건 then 실행문 : 조건에 충족되면 실해문이 실행되는 조건

If 조건 then 실행문 else 실행문2:조건이 충족되면 실행문ㅇ 1이 실행되고 조건이 충족하지 않으면 실행문 2 실행되는 형태의 조건

 

IF 조건1 then 실행문

         Else if 조건2 then 실행문2

         Else if 조건3 then 실행문3

        

         Else 실행문 n : 조건을 검사하여 해당 조건이 충족하는 실행문을 실행하고 모든 조건에 충족하지 않을대는 else에 실행문을 실행

 

End if ;; 조건문의 종료를 알려줘야한다.

CASE 비교대상

WHEN 1 THEN 실행문1;

WHEN 2 THEN 실행문2;

..

ELSE

실행문 n;

END CASE;

 

CASE

WHEN 조건식1 THEN 실행문1;

WHEN 조건식2 THEN 실행문2;

 

ELSE

실행문N;

END CASE;

반복문

 

PL/SQL에서는 기본 LOOP, WHILE LOOP, FOR LOOP, CUSOR FOR LOOP 의 네가지 반복문을 제공

기본 LOOP : 기본 반복문

WHILE LOOP : 특정 조건식의 결과를 통해서 반복

FOR LOOP : 반복 횟수를 지정해서 회수만큼 반복

CURSOR FOR LOOP : 커서를 통해 반복 수행

 

반복문 제어 명령어

-       EXIT : 현재 수행중인 반복문을 중단시키는 역할

-       EXIT WHEN 조건 : 조건이 충족되면 반복문을 종료

-       CONTINUE : 현재 진행중인 실행을 건너뛰고 다음번 실행으로 넘어감

-       CONTINUE WHEN 조건 : 조건을 충족하면 현재 실행을 건너뜀

 

7. 기본 LOOP

LOOP 반복 실행될 작업;

END LOOP;

 

방금한거 IF문으로

 

 

 

DECLARE

 

 

 

 

 

 

 

 

WHILE LOOP

-       WHILE 조건 LOOP

-       반복 실행될 작업;

-       END LOOP;

 

 

 

FOR LOOP

-       FOR I IN 시작값.. 종료값 LOOP

-       반복 실행작업;

-       END LOOPL

 

SET SERVEROUTPUT ON;

 

FOR I IN REVERSE 시작값.. 종료값 LOOP 반복실행작어;

END LOoP;

홀수만 출력하도록 모드를써서

MOD(i. 2)

 

 

 

 

 

 

 

 

조건문

 

PL/SQL에서는 조건문으로 if. , cafe문을 사용할 수 있다.

If 조건 then 실행문 : 조건에 충족되면 실해문이 실행되는 조건

If 조건 then 실행문 else 실행문2:조건이 충족되면 실행문ㅇ 1이 실행되고 조건이 충족하지 않으면 실행문 2 실행되는 형태의 조건

 

IF 조건1 then 실행문

         Else if 조건2 then 실행문2

         Else if 조건3 then 실행문3

        

         Else 실행문 n : 조건을 검사하여 해당 조건이 충족하는 실행문을 실행하고 모든 조건에 충족하지 않을대는 else에 실행문을 실행

 

End if ;; 조건문의 종료를 알려줘야한다.

CASE 비교대상

WHEN 1 THEN 실행문1;

WHEN 2 THEN 실행문2;

..

ELSE

실행문 n;

END CASE;

 

CASE

WHEN 조건식1 THEN 실행문1;

WHEN 조건식2 THEN 실행문2;

 

ELSE

실행문N;

END CASE;

반복문

 

PL/SQL에서는 기본 LOOP, WHILE LOOP, FOR LOOP, CUSOR FOR LOOP 의 네가지 반복문을 제공

기본 LOOP : 기본 반복문

WHILE LOOP : 특정 조건식의 결과를 통해서 반복

FOR LOOP : 반복 횟수를 지정해서 회수만큼 반복

CURSOR FOR LOOP : 커서를 통해 반복 수행

 

반복문 제어 명령어

-       EXIT : 현재 수행중인 반복문을 중단시키는 역할

-       EXIT WHEN 조건 : 조건이 충족되면 반복문을 종료

-       CONTINUE : 현재 진행중인 실행을 건너뛰고 다음번 실행으로 넘어감

-       CONTINUE WHEN 조건 : 조건을 충족하면 현재 실행을 건너뜀

 

7. 기본 LOOP

LOOP 반복 실행될 작업;

END LOOP;

 

방금한거 IF문으로

 

 

 

DECLARE

 

 

 

 

 

 

 

 

WHILE LOOP

-       WHILE 조건 LOOP

-       반복 실행될 작업;

-       END LOOP;

 

 

 

FOR LOOP

-       FOR I IN 시작값.. 종료값 LOOP

-       반복 실행작업;

-       END LOOPL

 

SET SERVEROUTPUT ON;

 

FOR I IN REVERSE 시작값.. 종료값 LOOP 반복실행작어;

END LOoP;

홀수만 출력하도록 모드를써서

MOD(i. 2)

 

 

 

 

 

 

 

 

조건문

 

PL/SQL에서는 조건문으로 if. , cafe문을 사용할 수 있다.

If 조건 then 실행문 : 조건에 충족되면 실해문이 실행되는 조건

If 조건 then 실행문 else 실행문2:조건이 충족되면 실행문ㅇ 1이 실행되고 조건이 충족하지 않으면 실행문 2 실행되는 형태의 조건

 

IF 조건1 then 실행문

         Else if 조건2 then 실행문2

         Else if 조건3 then 실행문3

        

         Else 실행문 n : 조건을 검사하여 해당 조건이 충족하는 실행문을 실행하고 모든 조건에 충족하지 않을대는 else에 실행문을 실행

 

End if ;; 조건문의 종료를 알려줘야한다.

CASE 비교대상

WHEN 1 THEN 실행문1;

WHEN 2 THEN 실행문2;

..

ELSE

실행문 n;

END CASE;

 

CASE

WHEN 조건식1 THEN 실행문1;

WHEN 조건식2 THEN 실행문2;

 

ELSE

실행문N;

END CASE;

반복문

 

PL/SQL에서는 기본 LOOP, WHILE LOOP, FOR LOOP, CUSOR FOR LOOP 의 네가지 반복문을 제공

기본 LOOP : 기본 반복문

WHILE LOOP : 특정 조건식의 결과를 통해서 반복

FOR LOOP : 반복 횟수를 지정해서 회수만큼 반복

CURSOR FOR LOOP : 커서를 통해 반복 수행

 

반복문 제어 명령어

-       EXIT : 현재 수행중인 반복문을 중단시키는 역할

-       EXIT WHEN 조건 : 조건이 충족되면 반복문을 종료

-       CONTINUE : 현재 진행중인 실행을 건너뛰고 다음번 실행으로 넘어감

-       CONTINUE WHEN 조건 : 조건을 충족하면 현재 실행을 건너뜀

 

7. 기본 LOOP

LOOP 반복 실행될 작업;

END LOOP;

 

방금한거 IF문으로

 

 

 

DECLARE

 

 

 

 

 

 

 

 

WHILE LOOP

-       WHILE 조건 LOOP

-       반복 실행될 작업;

-       END LOOP;

 

 

 

FOR LOOP

-       FOR I IN 시작값.. 종료값 LOOP

-       반복 실행작업;

-       END LOOPL

 

SET SERVEROUTPUT ON;

 

FOR I IN REVERSE 시작값.. 종료값 LOOP 반복실행작어;

END LOoP;

홀수만 출력하도록 모드를써서

MOD(i. 2)

 

 

 

 

 

 

 

 

조건문

 

PL/SQL에서는 조건문으로 if. , cafe문을 사용할 수 있다.

If 조건 then 실행문 : 조건에 충족되면 실해문이 실행되는 조건

If 조건 then 실행문 else 실행문2:조건이 충족되면 실행문ㅇ 1이 실행되고 조건이 충족하지 않으면 실행문 2 실행되는 형태의 조건

 

IF 조건1 then 실행문

         Else if 조건2 then 실행문2

         Else if 조건3 then 실행문3

        

         Else 실행문 n : 조건을 검사하여 해당 조건이 충족하는 실행문을 실행하고 모든 조건에 충족하지 않을대는 else에 실행문을 실행

 

End if ;; 조건문의 종료를 알려줘야한다.

CASE 비교대상

WHEN 1 THEN 실행문1;

WHEN 2 THEN 실행문2;

..

ELSE

실행문 n;

END CASE;

 

CASE

WHEN 조건식1 THEN 실행문1;

WHEN 조건식2 THEN 실행문2;

 

ELSE

실행문N;

END CASE;

반복문

 

PL/SQL에서는 기본 LOOP, WHILE LOOP, FOR LOOP, CUSOR FOR LOOP 의 네가지 반복문을 제공

기본 LOOP : 기본 반복문

WHILE LOOP : 특정 조건식의 결과를 통해서 반복

FOR LOOP : 반복 횟수를 지정해서 회수만큼 반복

CURSOR FOR LOOP : 커서를 통해 반복 수행

 

반복문 제어 명령어

-       EXIT : 현재 수행중인 반복문을 중단시키는 역할

-       EXIT WHEN 조건 : 조건이 충족되면 반복문을 종료

-       CONTINUE : 현재 진행중인 실행을 건너뛰고 다음번 실행으로 넘어감

-       CONTINUE WHEN 조건 : 조건을 충족하면 현재 실행을 건너뜀

 

7. 기본 LOOP

LOOP 반복 실행될 작업;

END LOOP;

 

방금한거 IF문으로

 

 

 

DECLARE

 

 

 

 

 

 

 

 

WHILE LOOP

-       WHILE 조건 LOOP

-       반복 실행될 작업;

-       END LOOP;

 

 

 

FOR LOOP

-       FOR I IN 시작값.. 종료값 LOOP

-       반복 실행작업;

-       END LOOPL

 

SET SERVEROUTPUT ON;

 

FOR I IN REVERSE 시작값.. 종료값 LOOP 반복실행작어;

END LOoP;

홀수만 출력하도록 모드를써서

MOD(i. 2)

 

 

 

 

 

 

 

 

조건문

 

PL/SQL에서는 조건문으로 if. , cafe문을 사용할 수 있다.

If 조건 then 실행문 : 조건에 충족되면 실해문이 실행되는 조건

If 조건 then 실행문 else 실행문2:조건이 충족되면 실행문ㅇ 1이 실행되고 조건이 충족하지 않으면 실행문 2 실행되는 형태의 조건

 

IF 조건1 then 실행문

         Else if 조건2 then 실행문2

         Else if 조건3 then 실행문3

        

         Else 실행문 n : 조건을 검사하여 해당 조건이 충족하는 실행문을 실행하고 모든 조건에 충족하지 않을대는 else에 실행문을 실행

 

End if ;; 조건문의 종료를 알려줘야한다.

CASE 비교대상

WHEN 1 THEN 실행문1;

WHEN 2 THEN 실행문2;

..

ELSE

실행문 n;

END CASE;

 

CASE

WHEN 조건식1 THEN 실행문1;

WHEN 조건식2 THEN 실행문2;

 

ELSE

실행문N;

END CASE;

반복문

 

PL/SQL에서는 기본 LOOP, WHILE LOOP, FOR LOOP, CUSOR FOR LOOP 의 네가지 반복문을 제공

기본 LOOP : 기본 반복문

WHILE LOOP : 특정 조건식의 결과를 통해서 반복

FOR LOOP : 반복 횟수를 지정해서 회수만큼 반복

CURSOR FOR LOOP : 커서를 통해 반복 수행

 

반복문 제어 명령어

-       EXIT : 현재 수행중인 반복문을 중단시키는 역할

-       EXIT WHEN 조건 : 조건이 충족되면 반복문을 종료

-       CONTINUE : 현재 진행중인 실행을 건너뛰고 다음번 실행으로 넘어감

-       CONTINUE WHEN 조건 : 조건을 충족하면 현재 실행을 건너뜀

 

7. 기본 LOOP

LOOP 반복 실행될 작업;

END LOOP;

 

방금한거 IF문으로

 

 

 

DECLARE

 

 

 

 

 

 

 

 

WHILE LOOP

-       WHILE 조건 LOOP

-       반복 실행될 작업;

-       END LOOP;

 

 

 

FOR LOOP

-       FOR I IN 시작값.. 종료값 LOOP

-       반복 실행작업;

-       END LOOPL

 

SET SERVEROUTPUT ON;

 

FOR I IN REVERSE 시작값.. 종료값 LOOP 반복실행작어;

END LOoP;

홀수만 출력하도록 모드를써서

MOD(i. 2)

 

 

 

 

 

 

댓글 영역