본문 바로가기

Programming/오라클[SQL]29

오라클[sql] 정규식 정규식 ▶ 정규식 : 데이터의 패턴을 보다 다양하게 찾거나 변경할 수 있도록 하는 함수 -- REGEXP_LIKE : like, 원하는 패턴을 검색 -- REGEXP_REPLACE : 패턴을 검색하고 변경(값 바꾸기) -- REGEXP_INSTR : 패턴을 검색하고 위치 반환 -- REGEXP_SUBSTR : 패턴을 검색하고 부분 문자 추출 -- REGEXP_COUNT : 패턴을 검색하고 발견한 횟수 ▶ 메타문자 : 검색을 하기위해 사용하는 문자 -- . 임의문자를 표현 예제 ▶ 테이블 생성 CREATE TABLE reg_tab( text varchar2(20) ); ▶ 데이터 입력 INSERT INTO reg_tab VALUES('TIGER'); INSERT INTO reg_tab VALUES('TIG.. 2022. 9. 25.
오라클[sql] 커서 CURSOR CURSOR ▶ SQL 문장을 실행 할 떄 오라클 서버측에서 명령어를 분석하고 싱행되는 곳 ▶ 분석하고 실행하는 영역을 커서 : 메모리를 항당하는 작업 ▶ 오라클에서 지원하는 기능인데 자동 저장되는 데이터가 1행임. : 묵시적커서 ▶ SQL%종류 SQL%ROWCOUNT : 최근수행한 SQL의 문장에 의해서 영향을 받은 행의 수 SQL%FOUND : 최근수행한 SQL의 문장이 하나 이상의 행에 영향을 주면 TRUE SQL%NOTFOUND : 최근수행한 SQL의 문장이 어떤행에도 영향을 주지 못하면 TRUE SQL%ISOPEN : 자동으로 커서를 닫기 때문에 항상 FALSE ▶ DELETE > 영향을 미칠겁니다. >> IF SQL%FOUND : 영향이 있다면 true >> THEN SQL%ROWCOUNT 몇.. 2022. 9. 24.
오라클[sql] 반복문 반복문 문법 LOOP IF 조건 THEN EXIT; -- 종료문 END IF; END LOOP; LOOP EXIT WHEN 조건; END LOOP; WHILE 조건 LOOP END LOOP; FOR 변수 IN 최소값..최대값 LOOP -- 변수값이 최소값부터 최대값으로 한번씩 증가 END LOOP; 예제 - 구구단 ACCEPT p_dan PROMPT '구구단 단 입력?' DECLARE v_dan INTEGER := &p_dan; cnt INTEGER; BEGIN FOR i IN 1..9 LOOP cnt := v_dan * i; DBMS_output.put_line(v_dan || ' x ' || i || ' = ' || cnt); END LOOP; END; / 예제 - 1~100 홀수 합산 / 짝수 합산.. 2022. 9. 24.
오라클[sql] 조건문 IF / CASE 조건문 IF 조건문 IF 조건 THEN 쿼리문; ELSIF 조건 THEN 쿼리문; ELSE 쿼리문; -- ELSE 아무것도 없으면 ELSE NULL; 라고 작성 END IF; CASE 조건 CASE 조건 WHEN 구조 THEN 쿼리문; WHEN 상태 THEN 쿼리문; ELSE 쿼리문; END CASE; 예제 ▶ SET serverOUTPUT ON ▶ 사원테이블에 입력 > 조건 부서번호 20번이면 급여 30%를 추가 하고 입력 ACCEPT p_name PROMPT '이름 : ' ACCEPT p_sal PROMPT '급여 : ' ACCEPT p_deptno PROMPT '부서번호 : ' DECLARE v_name emp.ename%TYPE := UPPER('&p_name'); v_sal emp.sal%TYP.. 2022. 9. 24.
오라클[sql] PL/SQL PL/SQL ▶ PL/SQL -- 쿼리 ;(세미콜론)을 통해서 항상 한문장 한문장 실행을 했습니다. -- A 쿼리실행 다음에 B쿼리를 실행해야하는 경우가 발생 -- SQL 순차적으로 처리하기 위한 확장된 언어 -- SQL + 일반프로그래밍언어 결합 : 변수개념도 생기고 제어문개념도 생김 -- 성능향상, 무결성때문에 여러 SQL문장을 하나의 블록으로 구현하는 방법 ▶ SQL 단점 -- 한번에 하나의 쿼리만 실행 -- if 문을 통해서 쿼리문 전체를 제아가 불가능 -- 변수가 없음 -- 에러처리가 없음 ▶ PL/SQL 의 유형 -- 익명블록 : 이름이 없고 1회 실행하는 유형 -- 프로시저 : 이름이 존재, 반복된 로직을 실행하는 유형 > DB에 저장된 형태 -- 함수 : 프로시저 중에 리턴이 반드시 있는 .. 2022. 9. 24.
오라클[sql] 시퀀스 / 인덱스 시퀀스 ▶ 자동증가수 시퀀스 생성 CREATE SEQUENCE seq_no Minvalue 1 -- 최소숫자 Maxvalue 9999999999 -- 최대숫자 Increment by 1 -- 증가치 start with 1 -- 시작숫자 nocache -- 조금빠르게 접근가능한 옵션 noorder -- 요청되는 순서대로 할당 nocycle -- 다시 재반복여부 ; 시퀀스 호출방법 ▶시퀀스이름.nextval : 다음 생성할 시퀀스 값 ▶ 시퀀스이름.currval : 현재 시퀀스 값 SELECT seq_no.nextval from dual; SELECT seq_no.currval from dual; 예제 CREATE TABLE temp( no NUMBER Primary key, name VARCHAR2(20).. 2022. 9. 24.