6주차
Oracle Live SQL 설치하기
7주차
- DDL: Data Definition Language (CREATE, ALTER, RENAME, DROP)
- DML: Data Manipulation Language (INSERT, SELECT, UPDATE, DELETE)
- DCL: Data Control Language (GRANT, REVOKE)
- TCL: Transaction Control Language (COMMIT, ROLLBACK)
<DDL: 제약 조건>
NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, DEFAULT, CHECK (입력 값 범위 제한)
- 제약조건 삭제 : DROP CONSTRAINT 조건명;
- 제약조건 추가 : ADD CONSTRAINT 조건명 조건 (칼럼명);
- TRUNCATE TABLE: 테이블은 남기고 데이터만 지우고 싶을 때 사용
8주차
- DROP과 TRUNCATE는 AUTO COMMIT이므로 신중해야 함
<합성연산자(CONCAT)>
- ORACLE ||
- SQL +
9주차
<문자 유형 비교 방법>
- 양쪽이 모두 CHAR 타입인 경우
- 길이가 서로 다른 CHAR 타입이면 작은 쪽에 공백을 추가하여 길이를 같게 만든 후 비교
- 서로 다른 문자가 나올 때 까지 비교
- 뒤에 나오는 BLANK의 수만 다르다면 같은 값으로 결정
- 달라진 첫 번째 문자의 값에 따라 크기를 결정
-한 쪽이 VARCHAR 타입인 경우
- 길이도 같고 다른 문자가 없다면 같다고 판단
- 서로 다른 문자가 나올 때 까지 비교
- 길이가 다르면 짧은 것이 끝날 때까지만 비교 후 길이가 긴 것을 크다고 판단
- 상수값과 비교할 경우
- 상수 쪽을 변수 타입과 동일하게 바꾸고 비교
- CHAR 타입이면 CHAR 비교 방식, VARCHAR 타입이면 VARCHAR 비교 방식을 적용
<연산자 우선순위>
1 순위 : 괄호( )
2 순위 : NOT 연산자
3 순위 : 비교 연산자, SQL 비교 연산자
4 순위 : AND
5 순위 : OR
<ROWNUM>
- 조회한 자료에서 임시로 row 번호를 부여
- 기본구조: SELECT / UPDATE / DELETE 문 WHERE ROWNUM 비교연산자 행의갯수;
<TOP>
- 행의 개수를 제한
- 기본구조: SELECT TOP(N) 칼럼명 FROM 테이블명;
- TOP 반환할_행의_개수 [PERCENT] [WITH TIES]
- PERCENT
- 쿼리 결과 집합에서 몇 %를 반환할지 정할 수 있습니다.
- WITH TIES
- 정해진 개수만큼 출력이 되었는데 마지막 행과 같은 값이 추가로 존재하는 경우 추가 행이 출력되도록 지정할 수 있습니다.
- ORDER BY 문이 지정된 경우에만 사용할 수 있습니다.
<ROWID>
- ORACLE에서 사용하는 PSEUDOCOLUMN(가상컬럼)으로 데이터를 구분할 수 있는 유일한 값
- 주어진 테이블에 가장 빠른 ACCESS 방법, 단일 ROW에 접근하는 가장 빠른 수단
- 오브젝트 번호 (길이 1~6): 오브젝트(Object) 별로 유일한 값을 가지고 있으며, 해당 오브젝트가 속해 있는 값
- 상대 파일 번호 (길이 7~9): 테이블스페이스(Tablespace)에 속해 있는 데이터 파일에 대한 상대 파일번호
- 블록 번호 (길이 10~15): 데이터 파일 내부에서 데이터의 블록 위치를 알려주는 번호
- 데이터 번호 (길이 16~18): 데이터 블록에 데이터가 저장되어 있는 순서
<단일행 함수>
- 문자형 함수
- 문자를 입력하면 문자나 숫자 값을 반환
- LOWER, UPPER, ASCII, CHR (MySQL: CHAR), CONCAT, SUBSTR (MySQL: SUBSTRING), LENGTH (MySQL: LEN)
- LTRIM(문자열[, 지정문자]): 문자열의 첫 번째 문자부터 확인해서 지정문자가 나타나면 해당 문자를 문자열에서 제거
- RTRIM(문자열[, 지정문자]): 문자열의 마지막 문자부터 확인해서 지정문자가 나타나면 해당 문자를 문자열에서 제거
- TRIM([leading|trailing|both] 지정문자 FROM 문자열): 문자열에서 머리말, 꼬리말, 또는 양쪽에 있는 지정 문자를 제거
- LPAD(문자열1,n[,문자열2]: 문자열1을 n자리만큼 늘리고, 왼쪽 빈 공간을 문자열2로 채워서 리턴 (문자열2가 생략되면 기본값은 공백)
- RPAD(문자열1,n[,문자열2]): 문자열1을 n자리만큼 늘리고, 오른쪽 빈 공간을 문자열2로 채워서 리턴 (문자열2가 생략되면 기본 값은 공백)
- 숫자형 함수
- 숫자를 입력하면 숫자 값을 반환
- ABS, SIGN, MOD
- CEIL (MySQL: CEILING): 숫자보다 크거나 같은 최소 정수를 리턴 (소수 올림 연산)
- FLOOR: 숫자보다 작거나 같은 최대 정수를 리턴 (소수 내림 연산)
- ROUND (반올림), TRUNC (버림), POWER (m의 n제곱), SQRT, LOG (밑을 m으로 한 n의 로그 값), EXP, LN
- SIN, COS, TAN
- 날짜형 함수
- DATE 타입의 값을 연산
- SYSDATE (MySQL: GETDATE())
- EXTRACT(시간날짜단위 FROM 시간날짜) (MySQL: DATEPART(시간날짜단위, 시간날짜))
- TO_NUMBER(TO_CHAR(날짜정보, 데이트_포멧)) (MySQL: YEAR(날짜정보), MONTH(날짜정보), DAY(날짜정보))
- 변환형 함수
- 문자, 숫자, 날짜형의 데이터형을 다른 데이터형으로 형변환
- TO_CHAR, TO_NUMBER, TO_DATE
- MySQL: CAST, CONVERT
- NULL 관련 함수
- NULL 값을 처리
- NVL (MySQL: ISNULL), NULLIF
- COALESCE: NULL이 아닌 값이 있으면 첫 번째 값으로 합침
- CASE: 분기 처리 함수
- 분기 처리에 사용
- DECODE: 조건을 평가하여 값을 반환하는 함수로, 주로 간단한 조건과 대응하는 결과 값을 처리할 때 사용
- 기본 구조: DECODE(expression, value1, result1, value2, result2, ..., default_result)
- default_result: 어떠한 값도 일치하지 않을 경우 반환할 값이나 표현식 (else)