목록oracle (56)
정미나닷컴
INNER JOIN- 가장 일반적인 JOIN 형태- 두 개 이상의 테이블의 공통 컬럼을 JOIN 조건으로 만들어 데이터 조회- JOIN에 참여하는 두 컬럼은 동일한 데이터 타입(필수사항은 아님)- WHERE 절에는 일반 조건과 JOIN 조건을 병행 사용 가능- SELF JOIN > 자기 자신과 JOIN- ANTI JOIN > NOT IN 연산자를 사용한 JOIN- SEMI JOIN > EXISTS 연산자를 사용한 JOINSELECT A.EVENT_NO, B.CUST_NO FROM TEVENT A, TCUSTOMER B WHERE A.CUST_ID = B.CUST_ID;▶ 이벤트에 참여한 고객의 데이터 출력 Outer JOIN- 두 테이블에서 어느 한 테이블의 데이터가 없을 경우, 전체 row수를 보존하면..
* SET 연산자로 묶이는 SELECT 문장의 열의 개수가 반드시 같아야 함 * SET 연산자로 연결되는 SELECT 문장에서 컬럼들의 순서와 데이터 타입이 일치해야 함 UNION - A와 B란 데이터 셋이 있을 경우, A∪B로 표현되는 집합 - 두 테이블의 중복되지 않은 값들을 반환 SELECT cust_id FROM tb_event WHERE event_no=1 UNION SELECT cust_id FROM tb_event WHERE event_no=2 => 1번 이벤트와 2번 이벤트에 참여한 고객들의 리스트 UNION ALL - UNION과 같으나 두 테이블의 중복되는 값까지 반환 + UNION 연산자는 연결된 쿼리에서 동일한 row는 제거하고 한 row만 반환하게 된다. 따라서 추가적으로 필터링하..
HAVING절 - GROUP BY 절과 같이 사용되어 SELECT 문장에서 집계 함수를 사용한 조건을 명시하는 절, 집계 함수용 WHERE 절, 항상 GROUP BY 절과 같이 사용되어야 한다. SELECT department_id, COUNT(*) FROM EMPLOYEES WHERE department_id IS NOT NULL GROUP BY department_id HAVING COUNT(*) GROUP BY -> HAVING + SELECT 문장 실행 순서 SELECT -- ⑤ FROM -- ① WHERE -- ② GROUP BY -- ③ HAVING -- ④ ORDER BY -- ⑥ => SELECT 절에서 정의한 alias는 ORDER BY 절에서만 사용 가능 (일반조건을 HAVING절에 명..
- 생성 CREATE USER 사용자명 IDENTIFIED BY 패스워드 DEFAULT TABLESPACE 테이블스페이스명 TEMPORARY TABLESPACE TEMP PROFILE DEFAULT ACCOUNT UNLOCK; + 주의사항 패스워드에 특수문자가 있을 경우 반드시 ""(쌍!따옴표)로 싸주어야 한다. 이거땜에 완전 삽질;; ㅜ_ㅜ + DBA_USERS 테이블에서 생성된 계정을 확인할 수 있다. - 패스워드 변경 ALTER USER 사용자명 IDENTIFIED BY 패스워드 - 사용자 권한 부여 GRANT 부여할 권한 TO 사용자명 - 사용자 권한 회수 REVOKE 회수할 권한 TO 사용자명 + 권한들 CREATE SESSION : 데이터 베이스를 연결할 수 있는 권한 CREATE ROLE :..
LOB(Large Object) - 대용량의 데이터를 저장하고 관리하기 위해 오라클에서 제공하고 있는 기본 데이터 타입 * LONG 보다 LOB이 좋은 이유 - 여러 데이터 타입으로 사용 가능 - 4GB까지 지원(LONG은 2GB) - 랜덤 접근 가능(LONG은 순차적으로 접근) - LOB 컬럼을 가진 테이블의 데이터를 조회할 경우, 오라클은 LOB 로케이터만 조회하지만 LONG 컬럼의 경우에는 데이터 전체를 조회(로케이터: LOB 타입의 데이터가 실제로 저장되는 위치를 가리키는 포인터) - LOB 타입 컬럼에 데이터를 저장할 때, 실제 LOB 값은 독립적인 다른 세그먼트에 저장, 해당 로우에는 오직 LOB 로케이터만 저장(부하 발생을 최소) 내부 LOB 타입 - 오라클 내부에 데이터가 저장되는 타입, ..
ADD_MONTHS(date, integer) - 임의의 날짜에 개월 수를 더한 뒤 그 결과를 반환하는 함수 SELECT ADD_MONTHS(TO_DATE('2010-01-01'), 1) FROM DUAL; MONTH_BETWEEN(date1, date2) - 두 날짜 사이의 개월 수가 얼마인지를 구하는 함수 (date1-date2) - 파라미터 생략 불가 SELECT MONTHS_BETWEEN(TO_DATE('2010-01-01'), TO_DATE('2010-12-01')) FROM DUAL; NEXT_DAY(date, char) - date 이후의 날짜 중에서 주중에 char로 명시된 첫 번째 일자를 반환 - char에는 요일명을 입력, 숫자도 가능(1:일, 2:월... 7:토) - 오라클 설치 시 ..
SYSDATE - 시스템의 현재 날짜를 반환, 파라미터 없음(서버) CURRENT_DATE - 현재 세션의 시간대(TIME_ZONE)를 기준으로 한 현재 날짜를 반환, 파라미터 없음(클라이언트) SYSTIMESTAMP - SYSDATE와 동일하지만 반환 타입이 TIMESTAMP WITH TIME ZONE, 파라미터 없음 CURRENT_TIMESTAMP - CURRENT_DATE와 동일하지만 반환 타입이 TIMESTAMP WITH TIME ZONE - 파라미터로 TIMESTAMP WITH TIME ZONE의 정밀도 명시, 디폴트는 6 LOCALTIMESTAMP - CURRENT_TIMESTAMP와 동일하지만 반환 타입이 TIMESTAMP