sql
[ Oracle ] 특정 값 우선 정렬하기 ORDER BY DECODE/CASE
조회 쿼리를 이용 할 때, 단순히 오름차와 내림차순 정렬이 아니라 정렬을 하되 우선적인 값을 제일 상단에 조회하고 그 후 정렬을 하던지 등 원하는 특정 조건을 기준으로 잡아 정렬을 해야하는 경우가 있다. 방법은 그리 복잡하지 않으니 예제를 보면서 이해해보도록 하자. 먼저 아래와 같은 주문테이블이 있다고 가정한다. CREATE TABLE 주문테이블 ( 주문일자 VARCHAR2(200 BYTE), 주문상품 VARCHAR2(200 BYTE), 주문상태 VARCHAR2(200 BYTE) ); INSERT INTO 주문테이블 (주문일자, 주문상품, 주문상태) VALUES ('2021-01-20', '삼겹살' , '배송중' ); INSERT INTO 주문테이블 (주문일자, 주문상품, 주문상태) VALUES ('20..
[ Oracle ] 오라클 Sql UNION과 UNION ALL?
이번 포스팅에선 UNION 과 UNION ALL 을 사용해보고 간단하게 어떤 차이가 있나정도만 알아보도록하자. 본 포스팅에서 다룰 STUDENT TABLE 을 먼저 생성했다. CREATE TABLE STUDENT ( ID VARCHAR2(4000 BYTE), NAME VARCHAR2(200 BYTE), ADDR VARCHAR2(200 BYTE) , GENDER VARCHAR2(200 BYTE) ); INSERT INTO STUDENT (ID, NAME, ADDR, GENDER) VALUES ('1', 'AAA', 'SEOUL', 'MAN'); INSERT INTO STUDENT (ID, NAME, ADDR, GENDER) VALUES ('2', 'BBB', 'BUSAN', 'MAN'); INSERT IN..
[ Oracle ] 오라클 INSERT, UPDATE, DELETE 문법
개발업종의 일을 한지 어느새 1년이 넘었는데도 쿼리를 작성할 때 간혹 INSERT, UPDATE 문의 문법이 헷갈린다.. ㅋㅋㅋㅋㅋㅋ 단순 참고용으로 DML의 쿼리 문법을 살펴보도록 하자. 아래와 같은 TEST 라는 테이블이 있다고 가정한다. NO NAME 1 A 2 B 3 C SELECT 절 SELECT 검색컬럼 FROM 테이블명 SELECT 절 예제 --TEST 테이블에서 전체 컬럼 조회 SELECT * FROM TEST; --TEST 테이블에서 NAME 컬럼을 조회 SELECT NAME FROM TEST; --TEST 테이블에서 NO가 1인 컬럼 조회 SELECT * FROM TEST WHERE NO = 1; INSERT 절 INSERT INTO 테이블명(컬럼1, 컬럼2, 컬럼3, ...) VALU..
[ Database ] SQLD DB 계층형 질의
계층형 질의란 말 그대로 계층형 데이터를 다루는 쿼리를 수행하는 것이다. 그럼 계층형 데이터란 무엇일까? 계층형 데이터란 동일한 테이블에 계층적으로 상위와 하위 데이터가 포함되어진 데이터들을 말한다. 예를 들어 사원 테이블에는 사원들의 데이터가 있지만 분명 사원마다 직급이 있거나 관리자(직속상관)이 있기 마련이다. 먼저, 계층형 질의에 대해 알아보기 앞서 아래의 용어를 숙지하자. 루트 노드 ( 루트 데이터 ) : 가장 최상위의 데이터 리프 노드 ( 리프 데이터 ) : 가장 최하위의 데이터 데이터를 전개하다 : 데이터를 찾아나가다 본론으로 들어가 아래와 같은 사원 테이블이 있다고 가정해보자. 사원 테이블을 보면 '진남'이 관리하는 사원은 '진홍'이며, '진홍'은 '동현'을, '동현'은 ..
[ Database ] SQLD Null 과 Default
SQLD 자격증을 공부하다 생각도 못 한 부분에서 해메여서 다시 되짚어 보고자 한다. 공부하다 헷갈렸던 부분은 다름 아닌 Null 에 대해서였다. Null 의 뜻을 아무것도 없는 상태 또는 아무것도 없는 값으로 알고 있었다. 그러다 이게 틀린 정보라는걸 이제서야 알았다. 이번을 계기로 제대로 Null 을 박살내보자. 먼저 Null 과 0 과 ' '(공백) 은 어떤 차이가 있을까? 우선 가장 본질적으로 차이점을 본다면 0 과 ' '(공백) 은 엄연히 유효한 데이터이다. 이유는 0 은 숫자 데이터이며 ' '(공백) 은 문자 데이터이기 때문이다. 그럼 Null 은? 앞에서 말했듯 Null 은 아무것도 없는 상태인줄 알았으나 그게 아니라 정의되지 않아 알 수 없는 데이터를 뜻하는 것이..