목록SQL (36)
으나님의 잡다한 개발상식
1. GRANT 사용자에게 권한을 부여하는 구문 GRANT PRIVILEGES ON 테이블명 TO 사용자; 1) PRIVILEGES(권한) - GRANT SELECT ON 테이블명 TO 사용자 : 지정된 테이블에 SELECT 권한 부여 - GRANT INSERT ON 테이블명 TO 사용자 : 지정된 테이블에 INSERT 권한 부여 - GRANT UPDATE ON 테이블명 TO 사용자 : 지정된 테이블에 UPDATE 권한 부여 - GRANT DELETE ON 테이블명 TO 사용자 : 지정된 테이블에 DELETE 권한 부여 - GRANT REFERENCES ON 테이블명 TO 사용자 : 지정된 테이블을 참조하는 제약조건을 생성하는 권한 부여 - GRANT ALTER ON 테이블명 TO 사용자 : 지정된 테이..
WITH 구문은 서브쿼리를 사용해서 임시 테이블이나 뷰처럼 사용할 수 있는 구문이다. 서브쿼리 블록에 별칭을 지정할 수 있다. 옵티마이저는 SQL을 인라인 뷰나 임시 테이블로 판단한다.
ROWID는 ORACLE DB 내에서 데이터를 구분할 수 있는 유일한 값이다. ROWID는 'SELECT ROWID, EMPNO FROM EMP'와 같이 SELECT문으로 확인 가능하다. ROWID를 통해 데이터가 어떤 데이터 파일, 어떤 블록에 저장되어 있는지 알 수 있다.
1. 형변환 1) 명시적 형변환 : 형변환 함수를 사용하는 경우 - TO_NUMBER(문자열) - TO_CHAR(숫자 혹은 날짜, [FORMAT]) - TO_DATE(문자열, FORMAT) 2) 암시적 형변환 : DBMS가 자동으로 형변환 하는 경우 SELECT * FROM EMP WHERE EMPNO = '100'; EMPNO가 숫자형 데이터 타입이라고 가정하자. 여기서는 비교값을 '100'으로 따옴표로 묶었기 때문에 '100'은 문자형이다. 이 경우 EMPNO를 ORACLE이 자동으로 TO_CHAR(EMPNO)로 변환해서 데이터 타입을 일치시킨다. 3) 암시적 형변환과 인덱스 인덱스는 데이터를 빠르게 조회하기 위해 인덱스 키를 기준으로 정렬해 놓은 데이터이다. 그런데 기본적으로 인덱스는 변형이 발생하..
- COUNT(*) : NULL값을 포함한 모든 행의 수 계산 - COUNT(컬럼명) : NULL값을 제외한 행 수 계산
1. NVL - NULL이면 다른 값으로 바꿈 NVL(컬럼명, 바꿀 값) EX) NVL(MGR,0) : MGR이 NULL이면 0으로 변환 2. NVL2 - NULL일 때와 NULL이 아닐 때 지정한 값으로 변환 NVL2(컬럼명, 바꿀 값1, 바꿀 값2) EX) NVL2(MGR, 1, 0) : MGR이 NULL이 아니면 1, NULL이면 0을 반환 3. NULLIF - 두 개의 값이 같으면 NULL, 같지 않으면 첫 번째 값 반환 NULLIF(값1, 값2) EX) NULLIF(EXP1, EXP2) : EXP1과 EXP2의 값이 같으면 NULL을, 같지 않으면 EXP1을 반환 4. COALESCE - NULL이 아니면 값을 반환 COALESCE(컬럼명, 값) EX) COALESCE(MGR, 1) : MGR이..