oracle

    [ORACLE]서브쿼리

    [ORACLE]서브쿼리

    SQL내부에서 사용된 sQL 사용위치에 따라 SELECT 절 : scalar subquery 반드시 서브쿼리가 하나의 행, 하나의 컬럼을 반환해야 한다 -- 하나의 행, 하나의 컬럼안에 여러개의 행, 컬럼 표현 불가 SELECT empnom, ename, ~~(SELECT deptno, deptname FROM dept)~~ FROM emp; FROM절 : in-line view WHERE절 : subquery 반환하는 행, 컬럼 수에 따라 단일행, 단일컬럼 ( = ) 단일행, 복수컬럼 다중행, 단일컬럼 ( IN , ANY, ALL ) IN 비교시에 NULL 주의 4. 다중행, 복수컬럼 복수컬럼에서 **pairwise , non-pairwise** ```sql -- 복수컬럼 쿼리 예제 SELECT * F..

    [ORACLE]JOIN 의 종류 (OUTER, CROSS)

    [ORACLE]JOIN 의 종류 (OUTER, CROSS)

    조인 성공 여부로 데이터 조회를 결정하는 구분 방법 INNER 조인 조인에 성공하는 데이터만 조회하는 조인기법 OUTER 조인 LEFT / RIGHT / FULL OUTER 조인에 실패하더라도, 개발자가 지정한 기준이되는 테이블의 데이터는 나오도록 하는 조인 LEFT OUTER JOIN : 조인키워드 왼쪽에 위치하는 테이블 기준삼아 RIGHT OUTER JOIN : 조인키워드 오른쪽에 위치하는 테이블 기준삼아 FULL OUTER JOIN : LEFT + RIGHT - 중복되는것 --동일한 테이블 끼리 조인되었기 때문에 SELF-JOIN --조인 조건을 만족하는 데이텀나 조회되었기 때문에 INNER-JOIN SELECT e.empno, e.ename, e.mgr, m.ename FROM emp e, emp..

    [ORACLE / ANSI] JOIN

    [ORACLE / ANSI] JOIN

    ⭐ RDBMS는 중복을 최소화하는 형태의 데이터베이스 컬럼을 확장하는 방법(데이터를 연결) 분산된 다른 테이블의 컬럼을 가져온다. ANSI - SQL (American National Standards Institute) ANSI - NATURAL JOIN 조인하고자 하는 테이블간 컬럼명이 동일할경우 해당 칼럼으로 행을 연결 컬럼 이름뿐 아니라 데이터 타입도 동일해야함 SELECT [colummn] FROM [table1] NATURAL JOIN [table2] SELECT * FROM emp NATURAL JOIN dept; SELECT emp.empno, emp.ename, deptno, dept.dname -- 조인조건으로 사용된 컬럼은 테이블 한정자를 붙이면 에러 FROM emp NATURAL J..

    [ORACLE] GROUP BY 함수

    여러행을 입력으로 받아서 하나의 행으로 반환하는 함수 SELECT [행들을 묶을 기준1],[기준2], 그룹함수 FROM table; [WHERE] GROUP BY 행들을 묶을 기준1 , 기준2 ORDER BY —; NULL값을 무시 SELECT deptno, SUM(comm) FROM emp GROUP BY deptno; GROUP BY를 적용해 여러행을 하나의 행으로 묶게 되면 SELECT 절에 기술할 수 있는 컬럼이 제한 됨 ⇒ SELECT 절에 기술되는 일반칼럼들은(그룹함수적용하지 않은) 반드시 GROUP BY 절에 기술 되어야 한다. 단, GROUPING에 영향을 주지 않는 고정된상수, 함수는 기술하는 것이 가능 --code1 SELECT deptno, SUM(sal) FROM emp GROUP ..

    [ORACLE] SELECT 결합연산

    결합 연산 숫자 날짜 타입에 관해 연산 가능. 숫자 SELECT sal, sal+500, sal-500, sal/5 , 500 FROM emp; 날짜 날짜 연산 SQL에서는 정수를 일자 취급 '2020년 6월 25일' + 5 : '2020년 6월 30일' 문자 문자열 결합 연산자 : || 문자열 결합 함수 : CONCAT(문자열1, 문자열2) //문자열 결합 예제 SELECT userid || usernm AS id_name, CONCAT(userid, usernm) AS concat_id_name FROM users; //임의 문자열 결합 SELECT '아이디 : ' || userid FROM users; //앞뒤로 임의 문자열 결합 SELECT 'SE..

    [ORACLE] SELECT - SQL

    SELECT SELECT * | {[DISTINCT] column | expression [alias], ...} FROM table [alias] WHERE [조건] [ORDER BY column]; expression : 컬럼 값을 가공을 하거나, 존재하지 않는 새로운 상수값(정해진 값)을 표현 연산을 하더라도 해당 SQL조회 결과에만 나올 뿐이고 실제 테이블의 데이터에는 영향 주지 않는다. alias : 칼럼의 이름을 바꿀수 있음 // AS사용 혹은 컬럼 뒤에 바로 삽입 ex) 컬럼 | [expression] AS [별칭명] 별칭을 소문자나 공백을 적용하고 싶을때 "" 사용 SELECT empno, ename, sal s, comm, sal+comm AS "sal plus comm" FROM emp..

    [ORACLE] 리터럴(literal) 표기법

    literal 표기법 literal : 값 자체 literal 표기법 : 값 을 표현하는 방법 문자 test 자바 : "test" // 싱글로 하면 에러남 SQL : 'test' // 날짜 자바 : Date 객체로 제공, 메소드를 통해 날짜설정 SQL : 'YY/MM/DD' // "YYYY/MM/DD" 서버설정에 따라 다르게 해석 가능 국가별로 다르게 해석이 가능하기 때문에 DATE리터럴 보다는 문자열을 DATE타입으로 변경해주는 함수를 주로 사용 TO_DATE('날짜문자열', '첫번째 인자 형식') SELECT * FROM emp WHERE hiredate >= TO_DATE('1982/01/01', 'YYYY/MM/DD')

    [ORACLE] SQL 데이터 타입

    SQL 데이터 타입 테이블의 컬럼 구성 정보 확인: DESC ; 문자 VARCHAR2(9) - 9바이트 숫자 NUMBER(4) - 4자리수 NUMBER(7, 2) -정수5자리 소수2자리 날짜 DATE //날짜는 정수 일수로 계산됨 SELECT hiredate, hiredate+5, hiredate -5 FROM emp; NULL (NULL) 아직 모르는 값, 할당되지 않은 값 NULL과 숫자 0은 다르다 NULL과 문자 공백은 다르다 NULL을 피연산자로 하는 연산의 결과는 항상 NULL EX) NULL+ 500 = NULL