반응형

개발 지식/[DBMS] Oracle 76

[Oracle] DML(3) - 날짜 데이터 INSERT

이 게시물은 Database GUI Oracle SQL Developer의 아래 버전 정보를 기준으로 작성되었습니다. Java(TM) 플랫폼 : 1.8.0_321 Oracle IDE : 4.1.5.21.78 날짜 데이터 INSERT 아래의 테이블이 없으면 여기를 클릭하여 테이블을 생성하고 돌아오자. SELECT * FROM TB_EMP; 아래 두 쿼리문을 실행해 두 데이터를 삽입해 보자. INSERT INTO TB_EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) VALUES (9999, 'GSP', 'CEO', NULL, '2022/06/06', 9999, NULL, 10); INSERT INTO TB_EMP (EMPNO, ENAME, JOB, MG..

[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] DML(1) - 들어가기 전에

이 게시물은 Database GUI Oracle SQL Developer의 아래 버전 정보를 기준으로 작성되었습니다. Java(TM) 플랫폼 : 1.8.0_321 Oracle IDE : 4.1.5.21.78 DML 챕터에 들어가기 전 준비할 것 DML(데이터 조작어, Data Manipulation Language)은 데이터베이스에 대해 데이터 조회, 등록, 수정, 삭제를 위한 데이터베이스 언어다. 앞서 쭉 봐 왔던 SELECT도 그중 하나이며, 그 외 INSERT, UPDATE, DELETE가 있다. 이후 포스트는 이러한 DML에 관해 다룰 것이다. 이에 앞서 아래의 쿼리를 순차적으로 실행하여 학습용 테이블을 사전에 생성하도록 하자. 참고로 테이블을 삭제할 때는 DROP TABLE [테이블명]; 명렁어..

[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(5) - SQL-99 표준 JOIN

이 게시물은 Database GUI Oracle SQL Developer의 아래 버전 정보를 기준으로 작성되었습니다. Java(TM) 플랫폼 : 1.8.0_321 Oracle IDE : 4.1.5.21.78 SQL-99 표준 JOIN 설명 앞서 오라클의 JOIN에 대해서 다루었다. 하지만 JOIN은 오라클에서만 사용할 수 있는 것이 아니며 DBMS마다 허용되는 JOIN의 문법이 다를 수 있다. 이럴 경우 어떠한 문제점이 생길까? 만약 운영 중인 시스템이나 진행 중인 프로젝트에서 부득이하게 DBMS를 교체하게 될 경우, 수많은 JOIN문을 수정해야 하는 최악의 사태가 발생한다. 이를 대비하여 사용할 수 있는 것이 SQL-99 표준 JOIN이다. SQL-99 표준 JOIN은 다른 DBMS에서도 사용 가능한 ..

[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(3) - 비등가 조인(NON-EQUI JOIN), 자체 조인(SELF JOIN)

이 게시물은 Database GUI Oracle SQL Developer의 아래 버전 정보를 기준으로 작성되었습니다. Java(TM) 플랫폼 : 1.8.0_321 Oracle IDE : 4.1.5.21.78 비등가 조인(NON-EQUI JOIN), 자체 조인(SELF JOIN) 설명 비등가 조인(NON-EQUI JOIN) : 등가 조인 외의 조인 방식 자체 조인(SELF JOIN) : 하나의 테이블을 여러 개의 테이블처럼 활용하여 조인하는 조인 방식 사용 예시 -- query1 (NON-EQUI JOIN) SELECT * FROM EMP E, SALGRADE S WHERE E.SAL BETWEEN S.LOSAL AND S.HISAL; -- query2 (SELF JOIN) SELECT E1.EMPNO ,..

반응형