본문 바로가기

Structured Query Language/Oracle SQL

(27)
Oracle_SQL CONNECT BY LEVEL 오라클 디비 이용 시 알아두면 유용한 쿼리가 [CONNECT BY LEVEL]입니다. Connect By Start With는 계층 쿼리로 상하 관계를 질의하는 데 사용하는데요. LEVEL은 순위를 의미합니다. 이를 응용한 CONNECT BY LEVEL은 연속된 숫자를 조회할 때 활용하는데요. 예제를 통해 보시면 금방 이해가 되실 겁니다. 1~10까지 연속된 숫자 조회 SELECT LEVEL AS NO FROM DUAL CONNECT BY LEVEL
Oracle SQL_DUAL DUAL 테이블에 대해 알아보자 . 오라클을 설치하면 기본 테이블이 주어집니다. 대표적인게 DEPT 인데요. DUAL은 테이블 리스트에 포함되어 있지 않습니다. 그 이유는 바로 이 테이블은 SYS 소유이기 때문입니다. SYSTEM에서 기본으로 만들어놓은 테이블이지만, 모든 사용자에게 권한을 주어서 내가 만든 테이블 처럼 조회가 가능합니다. 해당 dual 테이블을 조회 해보면 DUMMY 라는 컬럼에 X라는 단순한 데이터만 담겨 있습니다. 나는 임시테이블이라고 밝히고 있네요. 컬럼 구조도 VARCHAR2(1)입니다. 최소한의 자원으로 만들어진 임시 테이블입니다. 사용법 사례 from에 담을 게 없을때 사용하는 용도 입니다. 내장 함수를 출력하고 싶을때도 사용합니다. SELECT SYSDATE FROM DUA..
[ Oracle SQL ] 계층형쿼리 (Hierarchy Query) 계층형 쿼리란? 한테이블에 레코드들이 계층관계(상위,하위)를 이루며 존재할 때, 이 관계에 따라 레코드를 계층관계(상위,하위) 한 구조로 데이터를 가져올 때 사용되는 SQL문을 의미한다. 쉽게말하자면 계층형 쿼리는 말그대로 계층 관계를 나타내는 쿼리문을 말한다. 예를 들어 회사 조직도 (예) 위 회사 조직도는 최상위는 회사를 두고 그것을 중심으로 개발부분과 영업부문으로 나뉜다. - 회사 : 최상위 - 개발부문 상위 : 회사 하위 : 개발부, 부설연구소 - 영업부문 상위 : 회사 하위 : 해외영업부, 국내영업부, 영업기획팀 실습 해보기 1. 해당 테이블 생성 CREATE TABLE TB_DEPT ( DEPT_CD VARCHAR2(8) NOT NULL PRIMARY KEY, PAR_DEPT_CD VARCHA..
Oracle SQL 기본_14 NULLIF : 컬럼의 값이 같으면 null을 반환하는 함수 1. NULLIF 함수의 이해와 표현 ​ 오라클 SQL 디벨로퍼의 NULLIF는 A와 B의 값이 같으면 null, 다르면 컬럼A의 값을 반환하는 함수입니다. ​ (1) 기본식 : 임의의 값1, 값2를 비교하는 경우 select nullif (값1, 값2) from dual; 값1=값2이면 null을, 값1≠값2이면 값1을 반환합니다. ​ (2) 기본식 : 컬럼X의 값들과 고정된 값1을 비교하는 경우 select nullif (컬럼X, 값1) from 테이블이름A; 컬럼X의 값=값1 이면 null, 컬럼X의 값≠값1이면 컬럼X의 값이 반환됩니다. (3) 기본식 : 여러 레코드의 컬럼X의 값들과 컬럼Y의 값들을 비교하는 경우 select nulli..
Oracle SQL 기본_13 새로운 사용자 계정(USER) 만들기, 권한 부여하기(GRANT), 새 계정에 접속 만드는 방법 : cmd창 sqlplus 비밀번호 입력이 안 되는 문제 해결 오라클 SQL의 기능을 배울 때 꿈에 나오도록 scott, hr 연습계정을 사용하게 됩니다. 하지만 언젠가는 연습계정을 벗어나 hr이나 scott 같은 새로운 계정을 만들어 사용해야 할 것입니다. ​ 본 포스팅에서는 오라클 SQL 디벨로퍼에 hr이나 scott 계정처럼 사용할 수 있는 새로운 계정, 'andrea'를 만들 것입니다. 계정 생성 과정 흐름은 다음과 같이 진행됩니다. ​ 1. 계정 생성(cmd) 2. 권한 부여(cmd) 3. 권한 확인(cmd) 4. 접속 생성(Oracle SQL Developer) 1. 계정 생성(cmd) ​ 먼저, ..
Oracle SQL 기본_12 MERGE (1) : 테이블 병합 기초 - 같은 구조를 가진 두 개의 테이블을 하나로 합치기 1. MERGE의 개념 이해와 표현 ​ 1) MERGE의 개념 ​ MERGE는 DML(Data Manipulation Languae)에 속하는 명령어로서, 테이블A와 테이블B를 병합하는 데 사용하는 테이블 병합 명령어입니다. ​ ​ 2) MERGE의 표현 ​ - 테이블A에 테이블B를 병합합니다. - 병합 시, 기준이 되는 컬럼은X 입니다. using on () 부분에 이 병합 기준 조건을 지정하여 줍니다. - 조건을 만족하면 update 또는 delete를 수행하고, - 조건을 만족하지 못하면 테이블B의 내용이 테이블A에 새로이 추가됨으로서 테이블A로 병합되는 것입니다. megre into 테이블이름A 약칭A u..
Oracle SQL 기본_12 ALTER RENAME : 테이블 이름 변경, 컬럼(변수) 이름 변경, 제약조건 이름 바꾸기 1. ALTER 명령어의 이해 ​ ALTER는 DDL(Data Definition Language)에 속하는 명령어로, 테이블이나 컬럼의 이름을 바꾸거나 / 제약조건을 변경하거나 / 컬럼을 추가 또는 삭제하는 등의 다양한 테이블 변경 기능을 수행합니다. ​ ALTER 명령어를 용도별로 세분화하면 다음과 같습니다. ALTER 명령어 유형 기능 ALTER RENAME 이름 변경 테이블 이름, 컬럼 이름, 제약조건 이름 변경 ALTER ADD 추가 테이블에 새로운 컬럼 추가, 새로운 제약조건 추가 ALTER MODIFY 유형 변경 테이블 컬럼의 데이터 유형(또는 크기) 변경 ALTER DROP 삭제 테이블에서 컬럼 삭..
Oracle SQL 기본_11 CREATE SELECT : 기존 테이블을 복사하여 새 테이블 생성하기, 파생 테이블 생성하기 ​1. CREATE-SELECT의 개념과 표현 ​ 1) CREATE-SELECT의 개념 ​ CREATE-SELECT, 또는 CREATE TABLE- AS SELECT 는 기존에 존재하는 테이블로부터 파생 테이블을 생성할 수 있는 구문입니다. 단순히 빈 테이블을 생성(CREATE TABLE)하는 것 뿐만 아니라 기존 테이블이 가지고 있었던 자료도 함께 복사해 옵니다.(SELECT) ​ - 기존의 테이블 전체를 복사 - 기존 테이블의 일부만 복사 - 기존 테이블의 컬럼을 가공(변형)한 파생 테이블 생성 ... ​ 이러한 목적을 가지고 있을 때 CREATE TABLE AS SELECT ... 구문을 사용할 수 있습니..