SQL

· SQL/Oracle
Natural Join 이란? 두 테이블 간의 동일한 이름을 갖는 모든 컬럼들에 대해 등가조인(EQUI JOIN)을 수행한다. * 등가조인에 대해서는 11번 글 다시 참고 https://the-underwater.tistory.com/23?category=809471 11_SQL JOIN문 JOIN 이란? - 한개가 아니라, 여러개의 테이블에서 정보를 가져와서 결과를 만들어 주는 기법 - 관계형 데이터베이스 (RDBMS) 의 가장 핵심 기술중 하나 - 표준화된 ANSI형 JOIN 방식이 있고, 각각의 DBMS마다 다.. the-underwater.tistory.com Natural Join 과정 다음과 같은 릴레이션 r과 s가 있을 때, natural join의 과정을 살펴보자. Natural Join과..
· SQL/Oracle
View란? - 가상의 테이블 - 실제 Table 에는 데이터가 있지만, View 에는 데이터는 없고 SQL만 저장 - View에 접근할때는 View에 들어있던 SQL의 수행된 결과를 가져오는 것 View를 사용하는 목적 보안성 : 특정 테이블의 컬럼들이 보여지면 안되는 경우 편의성 : 여러개의 테이블을 JOIN하는게 번거로울 때 view로 만들어 놓으면 편리 View의 사용 1. 뷰의 생성 (1) View 사용 권한부여 오라클의 경우 View 를 생성하려면 권한을 부여 받아야 한다 시스템 계정으로 create view 권한을 view를 사용할 계정에 부여하자. >> GRANT CREATE VIEW TO [USER]; >> GRANT CREATE PROCEDURE TO [USER]; 부여받은 권한에 대해..
· SQL/Oracle
서브쿼리(Sub Query)란? 메인쿼리(Main Query)라는 큰 틀이 있을 때, 메인쿼리문의 내에 작성된 또 다른 쿼리문 * 예제로 이해해보자 Ex) t_emp 테이블에서 scott 보다 급여를 많이 받는 사람의 이름과 급여를 출력하라. 위 문제에 대한 쿼리문은 대략 아래와 같이 작성할 수 있다. >> SELECT 이름, 급여 FROM t_emp WHERE 급여 > (scott의 급여); 그럼 WHERE절에 붙은 (scott의 급여)를 어떻게 얻을 수 있을까? 이름이 scott인 직원의 급여를 반환받는 쿼리문을 작성해보자. >> SELECT 급여 FROM t_emp WHERE 이름 = 'SCOTT'; 이제 우리는 저 쿼리문으로 scott의 급여를 얻을 수 있게 됐다. 그럼 이제 메인 쿼리문으로 돌아..
· SQL/Oracle
JOIN 이란? - 한개가 아니라, 여러개의 테이블에서 정보를 가져와서 결과를 만들어 주는 기법 - 관계형 데이터베이스 (RDBMS) 의 가장 핵심 기술중 하나 - 표준화된 ANSI형 JOIN 방식이 있고, 각각의 DBMS마다 다른 사용방식이 있으나 본문에서는 ANSI와 ORCLE만 다룬다. JOIN의 종류 여러개의 테이블 중 어떤 테이블을 기준으로 데이터를 가져올것인지에 따라 JOIN의 이름이 다르다. 다음 (1)~(5)를 먼저 보고 (6)을 보자. (1) Inner Join : 테이블 간의 공통 요소 (교집합) (2) Left Join : 왼쪽 테이블의 데이터 + 테이블 간의 공통 요소 (3) Right Join : 오른쪽 테이블의 데이터 +테이블 간의 공통 요소 (4) Full Join : 테이블들..
· SQL/Oracle
그룹함수(Aggregate Function)란? 레코드를 특정 그룹으로 묶고, 그룹에 대해 연산을 실행하는 함수 그룹함수는 n개의 레코드에 대한 연산결과로 결과 값을 1개 또는 (n-x)개의 결과 값을 얻는다. n개의 레코드에 대해 n개의 결과값을 얻는 단일행 함수와 쓰임이 다르다. 그룹함수의 사용 (GROUP BY, HAVING절) 그룹함수는 단일행함수와 달리 모든 레코드에 1:1로 대응되는 함수가 아니라, 특정 그룹으로 레코드를 묶어서 연산을 적용하는 함수이기 때문에, 그룹함수를 적용하려면 먼저 그룹을 어떻게 묶을것인지 사용자가 반드시 명시해야 한다. 이때 사용되는 것이 GROUP BY절이고, 항상 특정 컬럼이 기준이 된다. 예제를 보자. Ex1) t_professor 테이블에서 '학과(deptno)..
· SQL/Oracle
날짜관련 단일행함수의 종류 (1) 기본적인 DATE타입의 연산 SELECT SYSDATE "오늘", SYSDATE + 1 "내일", -- 24시간 뒤 SYSDATE - 2 "그저께", SYSDATE + 1/24 "한시간 뒤" FROM dual; * 날짜 차이 계산 SELECT SYSDATE "오늘", SYSDATE - TO_DATE('2019-09-09') "9일로부터 몇일?" FROM dual; (2) MONTHS_BETWEEN() 두 날짜 사이의 개월 수 차이 SELECT MONTHS_BETWEEN('2019-03-01','1919-03-01') 양수결과, MONTHS_BETWEEN('1919-03-01','2019-03-01') 음수결과, MONTHS_BETWEEN('2018-09-20','2018..
邓伦
'SQL' 카테고리의 글 목록