반응형

문법 37

[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] 제약 조건(4) - 외래 키(FOREIGN KEY)

이 게시물은 Database GUI Oracle SQL Developer의 아래 버전 정보를 기준으로 작성되었습니다. Java(TM) 플랫폼 : 1.8.0_321 Oracle IDE : 4.1.5.21.78 외래 키(FOREIGN KEY) 설명 외래 키(이하 FK)는 다른 테이블의 열을 참조하여 존재하는 값만 입력할 수 있는 제약 조건이다. 예를 들어 한 학원에서 강의 시스템을 관리하는 데 '강의실' 테이블과 '강의' 테이블이 있다고 가정하자 각 '강의'마다 '강의실'이 배정해야 한다고 할 때, 한 직원이 '강의' 테이블의 '강의실코드' 컬럼에 실수로 'R05'를 기입하면 어떻게 될까? 다른 직원들이 그 자료를 참조했을 때 혼란을 겪게 될 것이다. '강의실코드'가 'R05'에 해당하는 강의실은 존재하지 ..

[Oracle] DDL(6) - 뷰(VIEW)

이 게시물은 Database GUI Oracle SQL Developer의 아래 버전 정보를 기준으로 작성되었습니다. Java(TM) 플랫폼 : 1.8.0_321 Oracle IDE : 4.1.5.21.78 뷰(VIEW) 개념 하나 이상의 테이블을 조회하는 SELECT문을 저장한 객체. 물리적 데이터를 따로 저장하지 않음. SELECT문의 FROM절에 사용하면 특정 테이블을 조회하는 것과 같은 효과를 얻을 수 있음. 장점 1. SELECT문의 복잡도를 완화하는 편리성 2. 테이블의 특정 열을 노출시키지 않는 보안성 뷰 생성 및 조회 뷰 생성 및 세부 문법 설명 CREATE [OR REPLACE] [FORCE | NOFORCE] VIEW [뷰이름] [열이름1, 열이름2, ... 열이름N(선택)] AS [저..

[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] 서브쿼리(4) - 다중열 서브쿼리를 통한 WHERE절 비교

이 게시물은 Database GUI Oracle SQL Developer의 아래 버전 정보를 기준으로 작성되었습니다. Java(TM) 플랫폼 : 1.8.0_321 Oracle IDE : 4.1.5.21.78 다중열 서브쿼리를 통한 WHERE절 비교 설명 SELECT절에 비교할 데이터를 여러 개 지정하는 방식. 메인쿼리에 비교할 열을 괄호로 묶어 명시하고 서브쿼리에서는 괄호로 묶은 데이터와 같은 자료형 데이터를 SELECT절에 명시하여 사용함. 사용 예시 SELECT * FROM EMP WHERE (DEPTNO, SAL) IN ( SELECT DEPTNO, MAX(SAL) FROM EMP GROUP BY DEPTNO); 결과

[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(4) - 외부 조인(OUTER JOIN)

이 게시물은 Database GUI Oracle SQL Developer의 아래 버전 정보를 기준으로 작성되었습니다. Java(TM) 플랫폼 : 1.8.0_321 Oracle IDE : 4.1.5.21.78 외부 조인(OUTER JOIN) 설명 외부 조인(OUTER JOIN) : 어느 한쪽의 데이터가 NULL이더라도 결과를 출력할 때 포함시켜야 하는 경우 강제로 출력할 때 사용하는 조인 방식 문법 LEFT OUTER JOIN : WHERE TABLE1.COL1 = TABLE2.COL1(+) RIGHT OUTER JOIN : WHERE TABLE1.COL1(+) = TABLE2.COL1 SQL-99 표준의 OUTER JOIN은 여기를 클릭 사용 예시 -- LEFT OUTER JOIN query1 SELEC..

[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] 데이터 그룹화(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..

반응형