Overview JPA reply ( review 리뷰 ) Oracle sql 문 계층형 쿼리 문서 테이블 리뷰 조회 , 저장 , 삭제 예제 문서 https://yunamom.tistory.com/247 [Oracle] 계층형 쿼리 이해하기 (설명/예제) 안녕하세요 yunamom 입니다 :D 이번 포스팅에서는 Oracle10g 부터 CONNECT BY 절에서 제공하는 계층형 쿼리에 대하여 알아보겠습니다 👩🏻💻 계층형 쿼리란 무엇인가? 한 테이블에 담겨 있는 여러 yunamom.tistory.com 계층형 쿼리란 무엇인가? 한 테이블에 담겨 있는 여러 레코드들이 서로 상하 관계(부모, 자식) 관계를 이루며 존재할 때, 이 관계에 따라 레코드를 hierarchical(상하위) 한 구조로 가져올 때 사용되는..
데이터베이스/ORACLE_DB
선생님 자료 https://velog.io/@forbob/Simple-Coding-%EB%8B%B5%EB%B3%80%ED%98%95-%EA%B2%8C%EC%8B%9C%ED%8C%90 -- 계층형 쿼리 : level 의사(가상)컬럼 (예: 부모 0 ~ 1,2,3) SELECT BID AS bid -- LPAD , || : 문자열 붙이기 -- 자식에게 * 붙이기 , LPAD('*',(LEVEL-1)) || BOARD_TITLE AS boardTitle , BOARD_CONTENT AS boardContent , BOARD_WRITER AS boardWriter , VIEW_CNT AS viewCnt , BOARD_GROUP AS boardGroup , BOARD_PARENT AS boardParent FRO..
이름있는 프로시저 (VOID 형식과 비슷..?) 사용법 CREATE OR REPLACE PROCEDURE 프로시저명 (매개변수 in 자료형) -- 또는 (내보내기변수 out 자료형 -- js의 return) IS 선언문 BEGIN 실행문 END; / 프로시저 실행 CALL , EXEC 아무거나 사용 가능 CALL 프로시저명(입력값) -- 또는 EXEC 프로시저명(입력값) 프로시저 삭제 DROP PROCEDURE 프로시저명 함수 FUNCTION 특징 무조건 RETURN 값이 있음 (결과 내보내기가 있음) 사용법 CREATE OR REPLACE FUNCTION 함수이름 (매개변수 IN 자료형) RETURN 값 IS 선언부(정의) BEGIN 실행문 RETURN 결과 변수; END; / 함..
배열 CURSOR ~ IS ~ (DECLARE - 선언문) 배열 사용법 CURSOR 커서변수명 IS SELECT 컬럼1,컬럼2,... FROM 테이블명 [WHERE] 반복문 FOR ~ IN ~ LOOP ~ END LOOP 특징 증감식이 없고, 데이터의 끝에 도달하면 반복문 종료 (BEGIN - 실행문) 반복문 사용법 FOR 변수명 IN 커서변수명 LOOP 반복문 END LOOP 값 출력 예시 반복문의 변수명.컬럼명 FOR 변수명 IN 커서변수명 LOOP DBMS_OUTPUT.PUT_LINE(변수명.컬럼명); END LOOP
조건문 (BEGIN - 실행문) 조건문 사용법 IF 조건식 THEN 실행문; ELSE 실행문2; END IF; 예제 BEGIN -- MOD(값, 나눌값) : 나머지 연산하는 함수 IF MOD(4,2) = 0 THEN DBMS_OUTPUT.PUT_LINE('짝수입니다.'); ELSE DBMS_OUTPUT.PUT_LINE('홀수입니다.'); END IF; END; /
pl/sql PROCEDURE/FUNCTION , DB 프로그래밍 분야(SQL 숙련자들) 난이도가 높다 자바/JS 처럼 코딩하는 것을 말함 코딩 특징 제어문(조건문/반복문),변수/상수 소스 Oracle DB 에 저장된다. 장점 성능향상 ※ 주의점 화면 출력 모드 변경 : ON (출력 켜기) SET SERVEROUTPUT ON; 입력 받기 p_변수명 : 입력용 변수 v_변수명 : 단순 변수 ACCEPT 변수 prompt '입력창에 나올 문자열' 프로시저 코딩!! 선언부 : DECLARE 실행부 : BEGIN ~ END DECLARE -- 1) 선언부 : DECLARE -- 변수 초기화 , 변수정의 : 숫자(NUMBER) , 문자(VARCAHR2) , 날짜 (DATE) [자료형] -- ..
뷰 VIEW 하나 이상의 테이블이나 다른 뷰를 이용해서 생성하는 가상의 테이블 활용 1) 보안을 유지하기 위해 사용: 사원테이블 - 급여컬럼 (비밀유지) 2) SQL 문을 미리 만들어 놓고 재활용 : 코딩 생산성 향상 특징 뷰는 INSERT 도 가능하다! 단, 그룹함수로 만들어진 뷰는 INSERT가 불가능하다. 또한, 읽기전용 뷰도 INSERT가 불가능하다. 그룹함수로 만들 뷰는 꼭 컬럼에 별칭(AS 별칭)을 붙여주세요 뷰 생성 , [OR REPLACE] 쓰면 뷰 수정도 가능 뷰이름 : VW_테이블명_컬럼명 CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW 뷰이름(컬럼1,컬럼2,...) AS SELECT 원본컬럼1, 원본컬럼2,... FROM 테이블명 [WITH CHECK OPTI..
계정 생성 , 권한주기 CREATE 유저 생성 Oracle DB생성 기본관리자 SYSTEM , SYS(최고관리자) 기본으로 준다 유저 생성 CREATE USER 계정명 IDENTIFIED BY 암호 유저삭제 DROP USER 유저명 GRANT 권한부여 관리자 계정으로 해야겠쥬? GRANT 권한명 , 롤명 ... TO 유저명 접속권한 CREATE SESSION 테이블생성 권한 CREATE TABLE VIEW 생성 권한 CREATE VIEW 공간에대한 권한주기(무한) 테이블(논리적 공간) => 물리적 공간 배정(할당) UNLIMITED TABLESPACE TO ※ ※ ※ 이러면 개별적으로 다 주어야 한다.. 따라서 권한들의 집합 ROLE 이라고 한다. 접속 권한들의 모임 CONNECT ..
인덱스 INDEX 조회속도 향상을 위해 조건에 해당하는 컬럼에 인덱스를 생성(지정) 가장 일반적인 B-tree 인덱스는 인덱스 키와 이 키에 해당하는 테이블의 행이 저장된 주소 값으로 구성됨 왜 쓸까? 사이트에서 조회시 이름검색이 많은데 속도가 느리다고 한다. 예시 ) WHERE ENAME LIKE '%%'; 인덱스를 만들어야 하는 기준 1) 테이블에 행의 개수가 많을 경우(데이터 건수가 많을 경우) : 10만건 이상 2) WHERE(조건절)에 해당 컬럼이 많이 등장할 경우 3) 테이블 조인의 공통컬럼으로 사용될 경우 인덱스 명명법 IX_테이블명_컬럼명 , IDX_테이블명_컬럼명 생성 인덱스 생성 인덱스명 : IX_테이블명_컬럼명 , IDX_테이블명_컬럼명 CREATE [UNIQUE] INDE..
시퀀스 Sequence 호출(실행)할때마다 자동적으로 숫자를 증가시키는 것(객체) ( 특징 ) 1) Oracle에서 유일(UNIQUE)한 값을 생성해주는 객체 2) 기본키(PRIMARY KEY)와 같이 순차적으로 증가하는 칼럼을 자동으로 생성하여 중복 값이 생성되지 않음 3) 시퀀스는 테이블과는 독립적으로 저장하고 생성됨 시퀀스 문 작성 CREATE SEQUENCE [스키마.] 시퀀스명 INCREMENT BY 증감값 START WITH 시작값 [MINVALUE | NOMINVALUE] 최솟값 [MAXVALUE | NOMAXVALUE] 최댓값 [CYCLE | NOCYCLE] [CACHE | NOCACHE] [ORDER | NOORDER] -- INCREMENT BY : 시퀀스 실행 시 증가시킬 값 -- S..
제약조건 이란? 테이블에 입력될 값을 제한하는 것 특징 제약조건은 컬럼별로 각각 지정할 수 있다. 테이블 생성문 CREATE TABLE 테이블명 ( 컬럼 데이터타입(크기) 제약조건 ); UNIQUE 제약조건 ( 특징 ) 1) 유일한 값만 입력될 수 있다. 2) 데이터 중복 금지 3) NULL 값은 허용한다. 테이블을 만들 때 지정문 CREATE TABLE 테이블명 ( 컬럼 데이터타입(크기) UNIQUE ); NULL , NOT NULL ( 특징 ) NULL 기본값 / NULL 값 허용 NOT NULL NULL 값 금지 테이블을 만들 때 지정문 CREATE TABLE 테이블명 ( 컬럼 데이터타입(크기) CHECK 제약조건 (CK) ( 특징 ) 칼럼에서 허용 가능한 데이터의 범위나 조건..
DML (DATA MANIPULATION LANGUAGE) 데이터 조작어 [ INSERT | SELECT | UPDATE | DELETE ] 특징 명령문 실행 후 취소가 가능하다 ROLLBACK INSERT 데이터 추가 INSERT INTO 테이블명(컬럼1,컬럼2..) VALUES(컬럼1의 데이터 , 컬럼2의 데이터 ...) 참조 : 다른 테이블 데이터 복사 INSERT INTO 복사될테이블명 SELECT * FROM 원본테이블명 ♠\ 참조 /♠ \ ( 1 ) / NULL 값 추가 암묵적 NULL 값 추가 만약 한 테이블의 컬럼이 3개인데 컬럼 2개만 추가했을때 자동으로 NULL 값이 추가됨 명시적 NULL 값 추가 값에 NULL 추가 \ ( 2 ) / DATE 형식 암묵적인 방식 (문자열 →..