자린고비 독학하기/자린고비 코딩하기 (81) 썸네일형 리스트형 SQL - JOIN JOIN CARTESIAN PRODUCT EQUI JOIN NON-EQUI JOIN SELF JOIN OUTER JOIN CARTESIAN PRODUCT (카티션 프로덕트 / 카티션 곱) 두 개 이상의 테이블이 조인될 때, WHERE 절에 조건이 지정되지 않아 전체 행이 대응되는 것. 의미가 없는 값이 출력된다. 동등 조인 : EQUI JOIN 대상 테이블에서 속성의 값이 같은 열끼리 대응시킨다. 가장 많이 사용하는 방법이다. SELECT * FROM emp, dept WHERE emp.deptno = dept.deptno; SELECT ename, dname FROM emp, dept WHERE emp.deptno = dept.deptno AND emp.ename = 'SCOTT' ; 유의: SELEC.. SQL - 그룹 함수 / GROUP BY / HAVING 그룹 함수 다중 데이터를 받아서, 단일 행으로 결과가 반환되는 함수이다. SUM 합계를 구하는 함수 SELECT SUM(sal) FROM emp; AVG 평균을 구하는 함수 SELECT AVG(sal) FROM emp; MAX / MIN 최대 / 최소를 구하는 함수 SELECT MAX(sal),MIN(sal) FROM emp; COUNT 해당 컬럼에 문자가 있는 열의 개수를 구하는 함수 COUNT(*)은 컬럼 개수 전체를 반환한다. SELECT COUNT (comm) FROM emp; SELECT COUNT(*), COUNT (comm) FROM emp; GROUP BY 특정 속성을 기준으로 하여 해당 값을 그룹화할 때 사용되는 함수이다. 반드시 그룹 함수와 함께 사용된다. SELECT deptno FR.. SQL - NVL / DECODE / CASE NVL NULL을 다른 값으로 변환하는 함수 NVL(속성값, 변환값) NVL(comm,0) : comm 칼럼을 연산할 때, 해당 컬럼 중 값이 NULL인 것은 0으로 변환해서 연산한다. DECODE DECODE (속성 컬럼, 속성 컬럼 값 A, '변환할 값', 속성 컬럼 값 B, '변환할 값', 속성 컬럼 값 C, '변환할 값' 'DEFAULT'); // A B C 이외의 값은 DEFAULT 처리한다. switch ~ case 문과 유사하다. CASE CASE 속성컬럼 WHEN 속성컬럼값A THEN '변환값' WHEN 속성컬럼값B THEN '변환값' WHEN 속성컬럼값C THEN '변환값' END if 중첩문과 유사하다. "NULL"은 무엇인가? NULL 정해지지 않은 값이자 알 수 없는 값. 0과 같지 않다. NULL은 기본적으로 연산, 할당, 비교가 불가능하다. 프로그래밍 언어별 NULL 차이 / NULL로 사용되는 문자 SQL - 날짜 함수 / 날짜 연산 날짜 함수 날짜 형에 사용하며, 날짜나 기간을 반환해 주는 함수이다. 기간은 주로 일 단위로 계산된다. SYSDATE 현재 시간을 반환해 주는 함수이다. SELECT sysdate-1 as "prev", sysdate as "today", sysdate+1 as "next" FROM dual; MONTHS_BETWEEN(A,B) 두 날짜 사이의 개월 수를 구하는 함수. A와 B에 날짜 값을 넣으면 된다. 활용 : 소수점을 없애자 ADD_MONTH(기준일, 더할 개월 수) 기준일에 두 번째 인자의 개월 수를 더해서 반환해 준다. 가령 4월에 4개월을 추가했다면, 8월이 반환된다. NEXT_DAY(기준일, 원하는 요일) 기준일로부터 원하는 요일의 가장 빠른 값을 반환해 준다. '금' / '금요일' 모두 가능.. SQL - 숫자 함수 DUAL 오라클이 가지고 있는 표준 테이블. sys의 소유이나, Oracle 내에서 전체 사용자가 접근 가능하다. 한 행에 오직 하나의 컬럼만 담고 있으며, 산술 연산이나 날짜 연산에 주로 이용된다. sysdate : 불러온 현재의 시간 값을 반환해 주는 날짜 함수. 숫자 연산 ABS 함수 (절댓값 반환) FLOOR 함수 (소수점 절삭) ROUND 함수 (반올림) TRUNC 함수 (특정 자리에서 잘라내는 함수) MOD 함수 (나머지 값) TRUNC + MOD + 연산자 활용 SQL - ORDER BY / DISTINCT / AS ORDER BY 문자는 아스키 코드 값을 기준으로 정렬됨. * 실제 테이블이 정렬되어 저장되는 것은 아님. 버퍼에서 일시적으로 정렬되는 것이기 때문에, 다시 테이블을 부르면 이전 값 그대로 출력됨. SELECT * FROM emp; ASC SELECT * FROM emp ORDER BY sal ASC; SELECT * FROM emp ORDER BY sal; DESC SELECT * FROM emp ORDER BY sal DESC; 활용 가장 최근에 입사한 사람부터 출력하는 SQL문 SELECT * FROM emp ORDER BY hiredate DESC; DISTINCT AS SELECT ename, sal, sal*12+NVL(comm,0) FROM emp ; SELECT ename, sal, sal.. ORACLE TABLE 이전 1 ··· 6 7 8 9 10 11 다음