본문 바로가기

Archived(CSE Programming)

(169)
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..
Java_Stream # Stream 데이터 통로 파일 입출력 네트워크 소켓(서버통신) xxxStream xxxReader(Writer) Source to Destination 콘솔 입출력, 파일 입출력 외에도 객체를 주고 받을 수 있는 Stream 존재 ObjectInput(Output)Stream -> Serializable 직렬화 객체는 Object IO을 통해 직렬화 가능 직렬화의 장점 중 하나는 그대로 역직렬화를 통해 메모리상의 로드가 가능하다는 것(편하다) 단, 속도는 단점 import java.io.File; import com.sinc.intern.stream.FileObj; public class StreamMain { public static void main(String[] args) { String wr..
Java_Thread 스레드는 작업의 단위, 프로세스 내에서 기생하는 프로세스 자바는 객체지향이다 플랫폼 독립적이고 JVM에 의존적이다 스레드 언어로서 멀티스레드 지향 언어(프로세스 기반과 대비) > 이러한 특징으로부터 웹 중심으로 자바 성장(스레드 풀) 기존의 웹에서 프로세스 중심으로 처리하면 서버에서 객체 1000개 생성 등 소모 지나침 우리는 스레드에 대한 이해는 필요하다(직접적으로 프로그래밍할 일 많지 않음) Java는 두 가지 방법을 통해 스레드 생성 가능(Thread Class 상속, Runnable 인터페이스) Thread를 상속하는 것 보다는 Runnable이 자주 쓰임(단일 상속이기에 중요한 다른 class 상속하기 위해) cf. callback 함수: 호출을 명시하지 않는 함수 package com.sinc..