반응형

SQL 41

[Oracle] 제약 조건(6) - 디폴트(DEFAULT)

이 게시물은 Database GUI Oracle SQL Developer의 아래 버전 정보를 기준으로 작성되었습니다. Java(TM) 플랫폼 : 1.8.0_321 Oracle IDE : 4.1.5.21.78 디폴트(DEFAULT) 설명 DEFAULT는 테이블에 데이터가 INSERT될 때 아무런 값이 입력되지 않을 경우 입력되는 기본값을 설정해 주는 제약 조건이다. 문법 CREATE TABLE [테이블 이름]( (다른 열 정의 문법 생략), [열 이름] [열 자료형] DEFAULT [기본값으로 설정할 값] ); 사용 예시 1. TB_SHOP_MEMBER 테이블에 회원 정보가 INSERT 될 시 COL_POINT 데이터가 입력되지 않으면 0으로 설정 CREATE TABLE TB_SHOP_MEMBER( COL..

[Oracle] DML(7) - DELETE

이 게시물은 Database GUI Oracle SQL Developer의 아래 버전 정보를 기준으로 작성되었습니다. Java(TM) 플랫폼 : 1.8.0_321 Oracle IDE : 4.1.5.21.78 DELETE 아래 테이블이 없다면 여기를 클릭하여 테이블을 생성하고 돌아오자. SELECT * FROM TB_EMP2; 설명 데이터 레코드를 삭제할 때 사용하는 명령어. UPDATE와 마찬가지로 WHERE절을 사용하지 않을 경우 테이블의 전체 데이터가 모두 삭제되니 주의를 요함 사용 형태 DELETE FROM [대상 테이블] WHERE [대상 행을 선별할 조건] 사용 예시 SELECT * FROM TB_EMP2; -- 테이블 확인 -- JOB이 CLERK인 직원 삭제 DELETE FROM TB_EMP..

[Oracle] DML(2) - INSERT의 기본 개념과 사용 형태

이 게시물은 Database GUI Oracle SQL Developer의 아래 버전 정보를 기준으로 작성되었습니다. Java(TM) 플랫폼 : 1.8.0_321 Oracle IDE : 4.1.5.21.78 INSERT의 기본 개념과 사용 형태 설명 테이블에 데이터를 삽입하는 명령어 사용 형태 INSERT INTO [테이블명] (열1, 열2, ... , 열n) VALUES (값1, 값2, ... , 값n); 이때, VALUES 앞의 열 지정은 생략할 수도 있지만, 열 개수와 자료형 및 길이를 반드시 맞춰 주어야 한다. 그러나 본인 혹은 다른 개발자가 쿼리문 참조 시 자료를 별도로 찾아야 하는 수고를 덜기 위해서는 열을 명시해 주는 것이 좋다. 아래 테이블이 없다면 이전 게시물(링크)을 보고 임시 테이블을..

[Oracle] 서브쿼리(2) - 단일행 서브쿼리

이 게시물은 Database GUI Oracle SQL Developer의 아래 버전 정보를 기준으로 작성되었습니다. Java(TM) 플랫폼 : 1.8.0_321 Oracle IDE : 4.1.5.21.78 단일행 서브쿼리 이전 포스트에서 SCOTT보다 봉급이 높은 직원을 구하는 서브쿼리를 실행해 보았다. 하지만 이 쿼리에는 하나의 문제점이 있다. 우리는 앞서 SCOTT의 봉급을 구하는 쿼리로 3000이라는 하나의 레코드가 나오는 것을 확인하였기 때문에 이 쿼리에 어떠한 의심도 갖지 않는다. 즉, 우리는 SCOTT라는 이름을 가진 직원이 한 명인 것을 전제로 쿼리문을 실행한 것이다. 아래 쿼리문을 살펴보자. SELECT ENAME, SAL FROM EMP WHERE SAL >= 3000; 봉급(SAL)이..

[Oracle] 서브쿼리(1) - 서브쿼리의 개념과 특징

이 게시물은 Database GUI Oracle SQL Developer의 아래 버전 정보를 기준으로 작성되었습니다. Java(TM) 플랫폼 : 1.8.0_321 Oracle IDE : 4.1.5.21.78 서브쿼리의 개념과 특징 서브쿼리(Subquery)의 개념 하나의 SQL 문 안에 포함되어 있는 또 다른 SQL문 서브쿼리의 예시 만약 SCOTT의 봉급(SAL)보다 봉급이 높은 직원들을 출력하고 싶다고 가정하자. 그러면 아래의 쿼리를 통해 SCOTT의 봉급을 구할 것이다. SELECT SAL FROM EMP WHERE ENAME = 'SCOTT'; 그렇게 봉급을 확인한 뒤에, 다시 쿼리문을 아래와 같이 작성할 것이다. SELECT ENAME, SAL FROM EMP WHERE SAL > 3000; 이..

[Oracle] JOIN(1) - JOIN의 기본 개념과 목적

이 게시물은 Database GUI Oracle SQL Developer의 아래 버전 정보를 기준으로 작성되었습니다. Java(TM) 플랫폼 : 1.8.0_321 Oracle IDE : 4.1.5.21.78 JOIN의 기본 개념과 목적 설명 JOIN은 두 개 이상의 테이블을 연결하여 하나의 테이블처럼 출력할 때 사용하는 방식. 개발자라면 정말 많이 접할 수밖에 없는 개념 중 하나임 사용 예시 SELECT * FROM EMP, DEPT ORDER BY EMPNO; 위 쿼리를 실행하면 아래와 같은 결과가 출력된다. 데이터는 출력되지만 맞아떨어지지 않는 데이터로 조합되어 출력되는 것이다. 이런 상황에서 JOIN을 사용하면 의미 있는 정보화를 할 수 있다. SELECT * FROM EMP, DEPT WHERE ..

[Oracle] 데이터 그룹화(6) - PIVOT(), UNPIVOT()

이 게시물은 Database GUI Oracle SQL Developer의 아래 버전 정보를 기준으로 작성되었습니다. Java(TM) 플랫폼 : 1.8.0_321 Oracle IDE : 4.1.5.21.78 PIVOT(), UNPIVOT() 설명 PIVOT() : 오라클 11g 버전부터 사용 가능한 함수. 기존 테이블 행을 열로 바꾸어 출력 UNPIVOT() : 오라클 11g 버전부터 사용 가능한 함수. 기존 테이블 열을 행으로 바꾸어 출력 사용 예시 -- query1(부서별/직책별로 그룹화하여 최고 급여 데이터 출력하기) SELECT DEPTNO, JOB, MAX(SAL) FROM EMP GROUP BY DEPTNO, JOB ORDER BY DEPTNO, JOB; -- query2(PIVOT() 함수를..

[Oracle] 데이터 그룹화(5) - LISTAGG()

이 게시물은 Database GUI Oracle SQL Developer의 아래 버전 정보를 기준으로 작성되었습니다. Java(TM) 플랫폼 : 1.8.0_321 Oracle IDE : 4.1.5.21.78 LISTAGG() 설명 LISTAGG() : 그룹에 속해 있는 데이터를 가로로 나열할 때 사용하는 함수. 오라클 11g 버전부터 사용 가능 문법 SELECT ... LISTAGG([나열할 열(필수)], [각 데이터를 구분하는 구분자(선택)]) WITHIN GROUP(ORDER BY [나열할 열의 정렬 기준 열(선택)]) FROM ... WHERE ... 사용 예시 -- query1 SELECT ENAME FROM EMP WHERE DEPTNO = 10; -- query2 SELECT DEPTNO, E..

[Oracle] 데이터 그룹화(4) - GROUPING(), GROUPING_ID()

이 게시물은 Database GUI Oracle SQL Developer의 아래 버전 정보를 기준으로 작성되었습니다. Java(TM) 플랫폼 : 1.8.0_321 Oracle IDE : 4.1.5.21.78 GROUPING(), GROUPING_ID() 설명 GROUPING() : ROLLUP() 또는 CUBE() 함수를 사용한 GROUP BY절에 그룹화 대상으로 지정한 열이 그룹화된 상태로 결과가 집계되었는지 확인하는 데 사용하는 함수. GROUP BY절에 명시된 열 중 하나를 지정할 수 있음 GROUPING_ID() : ROLLUP() 또는 CUBE() 함수를 사용한 GROUP BY절에 그룹화 대상으로 지정한 열이 그룹화된 상태로 결과가 집계되었는지 확인하는 데 사용하는 함수. GROUPING() 함..

[Oracle] 데이터 그룹화(3) - GROUPING SETS()

이 게시물은 Database GUI Oracle SQL Developer의 아래 버전 정보를 기준으로 작성되었습니다. Java(TM) 플랫폼 : 1.8.0_321 Oracle IDE : 4.1.5.21.78 GROUPING SETS() 설명 GROUPING SETS() : 같은 수준의 그룹화 열이 여러 개일 때 각 열별 그룹화를 통해 결과값을 출력하는 데 사용하는 함수. 지정한 모든 열을 각각 대그룹으로 처리하여 출력. 문법 SELECT ... FROM ... WHERE ... GROUP BY GROUPING SETS(열1, 열2, ... , 열n) ORDER BY ... 사용 예시 SELECT DEPTNO, JOB, COUNT(*) FROM EMP GROUP BY GROUPING SETS(DEPTNO,..

반응형