목록오라클 (59)
정미나닷컴
- 생성 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 :..
COUNT([DISTINCT, ALL] expr)- 테이블에 있는 데이터(row)가 몇 건이 존재하는지를 반환하는 함수, 디폴트는 ALL - ()안에 '*'이 아닌 컬럼명이 사용될 경우 NULL 인식 안됨 * 중복값을 제외한 COUNT SELECT COUNT(DISTINCT EMPLOYEE_ID) FROM POLL; /* 중복 투표 제외한 COUNT */ SUM([DISTINCT, ALL] expr)- 파라미터로 들어오는 expr의 전체 합계를 계산하여 그 결과를 반환하는 함수 MAX([DISTINCT, ALL] expr) & MIN([DISTINCT, ALL] expr)- MAX 함수는 expr의 최대값을, MIN 함수는 최소값을 구하는 함수 * WHERE 절에서는 사용불가 SELECT EMPLOYEE..
DECODE - IF...ELSEIF...ELSE와 같은 기능을 하는 SQL 함수 DECODE ( expr, search1, result1, search2, result2, ..., default_result ) expr의 결과가 search1이면 result1, search2이면 result2를 return default_result는 생략 가능 (생략시 NULL로 대체됨) CASE - 기능적 측변에서 DECODE와 흡사하지만 좀 더 확장된 기능을 제공 [기본형] CASE 대상값 WHEN 비교값1 THEN 처리1 WHEN 비교값2 THEN 처리2 ... ELSE 디폴트 처리 END [검색형] CASE WHEN 비교조건1 THEN 처리1 WHEN 비교조건2 THEN 처리2 ... ELSE 디폴트 처리 END
RANK() - 순위를 반환하는 함수 SELECT EMPLOYEE_ID, SALARY, RANK() OVER (ORDER BY SALARY DESC) SALARY_RANKING FROM EPLOYEES; DENSE_RANK() - RANK()와 비슷하지만 중복된 순위 무시 SELECT EMPLOYEE_ID, SALARY, DENSE_RANK() OVER (ORDER BY SALARY DESC) SALARY_RANKING FROM EPLOYEES ; ROW_NUMBER() - 1부터 각 로우별로 순차적인 값을 반환 SELECT EMPLOYEE_ID, SALARY, ROW_NUMBER() OVER (ORDER BY SALARY DESC) SALARY_RANKING FROM EPLOYEES ; * 주의 - 잘..
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