DataBase
-
SQL - DML(Data Manipulation Language) INSERT, UPDATE, UPDATE시 주의사항DataBase/Oracle 2022. 1. 27. 02:06
INSERT UPDATE UPDATE시 주의사항 DML(Data manipulation Language) 데이터 조작 언어 테이블에 값을 삽입, 수정, 삭제, 조회하는 언어 INSERT INSERT INTO 테이블명 (컬럼명, 컬럼명, ..) VALUES (데이터, 데이터, ..) 새로운 행을 추가하는 구문 테이블의 행 개수가 증가한다. INSERT - 기본 INSERT INTO EMPLOYEE E( E.EMP_ID, E.EMP_NAME, E.EMP_NO, E.EMAIL, E.PHONE ) VALUES( '900', '장채현', '901123-2080503', 'jang_ch@greedy.com', '01055569512' ); INSERT - VALUES 대신 서브 쿼리 사용 서브 쿼리를 이용한 INS..
-
SQL - 테이블 생성(CREATE) 및 제약 조건(Constraint)DataBase/Oracle 2022. 1. 26. 02:05
CREATE COMMENT 제약조건(NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK CREATE(테이블 생성) 표현식 CREATE TABLE 테이블명 (칼럼명 자료형(크기), 칼럼명 자료형(크기), ...) -- 테이블 생성 예시 CREATE TABLE MEMBER( MEMBER_ID VARCHAR2(20), MEMBER_PWD VARCHAR2(20), MEMBER_NAME VARCHAR2(20) ); 위 예시는 MEMBER_ID, MEMBER_PWD, MEMBER_NAME의 칼럼을 갖는 MEMBER 테이블 생성하였다. 칼럼에 주석 달기 COMMENT ON COLUMN 테이블명. 칼럼명 IS '주석내용'; 칼럼에 주석을 달아 칼럼의 대한 정보를 기재할 수 있다. ..
-
SQL - RANK, DENSE_RANKDataBase/Oracle 2022. 1. 22. 23:37
RANK 함수 동일한 순위가 있을시 동일 순위 개수만큼 건너 뛰고 다음 순위로 계산 EX) 1, 1, 3, 3, 3, 3, 7..... DENSE_RANK 동일한 순위가 있어도 이후 등수를 순서대로 처리 EX) 1, 1, 2, 2, 2, 2, 3, 4, ..... -- 직원 정보에서 급여를 가장 많이 받는 순으로 이름, 급여, 순위 조회 -- RANK 함수 사용 SELECT E.EMP_NAME , E.SALARY , RANK() OVER(ORDER BY E.SALARY DESC) 순위 FROM EMPLOYEE E; -- DENSE_RANK 함수 사용 SELECT E.EMP_NAME , E.SALARY , DENSE_RANK() OVER(ORDER BY E.SALARY DESC) 순위 FROM EMPLOY..
-
SQL - SUBQUERYDataBase/Oracle 2022. 1. 21. 11:22
SUBQUERY 하나의 SELECT 문장의 절 안에 포함된 또 하나의 SELECT 문장 서브쿼리는 메인쿼리가 실행되기 이전에 한번만 실행된다. 비교연산자의 오른쪽에 기술해야하며, 반드시 괄호로 묶어야 한다. SELECT, FROM, WHERE, HAVING, ORDER BY 절에서 사용할 수 있다. 단일행 서브쿼리 서브쿼리의 조회 결과 값이 1개의 행일 때 보통 단일행 서브쿼리 앞에는 일반 비교 연산자를 사용한다. >, =, ANY (SELECT E2.SALARY FROM EMPLOYEE E2 JOIN JOB J2 ON(E2.JOB_CODE = J2.JOB_CODE) WHERE J2.JOB_NAME = '과장' ); ALL 연산자 사용 -- 차장 직급의 급여의 가장 큰 값보다 많이 받는 과장 직급의 --..
-
SQL - JOINDataBase/Oracle 2022. 1. 20. 21:02
JOIN 한 개 이상의 테이블에서 테이터를 조회하기 위해 사용하는 것으로 수행 결과는 하나의 Result Set으로 나오게 된다. 관계형 데이터베이스에서는 하나의 테이블에서 데이터를 가져오거나 외래키를 참조하여 외래키에 해당하는 테이블의 데이터들도 같이 가져오는 경우가 많다. 조인은 기본이 EQUAL JOIN이다 (EQU JOIN이라고도 함) 연결되는 컬럼의 값이 일치하는 행들만 조인된다 일치하는 값이 없는 행은 조인에서 제외 되는 것을 INNER JOIN이라고 한다. JOIN의 기본은 INNER JOIN & EQU JOIN이다. JOIN구문은 오라클과 ANSI 표준이 있으니 둘 다 알아보도록 하자. 오라클 INNER JOIN FROM절에 ' , ' 로 구분하여 합치게 될 테이블명을 기술 WHERE절에 ..
-
SQL - ROLLUP, CUBE, GROUPING, GROUPING SETSDataBase/Oracle 2022. 1. 20. 01:26
ROLLOUP 함수 그룹별 산출한 결과값의 집계를 계산하는 함수 GROUP BY 절에서만 사용한다 인자로 전달받은 그룹 중에 가장 먼저 지정한 그룹별 합계와 총 합계를 구한다. CUBE 함수 그룹별 산출한 결과값의 집계를 계산하는 함수 GROUP BY 절에서만 사용한다 그룹으로 지정된 모든 그룹에 대한 합계와 총 합계를 구한다. GROUPING 함수 ROLLUP이나 CUBE에 의한 집계 산출물이 인자로 전달받은 컬럼 집합의 산출물이면 0을 반환하고,아니면 1을 반환하는 함수이다 SELECT DEPT_CODE , JOB_CODE , SUM(SALARY) , CASE WHEN GROUPING(DEPT_CODE) = 0 AND GROUPING(JOB_CODE) = 1 THEN '부서별합계' WHEN GROUP..
-
SQL - ORDER BY, GROUP BY, HAVINGDataBase/Oracle 2022. 1. 19. 20:04
SQL - ORDER BY, GROUP BY, HAVING 쿼리 실행 순서 FROM -> CONNECT BY -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY FROM절에서 만든 별칭은 모든 곳에서 쓸 수 있다. SELECT 절에서 만든 별칭은 HAVING과 그 이전 절에서 쓸 수 없다. ORDER BY 절 SELECT한 컬럼에 대해 정렬을 할 때 작성하는 구문 SELECT 구문의 가장 마지막에 실행 GROUP BY 절 집계 함수를 이용하기 위해서는 집계함수가 적용될 그룹의 기준을 GROUP BY절에 기술하여 사용해야 한다 실습 예제 - GROUP BY -- DEPT_CODE 기준으로 그루핑 SELECT COUNT(*) , DEPT_CODE FROM EMPLO..