본문 바로가기
728x90
반응형

오라클8

MySQL - 자료형 CHAR와 VARCHAR의 차이점 안녕하세요 꼬바리입니다. 문자열 자료형 - CHAR, VARCHAR 자료형 의미 대응하는 범위 CHAR 고정형 문자열 255자 까지 VARCHAR 가변형 문자열 1 ~ 65535바이트 문자 수의 상한은 이용하는 문자 코드에 따라 다르다. 자료형 CHAR와 VARCHAR은 문자열을 표현할 때 사용하는 자료형으로 사용할 때 길이를 명시해 주어야 한다. CHAR 타입은 고정 사이즈이기 때문에 CHAR(20)으로 했을 경우 20byte만큼만 공간이 할당되기 때문에 20byte를 넘어가면 데이터가 잘리게 된다. 이러한 특성은 VARCHAR도 동일하다. ↑ char(20),varchar(20) 컬럼에 20byte가 넘는 문자열을 넣었을 때 20byte가 넘는 경우 데이터가 잘린다. # CHAR(20)=char(20.. 2021. 5. 4.
[Oracle] SELECT 1 FROM 테이블명; SELECT 1 FROM 테이블명; SELECT 1 FROM 테이블명; select문에 사용하면 해당 테이블의 갯수만큼 1로 된 행 출력 테이블의 행의 수가 N개이면 1이 N행 반환됩니다. 1은 TRUE 의미 WHERE 조건문과 함께 사용하면 해당 조건을 만족할 때, 1을 반환 다중행 서브 쿼리문에서 WHERE 조건절에 (NET) EXISTS 안의 서브쿼리문에 사용됨 값의 존재 유무를 파악할 때 사용 SQL> select 1 from emp; 1 --- 1 1 1 1 4 rows selected. WHERE 조건문과 함께 쓰면 해당 조건을 만족하면 1 반환 SQL> select 1 from emp WHERE ename = 'SCOTT'; 1 --- 1 2021. 3. 18.
Equi Join /Non-Equi Join Equi Join 기존 테이블과 조인 테이블에서 공통 칼럼을 '='(equal) 비교하여, 같은 값을 가지는 행을 연결하고 결과를 생성하는 조인 방법입니다. 가장 많이 사용되는 조인 방법이라고도 합니다. 학생 테이블과 부서 테이블을 EQUI JOIN하여 이름, 학과 번호, 소속 학과 이름을 출력 학생 테이블과 학과 테이블, 교수 테이블을 JOIN 하여 학생의 이름과 학과이름, 지도교수 이름을 출력 => 세 개의 테이블을 조인하는 경우, 기준이 되는 테이블이 중요합니다. 여기서 기준이 되는 테이블은 학생 테이블이겠죠? 학생에 대한 모든 정보가 주된 목적이니까요! 세 개의 테이블을 어떻게 묶느냐에 따라 결과가 달라지기도 하니 기준을 잘 정해야합니다. 그 후 각각 테이블의 연결고리를 잘 확인합니다. STUDE.. 2021. 3. 16.
[오라클] start with connect by prior order siblings by 오라클 쿼리를 짜다보면 계층적으로 정렬해야 될 때가 있다. 예를 들어 메뉴(navigation) 출력. 그럴때 유용하게 사용할 수 있는것이 start with connect by prior order siblings by 이다. order by 로 sort할 경우 모든 데이터를 가지고 정렬을 하지만 order siblings by 각 계층별로 정렬을 한다. 그냥 정렬하면 계층구조가 흐트러지기 때문에 계층구조는 그대로 유지하면서 동일 부모를 가진 자식들끼리의 정렬 기준을 주는 것이다. 예를 들어 아래와 같이 있다고 하면 start with a.parent_id='0' connect by prior a.menu_id=a.parent_id order by siblings by a.sort asc 이러면 부모컬.. 2021. 3. 16.
[Oracle] 오라클 계층형 쿼리(START WITH.. CONNECT BY) 계층형 쿼리란? 계층형 구조는 상하 수직관계의 트리형태의 구조로 이루어진 형태를 말합니다. 예를 들자면 특정회사의 부서, 특정학교의 학과등이 있습니다. 계층형 쿼리는 테이블에 저장된 데이터를 계층형 구조로 반환하는 쿼리를 말합니다. 오라클에서의 계층형 쿼리는 START WITH ... CONNECT BY 절로 생성할 수 있으며 계층형 정보를 표현하기 위한 목적으로 오라클 8부터 지원되었습니다. 수행순서 1. START WITH 절에 시작 조건을 찾습니다. 2. CONNECT BY 절에 연결조건을 찾습니다. 샘플데이터 생성 위와같은 구조를 이루도록 부서 테이블을 생성하도록 하겠습니다. CREATE TABLE DEP ( DEP_CD NUMBER NOT NULL, -- 부서코드 PARENT_CD NUMBER,.. 2021. 3. 16.
오라클 ORDER BY 1 2 3 개념 및 예제 오라클에서 ORDER BY 1, 2, 3 이런 내용을 본 적이 있었을 텐데 뭔 말인고 하면 테이블의 1,2,3번째 컬럼 기준으로 정렬하겠다는 말이다 즉 ORDER BY 1 DESC는 첫번째 열 기준으로 내림차순 정렬이라는 말이다 컬럼 번호를 이용해 정렬하는 방식은 겉보기에는 그럴싸하지만 컬럼 숫자만으로는 어느 컬럼을 지정한 건지 알아보기 어렵고 컬럼을 추가, 삭제하는 등 변경했을 경우 ORDER BY가 꼬일 수 있기 때문에 컬럼명을 기준으로 ORDER BY를 거는 것을 권장한다 마지막으로 예제에 사용한 코드는 아래와 같다 SELECT * FROM SCOTT.EMP ORDER BY 1, 2, 3 -- 1,2,3번째 컬럼 순으로 오름차순 정렬 -- ORDER BY EMPNO, ENAME, JOB과 동일 SE.. 2021. 3. 16.
[ORACLE] CASE WHEN ~ THEN ~ ELSE END 이번엔 JAVA 의 IF ~ ELSE 문과도 같은 CASE WHEN 문에 대해서 알아 봅시다. CASE ~ WHEN ~ THEN ~ ELSE ~ END [형식] CASE 컬럼명 | 표현식 WHEN 조건식1 THEN 결과1 WHEN 조건식2 THEN 결과2 ....... WHEN 조건식n THEN 결과n ELSE 결과 END 조건문과 조건문 사이에는 콤마(,) 를 사용하지 않는다. CASE 문은 반드시 END 로 끝내야 한다. CASE 표현식은 ANSI SQL 형식도 지원한다. 결과 부분은 NULL 을 사용해서는 안된다. case when x = y then a else b end : 조건 x =y 가 true 일 경우 a 이고 그렇지 않으면 b case when x < y then a when x = y.. 2021. 3. 16.
오라클 cascade 사용방법 및 예제 오라클에서 cascade란 두 테이블을 연결해서 PK를 가지고 있는 쪽의 값을 삭제하면 FK로 연결된 값이 동시에 삭제되게 하는 옵션이다 예제에서는 부모 역할을 할 MOTHER_TABLE에 테이블 생성과정 중 CONSTRAINT 제약조건명 PRIMARY KEY (PK컬럼명); 으로 테이블 PK를 설정하고 위 테이블과 연결시킬 CHILD_TABLE을 만들면서 하단에 CONSTRAINT 제약조건명 FOREIGN KEY (CHILD_TABLE의 FK로 사용할 컬럼명) REFERENCES 연결시킬_테이블(연결시킬_테이블의_PK_컬럼명) ON DELETE CASCADE 을 넣어주면 된다 만약 생성과정이 아닌 ALTER로 테이블에 CASCADE를 설정해 준다면 ALTER TABLE 테이블명 ADD CONSTRAIN.. 2021. 3. 14.
728x90
반응형