라벨이 Oracle DB인 게시물 표시

Oracle DB - Query 구문 (WHERE ~ JOIN)

▣ Where 절(구)에 사용되는 쿼리 구문 ◎ 관계 연산자 (NOT / AND / OR)   - NOT : 가독성이 더 좋은 부정 연산자 !=, <>, ^= 등을 이용하는 것이 좋다.   - AND : 주로 사용되는 조건절   - OR : 사용할 수는 있지만, 왠만하면 AND를 사용한다.   ※ AND와 OR의 혼용 시 괄호 ' ( ) ' 를 사용하여 구분해주어야 한다.    → 연산자 우선순위 때문 : AND > OR ◎ LIKE   - %, _, # 과 같은 와일드 카드 문자 / ESCAPE 문자를 함께 사용하여 원하는 문자열 검색 ◎ BETWEEN ... AND   - AND의 앞과 AND 뒤 값의 사잇 값을 출력해준다.   - 앞의 값은 뒤의 값보다 작아야한다. (유의)   - 날짜를 검색하는 경우 유의한다.    → 날짜 데이터는 시리얼 넘버로 저장되기 때문에 시, 분, 초 값도 역시 존재한다.    → 정확한 데이터를 출력시키려면 날짜 데이터의 포맷을 자유롭게 조절할 수 있어야 함.    → ALTER SESSION SET nls_date_format='YYYY/MM/DD:HH24:MI:SS' ◎ IN   - 지정된 값 중 일치하는 값이 하나라도 있으면 출력해주는 조건   - 가독성이 우수   - OR 이나 = 연산자를 대체한다. ▣ Join   - 복수의 테이블을 묶어서 연관된 칼럼 값을 참조하는 기법   - 테이블을 join하기 위해서는 join 조건이 필요하다   - join 조건은 묶는 테이블의 개수가 n개일때 최소 n-1개가 필요하다. ◎ 등가 join 과 비등가 join   ▷ 등가 join : 칼럼의 내용이 정확히 일치하는 레코드 만을 추려 join한다. ...

Oracle DB - Query 구문 (DISTINCT ~ WHERE)

▣ 쿼리 구문 ◎ DISTINCT - 중복 제거 : SELECT (DISTINCT/ALL(default)) 칼럼 FROM 테이블; ◎ ORDER BY - 정렬 : SELECT 칼럼 FROM 테이블 ORDER BY (정렬할 칼럼) (ASC(default)/DESC) 오름차순 / 내림차순  - 정렬할 칼럼의 순서대로 우선 적용  - Oracle DB는 RDB ◎ WHERE - 조건 검색 : SELECT 칼럼 FROM 테이블 WHERE 조건   - 조건의 좌변에 수식이 들어가는 것은 좋지 않음     → 좌변에 우변과 맞지 않는 데이터 형이 비교된다면 좌변의 내용은 모두 숫자로 바뀌어 비교된다 (full table scan)     → 데이터 자동 형 변환을 통해 모든 데이터를 오류없이 스캔해주지만, 그 속도에 있어서 매우 비효율적이 된다.     → 왠만하면 스캔을 적게해주는 방식으로     → 칼럼을 제외한 수식을 우변으로 옮기자   - 스캔의 종류는 두 가지     ① Full table scan - 모든 레코드를 다 읽어야하므로, 모든 테이블을 스캔하는 시간과 동일한 시간을 소비     ② index scan - 임의의 테이블을 생성해서 정렬이 안되어있는 기본 테이블을 복사하여, 정렬이 된 상태로 붙여넣는다        - binary search를 사용 : 절반의 위치를 질의 낮으면 아래로, 높으면 위로 재검색         → 그러나 RDB에서는 b* tree 방식을 이용하기에 binary search보다 훨씬 빠름        - 모든 레코드(row)에는 rowid가 존재        - rowid는 64^18가지로 이만...

Oracle DB - Query 문 종류와 SELECT문

▣ Oracle SQL ◎ 명령어 구조 -- 자주쓰는 명령어 (99.99퍼) -- SELECT : quary -- 나머지 0.01퍼 정도 -- INSERT : row 생성 UPDATE : row 변경 DELETE : row 삭제 -- 이하는 시스템 관리자(DBA)가 사용 -- CREATE : 테이블 생성 ALTER : 테이블 변경 DROP : 테이블 삭제 -- 이하는 부가권한이 있는 관리자가 사용 (권한 부여 및 삭제) -- GRANT : 권한 부여 REVOKE : 권한 삭제 ▣ 명령어 종류 ◎ select문 : SELECT [col, col, ...] FROM table; → 테이블에 속한 특정 칼럼을 선택해 출력해준다. : SELECT * FROM table; → 테이블에 속한 모든 칼럼을 출력해준다. ▷ FROM절은 생략할 수 없다. ▷ 정해진 포맷이 없기 때문에, 여러 줄에 걸쳐 사용가능 → 가독성 높일 수도 있겠다 ◈ 테이블 구조의 확인 - DESC : DESC (table) → 테이블의 구조를 확인할 수 있다. ex) SQL> DESC emp  이름                                                    널?    유형  ----------------------------------------------------- -------- ------------------------------------  ENO                          ...