본문 바로가기

Archived(CSE Programming)/SQL(Oracle)

(8)
SQL_DML 지난 DB 수업 복귀 SELECT , 함수(단일행 / 그룹), JOIN(ON, USING, OUTER), 단일행 서브쿼리/ 복수행 서브쿼리, DDL(5가지 제약조건 NOT NULL, PRIMARY, REFERENCES, CHECK), 외래키, ... # UPDATE 수정 테이블에 포함된 기존 데이터 수정 UPDATE table_name SET col_name = value , [, col = val, ...] [ WHERE condition ] ; SET 서브쿼리 사용 가능, DEFAULT 옵션 사용 가능(DEFAULT 옵션이 들어간 COLUMN에 대해서 적용 가능, DEFAULT 없으면 NULL 삽입) (SUBQUERY 활용시 단일 행, 단일 열 서브쿼리로 수행) DDL 수행 후 종료하면 AUTO Co..
SQL_DDL # 목표 데이터를 저장하는 테이블을 생성할 수 있다 테이블 구조를 변경할 수 있다 제약 조건을 사용하여 데이터 무결성을 보장할 수 있다 뷰를 생성하고 활용할 수 있다 시퀀스 생성 및 활용할 수 있다 인덱스 개념을 이해학 쿼리 성능 향상을 위해 인덱스를 활용할 수 있다 # TABLE CREATE TABLE COLUMN CONSTARINT TABLE CONSTRAINT Naming Rule > 30자 이하, 문자로 시작, 키워드 사용불가 등 -- TABLE 만들기 CREATE TABLE ORDERS (ORDERNOCHAR(4) CUSTNOCHAR(4) ORDERDATEDATE DEFAULT SYSDATE SHIPDATEDATE SHIPADDRESS DATE QUANTITYNUMBER); # CREATE 생성..
SQL_SET_SubQuery # SET operator UNION / UNION ALL : 차이는 중복 결과 1번 출력 / 모두 출력 INTERSECT : 양쪽 쿼리 결과에 모두 포함되는 행만 표현 MINUS : 쿼리 결과 1에는 포함되지만 쿼리 결과 2에는 포함되지 않는 결과만 -- 기본적인 SET SELECTDEPT_ID FROMEMPLOYEE UNION SELECTDEPT_ID FROMDEPARTMENT; -- 더미 데이터 NULL 활용하기 SELECTEMP_NAME , JOB_ID , DEPT_ID FROMEMPLOYEE UNION SELECTNULL , NULL , DEPT_ID FROMDEPARTMENT -- 특정 값 넣기 SELECT EMP_ID , EMP_NAME , '관리자' AS 구분 FROMEMPLOYEE WHE..
SQL_JOIN RDBMS 이기에 JOIN이 없을 수가 없음 현업에서도 반드시 필요한 기능 # JOIN의 종류 EQUAL 조인 / NOT EQUAL 조인 JOIN은 두 개 의 테이블을 통해 하나의 논리적 테이블을 구성한다 ? > 편의상 이해를 위한 용어 # ORACLE JOIN -- EQUL JOIN SELECTEMP_NAME , DEPT_NAME FROMEMPLOYEE E , DEPARTMENT D WHEREE.DEPT_ID = D.DEPT_ID; -- NOT EQUAL JOIN SELECTEMP_NAME , SALARY , SLEVEL FROMEMPLOYEE E , SAL_GRADE S WHEREE.SALARY BETWEEN S.LOWEST AND S.HIGHEST; 현업에서는 JOIN을 거는 FK 키를 주로 IND..
SQL_Additional_SELECT_그룹 함수 # 주요 그룹 함수 그룹 함수는 NULL 값을 계산하지 않는다! SUM AVG > NULL을 제외하므로 결과 값이 달리질 수 있다 MIN > ANY 타입 가능 MAX > ANY 타입 가능 COUNT # SUM ( [DISTINCT] expr) > 필요에 따라서 이렇게 표현식을 만들 수 있다 # AVG > AVG 는 NULL을 고려하지 않으므로 결과값이 달라질수 있다 그래서 AVG(NVL(COL, 0)) 등과 같은 처리 고려해야 한다 # MIN / MAX # COUNT Result Set을 세는 것이 일반적이다 그룹 함수를 잘 활용하려면 GROUP BY를 잘 활용해야 한다 구문의 parsing 순서는 다음과 같다 SELECT -- 5 FROM -- 1 WHERE -- 2 GROUP BY -- 3 HAVIN..
SQL_Additional_SELECT_단일 행 함수 함수 유형: 반환 결과에 따라 단일 행 함수와 그룹 함수로 구분 단일 행 함수: Input N -> Output N / 그룹 함수: Input N -> Output 1 # 문자열 함수 # 문자열 함수 LENGTH(string) > NUMBER 반환 -- LENGTH SELECTLENGTH(CHARTYPE), LENGTH(VARCHARTYPE) FROMCOLUMN_LENGTH; (CHARTYPE은 픽스되어있는 길이의 CHAR값을 활용할 때 사용한다!) # 문자열 함수 INSTR(문자열, 찾고싶은 문자열, [POSITION, [OCCURENCE]]) -- INSTR . 바로 앞의 'c' 찾기 SELECTEMAIL, INSTR(EMAIL, 'c', -1, 2) 위치 FROM EMPLOYEE; -- INSTR ..
SQL_SELECT SELECT 개요 데이터 조회 범위(특정 컬럼, 특정 행, 특정 행/컬럼, 여러 테이블의 특정 행/컬럼 조인) 고려사항으로 대문자 작성, 들여쓰기, 나누어쓰기 구분, 공백 활용, 콤마도 개행 고려(Ex SELECT) RDBMS는 기본적으로 M:N 표현 불가(다른 방법 활용), 대부분이 1:N의 관계, 타원형의 표현식(Optional), 재귀적 관계(자기자신 컬럼을 외래키로 참조) Equal 조인은 관계가 있는 조인 / Not Equal 조인은 관계 없는 조인(단독 테이블도 JOIN으로 활용 가능) ERD 관계가 점선/실선의 차이 > 식별 유형, 전이된 FK가 기본키가 되면 식별 유형 / 전이된 FK키가 일반 속성이 되면 비식별(그래서 식별유형은 Optional이 없어짐) # SELECT의 기본 구문 SE..
SQL_DB의 기본 오라클 sql 대문자로 작성(들여쓰기 기본) DRAG 실행 ALT + X, 현재 실행 부분 ALT + S 전체 실행 CTRL + ALT + X 실제 모델링 개념 - 논리 - 물리 과정이 필요하지만 skip # 데이터베이스의 기초 DB: 한 조직의 여러 응용 시스템에서 공용할 수 있도록 중복되는 데이터를 최소화하여 통합/저장한 운영 데이터 집합을 의미 DBMS: DB에서 저장/검색/수정하는 데이터베이스 전용 관리 프로그램(Oracle, DB2, MySQL) DBMS 이점: 데이터 독립화 / 중복 최소화(무결성 보장) / 보안 향상 / 관리 편의성 향상 변천 과정: 파일(1950) - 계층형 DB(1960) - 네트워크형 DB(1970) - 관계형 DB, RDB(1980) - 객체지향형 DB, OODB(19..